¿Qué es una retrospectiva de deuda técnica?
Una retrospectiva de deuda técnica es una sesión centrada en un único tema. En ella, el equipo identifica la deuda de su código o sistema, se pone de acuerdo sobre lo que está costando y decide qué saldar primero. Termina con un plan con responsables y fechas. La deuda técnica es la acumulación de atajos y soluciones poco ideales en el código. Una parte surge de priorizar la entrega a corto plazo frente a la calidad a largo plazo, otra de lagunas de conocimiento y otra de refactorizaciones que se fueron posponiendo una y otra vez. Si no se atiende, cada cambio se vuelve más lento y arriesgado. El tablero tiene cuatro columnas. En Fuentes de deuda se señalan las áreas problemáticas concretas: módulos enmarañados, código duplicado, falta de pruebas, frameworks obsoletos. Impacto y riesgos recoge lo que esa deuda está provocando en la entrega, la calidad, la incorporación de nuevas personas y la moral del equipo. Priorización ordena los elementos según su impacto, esfuerzo e importancia. Plan de acción convierte los elementos principales en trabajo con responsables, plazos y revisiones periódicas, como reservar una parte fija de cada sprint para saldar deuda. Hazla más o menos cada trimestre, o siempre que el equipo note que la deuda lo está frenando, para que la deuda siga siendo visible y no crezca.
Formato de retrospectiva de deuda técnica
Fuentes de deuda
¿Qué áreas del código han acumulado deuda técnica?
Pide a las personas que concreten el tipo de deuda y dónde se encuentra: code smells, problemas de arquitectura, falta de pruebas, dependencias obsoletas.
Impacto y riesgos
¿Cómo afecta esta deuda técnica al equipo y al producto?
Hablad de lo que la deuda está costando de verdad: entregas más lentas, errores que ven los clientes, incorporaciones complicadas, desarrolladores frustrados. Los costes concretos justifican la necesidad de saldarla.
Priorización
¿Qué áreas de deuda deberíamos abordar primero?
Ordenad los elementos de deuda según su impacto, el esfuerzo que requieren y cuánto bloquean otros trabajos. Una matriz rápida de impacto frente a esfuerzo ayuda a que el equipo se ponga de acuerdo.
Plan de acción
¿Cómo podemos abordar de forma sistemática la deuda priorizada?
Elaborad un plan concreto: quién hace qué, para cuándo y cuándo revisaréis el progreso. Decidid qué parte de la capacidad de cada sprint se dedicará a saldar deuda.
Cuándo utilizar este estudio retrospectivo
- Cuando cada cambio hace que el código sea más difícil de mantener y ampliar.
- Cuando el equipo se pasa el tiempo apagando fuegos y las nuevas funcionalidades se retrasan una y otra vez por la inestabilidad.
- Cuando incorporar a nuevos desarrolladores es lento porque algunas áreas son enrevesadas o no están documentadas.
- Cuando el mantenimiento y la corrección de errores ocupan más tiempo que el trabajo nuevo.
- Cuando los desarrolladores se frustran con las mismas áreas problemáticas sprint tras sprint.
Preguntas sugeridas para romper el hielo
- Si nuestro código fuera un edificio, ¿cómo sería y por qué?
- ¿Cuál ha sido tu encontronazo más divertido o más doloroso con la deuda técnica?
¿Le gustaría que su equipo realizara un ejercicio de calentamiento, en lugar de limitarse a responder en voz alta? Eche un vistazo a los rompehielos gratuitos →
Ideas y consejos para su reunión retrospectiva
- Mantén una conversación sin culpables. Todo código acumula deuda; la cuestión es qué hacer con ella ahora.
- Asegúrate de que las personas no técnicas presentes entienden qué es la deuda técnica y por qué afecta a la entrega.
- Prioriza la deuda según su impacto, esfuerzo e importancia en lugar de intentar arreglarlo todo a la vez.
- Asigna al plan plazos, responsables y revisiones periódicas para que no se estanque.
- Reserva una parte fija de cada sprint o ciclo para saldar deuda.
- Automatiza el linting, las pruebas y parte de la revisión de código para que entre menos deuda nueva.