Come si misura meglio il debito tecnico? Quali metriche sono più utili? [duplicare]

9

Se volevo aiutare un cliente a capire il grado di debito tecnico nella sua domanda, quale sarebbe la migliore metrica da usare? Mi sono imbattuto nella tossicità del codice di Erik Doernenburg e anche nel plug-in tecnico del debito di Sonar, ma mi chiedevo cosa fossero gli altri.

Idealmente, mi piacerebbe dire "il sistema A ha un punteggio di 100 mentre il sistema B ha un punteggio di 50, quindi il sistema A sarà molto più difficile da gestire rispetto al sistema B".

Ovviamente, capisco che ribaltare concetti complessi come "debito tecnico" o "manutenibilità" in un singolo numero potrebbe essere fuorviante o impreciso (in alcuni casi), tuttavia ho bisogno di un modo semplice per comunicare a un cliente ( chi non è pratico nel codice) approssimativamente quanto debito tecnico è incorporato nel loro sistema (rispetto ad altri sistemi), allo scopo di costruire un caso per refactoring / unit test / etc.

Ancora una volta, sto cercando un singolo numero / grafico / visualizzazione e non un elenco completo di violazioni (ad esempio CheckStyle, PMD, ecc.).

    
posta throp 02.10.2012 - 15:19
fonte

2 risposte

9

Misura il debito tecnico in termini di quantità di lavoro necessario per eliminare il debito: se porterai te e il tuo team per 3 mesi a ottenere il codice nella forma in cui vorreste che fosse, avrete 3 mesi di team-debito. Il costo di portare il debito, come gli interessi su un prestito, è la quantità di lavoro extra che si incorre a causa del debito: se il 50% del lavoro svolto dalla tua squadra in un mese sarebbe eliminato se il tuo codice fosse in forma ideale, che il 50% è l '"interesse" che si paga sul debito.

Ovviamente, è impossibile sapere esattamente quanto tempo ci vorrà per aggiustare il debito finché non lo fai, quindi è possibile misurare queste cose solo dopo il fatto. E in ogni caso, il valore dell'idea di debito tecnico è semplicemente quello di esprimere il grado in cui compromessi e lavori ritardati hanno o diventeranno un problema per il tuo progetto. Una buona contabilità del lavoro richiesto per ridurre il debito aiuterà nella pianificazione del progetto, ma a parte questo potrebbe essere più utile esprimere il debito in t-shirt taglie: piccole, medie, grandi, extra-large.

    
risposta data 02.10.2012 - 16:38
fonte
1

Non parli di quale ambiente / lingua vuoi fornire le metriche. Se si utilizza Visual Studio Ultimate, gli strumenti di analisi del codice forniscono un indice di manutenibilità come punteggio da 0 a 100 a livello di soluzione, progetto, classe e persino metodo.

A parte ciò, un buon indicatore della manutenibilità è la complessità ciclomatica. Esistono numerosi strumenti che lo calcolano automaticamente in più lingue e ambienti. Questa domanda fornisce un elenco di essi.

    
risposta data 02.10.2012 - 15:31
fonte