Si puede derivar los escenarios de la descripción, ya está.
Un antipatrón que a menudo veo en BDD es que las personas sienten la necesidad de hablar y escribir cada escenario en detalle.
Algunos escenarios se entienden tan bien que es suficiente derivarlos de una breve descripción. Por ejemplo, si digo: "Me gustaría la función de inicio de sesión esta semana", ya sabes cómo debería ser. Usted sabe que hay escenarios para la contraseña correcta, la contraseña incorrecta, el nombre de usuario incorrecto. Realmente no necesitamos hablar a través de ellos o capturarlos en detalle.
De manera similar, podría decir: "Aquí está el formulario para el registro de usuarios. Necesitamos poder crear nuevos usuarios, permitirles editar sus detalles y eliminarse a sí mismos, excepto que la eliminación no debería eliminar realmente, solo debería marcarlos como eliminados para que puedan recuperar sus cuentas si lo desean ".
Y puede preguntar: "¿La recuperación de la cuenta es parte de esta función?"
"Pueden ser dos características si quieres".
"Bien, entonces tenemos escenarios para crear, leer, actualizar, eliminar; eso debería ser bastante fácil. Hablemos de la recuperación de la cuenta; eso suena más interesante".
En general, si la descripción del comportamiento es suficiente para que el equipo de desarrollo deduzca los escenarios, no es necesario que los analice. Puede hacerlo si tiene alguna duda, pero es posible que solo desee capturar los escenarios que necesita recordar, si captura alguno.
Si nunca lo ha hecho antes o no está seguro, hable sobre los escenarios.
Concéntrese en las áreas que son inusuales, particularmente si hay características que nunca antes había hecho. Estos son lugares fantásticos para conversar y anotar cualquier ejemplo sorprendente que surja. Por lo general, tengo dos preguntas que hago, según la plantilla de BDD:
Dado un contexto
Cuando ocurre un evento
Entonces debe ocurrir un resultado.
- ¿Existe algún otro contexto que, para el mismo evento, produzca un resultado diferente?
- ¿Hay algún otro resultado que también sea importante?
Si todos en la mesa parecen aburridos, la característica por la que estás hablando probablemente se entienda bien. A menudo es suficiente decir: "Debería funcionar como X , pero con Y en su lugar". Esto es lo que Dan North llama el patrón Ginger Cake ; Es como la receta del pastel de chocolate, pero con jengibre en lugar de chocolate.
Incluso si la parte interesada en el negocio puede derivar los escenarios por sí mismo, es realmente importante que el equipo de desarrollo pueda hablar con él, retomar e internalizar su idioma. Ese lenguaje luego se lleva al código, lo que les permite tener mejores conversaciones en el futuro y ayuda a los recién llegados al proyecto a comprender lo que está sucediendo. Si los desarrolladores no pueden hablar el idioma, no lo usarán .
Si la parte interesada de la empresa o el analista realmente no quiere pasar el tiempo capturando cosas en la sesión, prefiero que los desarrolladores escriban los escenarios en colaboración con los evaluadores y luego le pidan que lo revise. Es más probable que esto descubra malentendidos que al revés.
A veces BDD no funciona.
Otra posibilidad es que encuentre un escenario sobre el cual las partes interesadas del negocio no estén seguros. "¡Oh, no había pensado en eso! No estoy seguro". En lugar de tratar de concretar el negocio y castigarlo con certeza, puede valer la pena abandonar BDD en este punto e intentar algo simple para obtener algunos comentarios y darle al negocio algo sobre lo que puedan iterar. Facilite el cambio y escriba los escenarios una vez que haya una mejor comprensión de lo que está sucediendo.
BDD hecho bien puede realmente ayudar a descubrir lugares de incertidumbre. Puesto que cada proyecto tiene vale la pena hacer algún aspecto de ella que es nuevo y nunca se ha hecho antes, no es cierta incertidumbre en allí, en alguna parte. Si te enfocas en usar los escenarios para ayudar a descubrir deliberadamente la ignorancia , aprenderás más rápido, y el aprendizaje suele ser una gran parte del tiempo dedicado a un proyecto.
Además, descubrí que cuanto más colaboran los equipos de desarrollo de esta manera, más preparados están los negocios para confiar en ellos con incertidumbre, y más innovación comienza a ocurrir. Las empresas innovadoras, por su propia naturaleza, tienen mucha incertidumbre en sus proyectos.
Hace un tiempo escribí una publicación en el blog sobre Cynefin , que creo que realmente me ayuda a comprender dónde serán más efectivas las conversaciones. Si lo lees y entiendes los cuatro dominios, aquí están las reglas que uso:
Las cosas simples y complicadas (conocidas) a menudo se entienden bien y no necesita hablar sobre los escenarios en detalle.
Las cosas altamente complejas (desconocidas) no se entienden en absoluto. Puede descubrir esto hablando de los escenarios. La falta de certeza significa que BDD no funcionará aquí, así que repita algo fácil de cambiar y obtenga comentarios rápidos en su lugar. Cualquier práctica que conserve sus opciones, como las pruebas AB, también es excelente en este espacio.
BDD funciona de manera brillante en el espacio intermedio (conocible) como un mecanismo para transmitir el conocimiento y descubrir los otros dos espacios. No es un martillo, y no todo es un clavo. De hecho, si puede concentrar el tiempo que pasa teniendo conversaciones en algo, no se trata de los ejemplos que puede encontrar; se trata de encontrar los ejemplos que no puedes .