5. TDD
• Hacer software es complejo
• El diseño es complejo
• Hay mucho que no sabemos
• Las cosas pueden cambiar
• No queremos hacer un análisis profundo
“El cliente es esa persona que nos dice lo que quería en el momento que le entregamos lo que nos pidió”
8. ¿CUÁLES SON LAS VENTAJAS?
• Tiempo fijo (timeboxing)
• Feedback rápido
• Fallar rápido
• Aprender en el camino
• Hacer Iteraciones (baby steps)
• Producto “entregable” cada sprint
9. TDD
• Tomar un requerimiento simple
• Hacer los test primero
• Hacer que fallen
• Implementar la solución
• Refactor
• Repetir
• No se consideran casos excepcionales
(inicialmente)
• La idea es centrarse solo en la
funcionalidad actual
https://anvileight.com/media/django-summernote/
10. ¿CUÁLES SON LAS VENTAJAS?
• Tiempo fijo (timeboxing)
• Feedback rápido
• Fallar rápido
• Adaptar y continuar
• Aprender en el camino
• Hacer Iteraciones (baby steps)
• “Producto” potencialmente entregable
11. VENTAJAS
• El diseño “emerge”
• Mejora la autoestima
• Evitamos el sobre-diseño
• Hacemos refactor sobre la marcha
• Mejoramos la comprensión del problema
• Tenemos tests
• Tenemos code coverage
• YAGNI
• KISS
15. REFLEXIONES
• No es simple
• No es aplicable a todas las partes del sistema
• Puede dar una falsa sensación de seguridad
• En ocasiones es difícil de justificar
• Hace falta “ejercicio”, hay que ejercitarse