NDepend 2017 introduce la stima del debito tecnico

NDepend è un software che si autodefinisce “coltellino svizzero” per lo sviluppo in ambiente .NET di cui avevamo già parlato più approfonditamente in un articolo precedente. Si tratta di un’applicazione estremamente utile che consente di tenere sotto controllo tutte le fasi dell’implementazione di un progetto software (si veda anche Application Lifecycle Management); permette infatti di gestire i gruppi di lavoro, di mappare la struttura di un progetto per lavorare con il legacy code e di gestire i dati sul code coverage e unit testing, oltre ad avere moltissime altre funzioni utili nello sviluppo di un software.
Rilasciato per la prima volta nel 2004 e giunto adesso alla versione 2017.1.1, parliamo quindi di un prodotto stabile e decisamente maturo. NDepend si affaccia al futuro con un’interessante novità: la stima del debito tecnico.

Cos’è il debito tecnico

Il debito tecnico è un concetto espresso per la prima volta da Ward Cunningham, programmatore statunitense noto per essere stato l’inventore del concetto Wiki; in breve, si tratta del tempo di lavoro extra che diventa necessario in cui, nella fase di sviluppo, si sceglie di utilizzare un codice semplice da implementare invece di scegliere la soluzione tecnicamente migliore. Il debito tecnico si può dunque paragonare al debito finanziario: se non viene pagato accumula interesse, ovvero se le modifiche non vengono implementate subito diventeranno, nel tempo, sempre più difficili da applicare.

In generale, il debito tecnico può essere causato da una gran varietà di fattori:

  • le pressioni commerciali, che inducono a rilasciare un’applicazione prima del tempo necessario a fare tutti i cambiamenti
  • lo sviluppo parallelo tra due o più gruppi di lavoro
  • la mancanza di documentazione
  • l’insufficienza del testing
  • la mancanza di tempo o abilità di alcuni membri del team
  • e così via

Nell’ambito dell’informatica, il debito tecnico è una delle cause principali dei ritardi nello sviluppo del software, anche a causa dell’incertezza che lo circonda: quando si inizia a lavorare su una modifica, infatti, spesso non si sa quanto tempo ci si metterà a completarla, causando gravi danni economici alle aziende e portando a un calo della qualità del prodotto finale.

L’innovazione di NDepend

Ad oggi, NDepend è l’unica estensione di Visual Studio in grado di fare una stima del debito tecnico, permettendo così agli sviluppatori di organizzare il proprio tempo e il proprio lavoro. NDepend stima il debito tecnico come il tempo-uomo stimato necessario per correggere un determinato problema, e l’interesse annuale come il tempo-uomo che si aggiungerà ogni anno al debito tecnico se il problema non verrà risolto.

Il metodo utilizzato per la stima del debito tecnico è il metodo SQALE, basandosi in particolare sui parametri di Debt Ratio e Debt Rating.

Il Debt Ratio di un elemento di codice è la percentuale di debito tecnico che gli viene attribuita, confrontata con l’impegno stimato che sarebbe necessario per riscrivere il codice da zero. Questo impegno stimato viene stimato in base a un’impostazione personalizzabile del programma, ovvero il numero stimato di giorni-uomo necessari a scrivere 1000 righe di codice.

Il Debt Rating è invece una misura della gravità del debito, espressa con una lettera da A (la migliore) a E( la peggiore). I parametri di default, anch’essi pienamente personalizzabili, prevedono ad esempio che un Debt Ratio dello 0-5% corrisponda a una A, mentre un Debt Ratio superiore al 10% corrisponda a una E.

Anche tutte le altre impostazioni relative al debito tecnico sono pienamente personalizzabili: ad esempio è possibile indicare il numero di ore lavorative in un giorno, e quello di giorni lavorativi in un anno. Aggiungendo a questi dati il costo di un’ora di sviluppo, ad esempio, è possibile stimare il costo che l’azienda dovrà sostenere per ripagare il debito tecnico.

Un altro dato stimato dal programma, che permette di assegnare ai diversi problemi una diversa priorità, è il Breaking Point (punto di rottura): si tratta dell’intervallo di tempo passato il quale il costo stimato per risolvere il problema eguaglierà il costo stimato nel caso in cui il problema non venga risolto. Per esempio, un breaking point inferiore a un anno significa che nell’anno successivo sarà più economico risolvere il problema piuttosto che non farlo.

Conclusioni

La difficoltà nella stima del debito tecnico è stata, negli ultimi anni, una delle più grandi cause di ritardi e di perdite economiche nel mondo dello sviluppo software; lo strumento fornito da NDepend consente di affrontare questo problema, ottenendo come risultati un maggiore rispetto delle scadenze e una maggiore qualità del prodotto finito. Si tratta certamente di un prodotto che tutte le aziende, dalle più piccole alle più grandi, dovrebbero provare almeno una volta.

LASCIA UN COMMENTO

Please enter your comment!
Please enter your name here

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.