Che cos'è la retrospettiva sul debito tecnico?
La retrospettiva sul debito tecnico è una sessione mirata in cui il team mappa il debito presente nel codice o nel sistema, si mette d'accordo su quanto sta costando e decide da cosa partire per ripagarlo. Alla fine si esce con un piano che ha responsabili e scadenze. Il debito tecnico è l'insieme di scorciatoie e soluzioni non ottimali che si accumulano in un codebase. In parte nasce dalla scelta di privilegiare la consegna a breve termine rispetto alla qualità a lungo termine, in parte da lacune di conoscenza e in parte da refactoring rimandati di continuo. Se lo si ignora, ogni modifica diventa più lenta e più rischiosa. La board ha quattro colonne. In Fonti del debito le persone indicano le aree problematiche specifiche: moduli aggrovigliati, codice duplicato, test mancanti, framework obsoleti. Impatto e rischi raccoglie gli effetti del debito su consegne, qualità, inserimento dei nuovi arrivati e morale. Prioritizzazione ordina le voci per impatto, sforzo e importanza. Piano d'azione trasforma le voci principali in attività con responsabili, tempistiche e verifiche periodiche, ad esempio una quota fissa di ogni sprint dedicata alla riduzione del debito. Conviene farla più o meno ogni trimestre, o ogni volta che il team sente che il debito lo sta rallentando, così il debito resta visibile e contenuto.
Formato della retrospettiva sul debito tecnico
Fonti del debito
Quali aree del codice hanno accumulato debito tecnico?
Chiedi alle persone di essere precise sul tipo di debito e su dove si trova: code smell, problemi architetturali, test mancanti, dipendenze obsolete.
Impatto e rischi
Che effetto ha questo debito tecnico sul team e sul prodotto?
Parlate di quanto il debito costa davvero: consegne più lente, bug visibili ai clienti, inserimento faticoso dei nuovi arrivati, sviluppatori frustrati. I costi concreti rendono più forte la richiesta di ripagarlo.
Prioritizzazione
Da quali aree di debito dovremmo partire?
Ordinate le voci di debito per impatto, sforzo e quanto bloccano altro lavoro. Una rapida matrice impatto/sforzo aiuta il team a trovare un accordo.
Piano d'azione
Come possiamo affrontare in modo sistematico il debito prioritario?
Costruite un piano concreto: chi fa cosa, entro quando e quando verificherete i progressi. Decidete quanta capacità di ogni sprint va alla riduzione del debito.
Quando utilizzare questa analisi retrospettiva
- Quando il codebase diventa più difficile da mantenere ed estendere a ogni modifica.
- Quando il team passa il tempo a spegnere incendi e le nuove funzionalità continuano a slittare per colpa dell'instabilità.
- Quando l'inserimento di nuovi sviluppatori è lento perché alcune aree sono contorte o non documentate.
- Quando manutenzione e correzione di bug occupano più tempo del lavoro nuovo.
- Quando gli sviluppatori sono frustrati dalle stesse aree problematiche sprint dopo sprint.
Domande suggerite per rompere il ghiaccio
- Se il nostro codebase fosse un edificio, che aspetto avrebbe e perché?
- Qual è stato il tuo incontro più buffo o più doloroso con il debito tecnico?
Desiderate un esercizio di riscaldamento che la vostra squadra possa svolgere, anziché limitarsi a rispondere ad alta voce? Sfogliate gli esercizi per rompighiaccio gratuiti →
Idee e consigli per la vostra riunione di retrospettiva
- Mantenete la discussione libera da colpe. Ogni codebase accumula debito: la domanda è cosa farne adesso.
- Assicurati che le persone non tecniche presenti capiscano cos'è il debito tecnico e perché conta per le consegne.
- Ordinate il debito per impatto, sforzo e importanza invece di cercare di sistemare tutto in una volta.
- Date al piano tempistiche, responsabili e verifiche regolari, così non si arena.
- Riservate una quota fissa di ogni sprint o ciclo alla riduzione del debito.
- Automatizzate linting, test e parte della code review, così entra meno debito nuovo.