Cosa misura una valutazione del debito tecnico?
Ward Cunningham ha coniato la metafora del debito tecnico nel suo experience report presentato a OOPSLA nel 1992, scrivendo che "rilasciare codice alla prima stesura è come indebitarsi". Un po' di debito può farvi andare più veloci. I problemi iniziano quando non viene ripagato e ogni ora passata ad aggirare codice non del tutto corretto diventa interesse. Gli scanner misurano il codice. Questa valutazione misura ciò con cui il team convive ogni giorno: se il debito è visibile, quanto rallenta i rilasci, quanto codice e sistemi vi sembrano in salute e se lo state ripagando. Ognuno valuta ogni affermazione in privato, poi portate i punteggi più bassi in una retrospettiva e decidete insieme cosa sistemare per primo.
Dimensioni
Visibilità
Se il team sa dove si trova il proprio debito e lo tratta come lavoro vero e proprio.
Punti critici noti
Sappiamo quali parti del nostro sistema hanno più debito.
Tracciato insieme al resto del lavoro
Il debito è tracciato nello stesso backlog di funzionalità e bug.
Costo noto
Sappiamo spiegare quanto ci costano i debiti più grandi in termini di tempo o di rischio.
Impatto sui rilasci
Quanto il debito rallenta il lavoro che il team cerca di rilasciare.
Velocità sulle funzionalità
Il debito rallenta raramente le funzionalità che stiamo sviluppando.
Modifiche sicure
Modificare una parte del nostro sistema raramente rompe una parte non correlata.
Build veloci e affidabili
Le nostre build e i nostri test sono veloci e affidabili.
Salute del codice e dei sistemi
Quanto è facile oggi lavorare con codice, sistemi e dipendenze.
Facile da modificare
La maggior parte del nostro codice è facile da capire e da modificare.
Dipendenze aggiornate
Le nostre dipendenze e piattaforme sono ragionevolmente aggiornate.
Test a supporto del refactoring
I nostri test ci danno la sicurezza necessaria per fare refactoring.
Ripagare il debito
Se il team fa progressi costanti e condivisi nella riduzione del debito.
Tempo dedicato
Dedichiamo regolarmente del tempo a ripagare il debito.
Debito intenzionale registrato
Quando ci indebitiamo di proposito, lo registriamo insieme a un piano per ripagarlo.
Priorità condivise
Product ed engineering sono d'accordo su come dividere il tempo tra funzionalità e debito.
Quando utilizzare questo controllo dello stato di salute
- Quando le funzionalità richiedono più tempo del dovuto e il team continua a dare la colpa al codice.
- Prima della pianificazione trimestrale o della roadmap, per decidere insieme quanto tempo dedicare a ripagare il debito.
- Dopo un grosso sforzo o una scadenza difficile, per registrare le scorciatoie prese prima che vengano dimenticate.
Consigli e suggerimenti
- Leggete per primo il gruppo con il punteggio più basso. Una visibilità bassa significa che prima di tutto vi serve un elenco dei debiti. Una visibilità alta con una riduzione del debito bassa indica un problema di pianificazione, non di codice.
- Coinvolgete il product manager nella discussione, anche se a valutare sono solo gli sviluppatori. Come dividere il tempo tra funzionalità e debito è una decisione condivisa.
- Affiancate ai punteggi i dati che avete già, come i tempi di build, il numero di test instabili o le cause degli incidenti. La valutazione mostra dove fa male; i dati mostrano quanto.
- Usatela insieme all'autovalutazione delle metriche DORA, alla valutazione della maturità DevOps o al modello di maturità dell'eccellenza ingegneristica per capire come il debito si collega ai rilasci e alle pratiche di engineering.
- Ripetetela ogni trimestre. Un punteggio in crescita sulle affermazioni del gruppo Ripagare il debito è il primo segnale che il vostro piano sta funzionando.
Domande frequenti
Come si misura il debito tecnico?
Quali sono i quattro tipi di debito tecnico?
Quanto tempo dovremmo dedicare al debito tecnico?
Come si spiega il debito tecnico ai product manager?
Qual è un esempio di debito tecnico?
Chi ha coniato il termine debito tecnico?
Based on Ward Cunningham, 'The WyCash Portfolio Management System,' OOPSLA '92 Experience Report (1992).