Clase 5 - Desarrollo de Productos Flashcards
BDD: Qué es?
- Una aproximación ágil a la construcción de software
- Es un proceso o práctica longitudinal (como CD)
- Comportamientos definidos colaborativamente entre desarrollo y negocio.
- Especificaciones documentadas en un lenguaje compartido
- Se pueden usar para construir tests y automatizarlos
BDD: Definición
Behaviour Driven Development
- Desarrollo guiado por comportamiento
Guiar el desarrollo incremental mediante la promoción de conversaciones sobre el comportamiento esperado del sistema y la producción de especificaciones ejecutables
BDD: gráfico y pasos
-
Elegir la historia
Priorizar la funcionalidad. -
Taller de requerimientos
Descubrir detalles mediante ejemplos. -
Formular
Convertir ejemplos en escenarios. -
Revisar
Obtener feedback del negocio. -
Automatizar
Codear pruebas automáticas. -
Implementar
Codear con TDD. -
Crear tests complementarios
Carga, integración, seguridad, etc. -
Release
Producir el producto potencialmente entregable.
Discovery: qué es?
- Exploración del comportamiento usando ejemplos
- Conversación estructurada, se promueve la colaboración usuario/dev
- Foco progresivo: Se registra aprendizaje de la historia a construir y se registran preguntas que surjan para poder avanzar
Discovery en SCRUM: Cómo se hace?
- espacio y tiempo: reunión de refinamiento
- duración: 30 minutos/story, pero solo 1 story/reunión
- se hace antes de meter los items al backlog del sprint
Example mapping: qué es?
- Permite especificar mediante ejemplos
- Es parte del ciclo grande de BDD
Example mapping: estructura de árbol
Historia de usuario
* Regla 1
* * Ejemplo 1.1
* * Ejemplo 1.2
* Regla 2
* * Ejemplo 2.1
Preguntas de la story van aparte
Priorizar: razones
- Tiempo y presupuesto son limitados
- Expectativas de retorno de la inversión hecha
- No todos los ítems aportan el mismo valor o tienen el mismo costo
- Maximizar el valor obtenido/entregado
- Decidir en base a la relación costo/beneficio
- Validar hipótesis técnicas y de negocio
Priorizar: tácticas
- Mitigar riesgos técnicos
- Maximizar el valor de negocio entregado
- Crear experimentos que comparen información
- Enfocarse en un único hito comercial por vez
- Alinearse con los hitos comerciales
Slicing: qué es?
Cortar las historias en porciones de software usable, más finas
Slicing: cómo hacerlo?
Cobertura horizontal antes que vertical, tener un poquito de todo