Desarrollo impulsado por el comportamiento (BDD):
Creación de software útil que los clientes quieren
Agile 101
Desarrollo Dirigido por el Comportamiento o BDD (Behavior Driven Development)
Ha trabajado duro. Ha tecleado hasta que todo ha quedado bien. Se recuesta en su silla, sonriendo. Sí, está contento con el resultado.
Un par de días después, sus hombros están caídos. El cliente no estaba contento. No es lo que quería.
Qué mala suerte.
Pero anímese, hay una respuesta: El Desarrollo Dirigido por el Comportamiento o BDD para abreviar.
Siga leyendo para saber qué es, cómo beneficia a los desarrolladores, a los probadores y al negocio por igual, y qué implica hacerlo. Empecemos por lo que es.
¿Qué es el desarrollo dirigido por el comportamiento en Ágil?
Yes, practicing BDD means you’ll specify and execute tests. But testing is not the purpose.
Because like its TDD (Test Driven Development) companion, BDD is not about testing. It’s about achieving business goals and customer outcomes at the application level. Just like the definition so clearly states.
¿Qué es el desarrollo dirigido por el comportamiento en Ágil?
Src: flatstack.com
La definición más sucinta de Desarrollo Dirigido por el Comportamiento que he encontrado es ésta:
BBD es un proceso diseñado para ayudar a la gestión y la entrega de proyectos de desarrollo de software mejorando la comunicación entre los ingenieros y los profesionales de la empresa. De este modo, el BDD garantiza que todos los proyectos de desarrollo se centren en la entrega de lo que realmente necesita la empresa y en el cumplimiento de todos los requisitos del usuario.
El Desarrollo Dirigido por el Comportamiento no es sobre las pruebas
Sí, practicar BDD significa que va a especificar y ejecutar pruebas. Pero las pruebas no son el objetivo.
Porque al igual que su compañero TDD (Test Driven Development) o Desarrollo Dirigido por Pruebas, BDD no es sobre las pruebas. Se trata de alcanzar los objetivos de negocio y los resultados de los clientes a nivel de la aplicación. Tal y como la definición establece claramente.
¿Cuál es la relación entre BDD y Ágil?
Bueno, con BDD se asegura el funcionamiento del software por encima de la documentación exhaustiva a nivel de aplicación y se sigue obteniendo esa documentación.
Además, Ágil tiene fuertes raíces en eXtreme Programming. Y Dan North -que originó BDD- es un entusiasta de eXtreme Programming desde hace mucho tiempo.
Los Three Amigos como idea central del Desarrollo Dirigido por el Comportamiento
La idea central del diseño orientado al comportamiento es que ninguna persona o campo tiene la respuesta completa a nada.
Se necesitan Three Amigos: profesionales de la empresa, desarrolladores y probadores, para obtener buenas respuestas.
Y lo que es más, se necesita que colaboren. Porque es el ida y vuelta entre personas con diferentes estilos cognitivos y diferentes perspectivas y antecedentes, lo que produce la magia. Magia que le aporta soluciones mejores, más sencillas y más valiosas.
Lo que cada uno de los Three Amigos aporta a la mesa:
¿Cuáles son los beneficios del BDD?
Al adoptar el desarrollo dirigido al comportamiento, puede esperar estos beneficios:
- Pruebas de aceptación automatizadas que proporcionan una retroalimentación rápida para mantener la implementación en el camino.
- Especificaciones vivas que nunca se desactualizan.
- Documentación técnica y de usuario final generada automáticamente, que tampoco se desactualiza.
Las Fases del Desarrollo Dirigido por el Comportamiento
En BDD se pasa por tres fases para cada historia que se quiera implementar.
Estas fases son:
These follow the given-when-then pattern:
el escenario (dado)— el estado inicial, por ejemplo «el usuario está conectado»,
el evento (cuando)— lo que ocurre, por ejemplo «el usuario pulsa el botón de cierre de sesión», y
el resultado (entonces)— la respuesta esperada, por ejemplo «se muestra la página de inicio de sesión».
Software de trabajo: Las pruebas de aceptación guían su trabajo de implementación del software.
Un ejemplo de BDD
Repasemos las fases de Descubrimiento y Formulación para dar un ejemplo.
Título: Bloquear a otros usuarios.
Narración: Como miembro, quiero bloquear a los usuarios para que no me molesten más.
Descubrimiento
La historia parece bastante sencilla, pero los interrogantes surgen en cuanto se empieza a pensar en ella:
-
Qué resultado comercial se sirve?
-
-
La lista es interminable.
Después de hablar con el cliente, resulta que simplemente no quiere ver las actualizaciones de un usuario bloqueado en su feed de actividad.
como miembro, quiero silenciar a los usuarios, para que mi feed de actividad no muestre sus actualizaciones. Una cuestión mucho más sencilla de abordar y de mucho menor alcance.
Aun así, incluso ahora, no está del todo claro qué hay que hacer y qué no. Es hora de aclararlo con ejemplos desde la perspectiva del usuario.
Formulación
Cómo no sacar el máximo partido al BDD
Qué es la Prueba Dirigida por el Comportamiento (Behavior Driven Testing)
¿Cuál es la diferencia entre TDD y BDD?
- BDD consiste en mejorar la colaboración y la comunicación entre desarrolladores, probadores y profesionales de la empresa. Para que el software cumpla tanto los objetivos de negocio como los requisitos del cliente.
- TDD trata del diseño y las especificaciones a nivel de código.