Tra gli sviluppatori una misura abbastanza affidabile del debito tecnico sembra essere WTF / minuto .
Il problema con questa "metrica" è che in genere è piuttosto difficile comunicare "fuori".
La metrica che ha funzionato per me nella comunicazione del debito tecnico con "outsider" è stata quantità di test e sforzi di risoluzione dei bug (in particolare per il fixing bug di regressione ) necessari per il successo della consegna.
Una parola di cautela: sebbene questo approccio sia abbastanza potente, è preferibile ricontrollare con i buoni vecchi WTF / minuto prima di ricorrere ad esso. Il fatto è che è piuttosto ingombrante: per ottenere i dati, bisogna monitorare attentamente il tempo e registrarlo accuratamente per categorie appropriate.
- è molto più facile indicare 3 settimane totali spesi per l'implementazione della funzione A rispetto a
Ho trascorso 14 ore sull'implementazione della bozza della funzione A, quindi su 29 ore sul fumo per testarlo, quindi su 11 ore sull'implementazione di correzioni per le regressioni che ho scoperto, quindi 18 ore per testare l'implementazione della funzionalità pronta per il QA. Successivamente, i membri del QA hanno trascorso 17 ore a testare la versione iniziale del candidato. Successivamente ho trascorso 13 ore analizzando i bug inviati dal QA per la release iniziale del candidato e 3 ore implementando le correzioni. Dopo di ciò, ho passato 11 ore a fumare testando le modifiche apportate alla versione iniziale del candidato. Dopo che ...
In ogni caso, i dati relativi ai test e alla risoluzione dei bug sono stati abbastanza facili da comunicare nella mia esperienza.
For recent release, we spent about 90% time on testing and fixing regression bugs. For next release, suggest to allocate some effort on getting this value down to 60-70%.
Un'altra parola di cautela. Dati come 90% sopra potrebbero essere interpretati non solo come un'indicazione del debito tecnico, ma anche (sorpresa a sorpresa) come indicazione di uno che non è abbastanza abile nella programmazione / tecnologia particolare. "Fai solo troppi bug nel tuo codice".
Se esiste il rischio che i dati vengano interpretati erroneamente in questo modo, è utile disporre di dati di riferimento aggiuntivi su qualcosa di meno incline al WTF da confrontare.
- Supponiamo che ci siano due componenti / applicazioni simili gestiti dallo stesso (i) sviluppatore (i primi rilasciando a "tasso di scarto" circa il 50% e il secondo a 80-90), questo rappresenta un caso piuttosto favorevole a favore di secondi essere oggetto di debito tecnico.
Se nel progetto ci sono tester dedicati, potrebbero anche contribuire a una valutazione più obiettiva dei dati. Come accennato in un'altra risposta ,
With testers, you get someone to backup your understanding of design issues. When there are only developers complaining about code quality, this often sounds like subjective WTFs from behind the closed door.
But when this is echoed by QA guy saying something like component A
had 100 regression bugs for 10 new features, as opposed to component B
which had 10 regression bugs per 20 new features, communication suddenly turns into whole another game.