Se cubren en estas diapositivas aspectos básicos de la deuda técnica y como afecta a los equipos de desarrollo, tester, product owners, scrum masters, al negocio en general.
1. 1
Hablemos de Deuda Técnica
(y un poco de su relación con testing)
JORGE HERNÁN ABAD LONDOÑO
@jorge_abad
Blog http://www.lecciones-aprendidas.info/
Agile Coach, Project Leader, Scrum Master and Always a Learner
6. 6
Mis objetivos con esta sesión:
- Elevar nuestro nivel de conciencia
sobre la deuda técnica
- Inquietarlos
- Ser disparador de un cambio para
testers y team members
11. 11
La deuda técnica son las consecuencias de:
• un desarrollo apresurado
• un desarrollo inconsciente de software
• o un despliegue descuidado de hardware
Que se terminará pagando ya sea con:
• baja velocidad de desarrollo
• inversión de tiempo removiéndola o
• bajo rendimiento del sistema
@jorge_abad
26. 26
Nuestro servidor agotado por :
• La carga
• Necesita continuos reinicios
• Carecemos de
• buen hardware
• Software liviano adecuado
para el hardware
• Software bien construido
(por lo general las últimas dos)
42. 42
Causas
Presiones de Negocio
Poco entendimiento del proceso
Software no modular, clases muy acopladas
Falta de una buena suite de pruebas
Falta de documentación
Falta de colaboración entre equipos
Falta de acompañamiento a desarrolladores jóvenes
Desarrollo paralelo (en dos o más branches)
Postergar la refactorización
Inexistencia de estándares o no alineación con ellos
Poco conocimiento por parte del desarrollador de buenas prácticas
Poca apropiación del código
Pobre liderazgo técnico
Subutilización del software base
Sobreutilización del software base
Presiones por cambios de último minuto
Entre otros
44. 44
Síntomas
Despliegue lentos
Constantes reinicios del servidor por consumo de
memoria
Código inmantenible
Código inestable o con el síndrome de castillo de
naipes
Costo alto de cambios
Costo alto de corrección de código
Disminución de la velocidad de los sprints
Entre otros
72. 72
Prácticas Técnicas compartidas por todo el
equipo
• Revisiones de código
• Buenas practicas de desarrollo (Principios SOLID, ACID,
etc)
• Pruebas de Aceptación
• Pruebas Unitarias
• Propiedad Colectiva de Código
• Clean Code
• Test Driven Development
• Integración Continua
• Entrega Continua (Continuous Delivery)
• Diseño Simple
• Programación por Pares
• Mob Programming
• Mob Testing
• Estándares de Codificación
• Refactoring
• Monitoreo de la deuda técnica
86. 86
¿Qué podemos hacer desde pruebas?
Ser preventivos
Estar atentos a los síntomas
Realizar inspecciones de código, buscar smells
– Clases gigantes
– Webservices gigantes
– Tablas gigantes, etc
Hacer consciente al equipo de la deuda técnica
Trabajar de la mano del SM en la mejora
continua y ser el vigilante de la deuda técnica
(usar Sonar u otra herramienta), para gestionarla
en el presente y en el tiempo dentro del backlog
Realizar pruebas no funcionales
Automatice las pruebas
Estar alerta a funcionalidades «lentas»
Velar por los estándares
No caer en presiones que impliquen reducción
de la calidad y se decide asumir la deuda,
asegurarse que sea gestionada
Asegurarse de que se pague
Ser un verdadero QA ágil
104. 104
Estas presentación contiene algunas diapositivas de
Javier Garzas @jgarzas
Ángel Nuñez @snahider
Henrik Kniberg @henrikkniberg
Nota: Trate de dar crédito a todos, pero consideras que faltaste
por que no te referencié o debo modificar algo de tu propiedad
por favor no dudes en hacérmelo saber, contactándome al
email: jorge.abad@gmail.com
105. 105
Aviso de Copyright
Usted es libre de:
– Compartir- copiar, distribuir y trasmitir el trabajo
– Modificar- adaptar el trabajo
Bajo las siguientes condiciones
– Atribución. Ud. debe atribuir el trabajo en la manera especificada por el autor
o licenciante (pero de ninguna manera que sugiera que ellos aprueban su uso
del trabajo).
Nada de lo dispuesto en esta licencia menoscaba o
restringe los derechos morales del autor.
Para más información ver http://creativecommons.org/licenses/by/3.0/