Este documento presenta una propuesta para sobrevivir a proyectos de software heredados mediante la aplicación de una aproximación basada en reconocer el terreno, establecer el alcance, crear una red de seguridad, detectar la deuda técnica, establecer tareas y prioridades, y realizar cambios de forma iterativa aplicando principios ágiles y de desarrollo limpio.
5. Aproximación clásica
La aplicación ya está en producción.
Miedo a romper algo.
Tocar lo mínimo para hacer lo que nos piden.
Cambios superficiales.
6. Proyecto sumidero
Los desarrolladores que van pasando
por el proyecto no se preocupan por
los que vengan detrás.
No hay ningún interés por mejorar el
código existente.
8. Traza un plan
Aproximación del libro “Object-Oriented Reengieneging Patterns”.
9. Propuesta
• Reconoce el terreno
• Establece el alcance
• Crea tu red de seguridad
• Detecta la deuda técnica
• Establece tareas y prioriza
• Manos a la obra!!
10. Reconoce el terreno
• Implica al cliente
• Conoce el negocio
• Conoce la aplicación
11. Establece el alcance
• Plantea una meta
• Mantén al equipo motivado
• Pacta con el cliente lo que se va
a hacer y lo que no
12. Crea tu red de seguridad
• Imprescindible hacerlo antes de
tocar el código
• Tests unitarios, de integración y de
aceptación
• Automatiza los tests
13. Detecta la deuda técnica
• Análisis objetivo de la
mantenibilidad del código
• Apóyate en herramientas
• Detecta antipatrones
• En paralelo con los pasos anteriores
14. Establece tareas y prioriza
• El cliente tendrá la responsabilidad
de priorizar
• Kanban, Scrum o Scrumban
15. Manos a la obra
• Principios SOLID, patrones, Extreme
Programming (TDD, Pair Programmin,
Continuous Integration,…)
• Técnicas de refactorización para
equipos con poca experiencia