Debito tecnico software: i tool per individuarlo

triangolo

Debito tecnico software: strumenti di analisi

Il debito tecnico è un male? Partiamo innanzitutto con il definirlo: si tratta di codice esistente che richiederà più ore di lavoro per essere corretto e sistemato.

Questo non significa necessariamente che quella parte sia bad code, ma il dev si trova nella posizione in cui i tempi di delivery sono più importanti del dedicare tempo ed energie alla fase di progettazione. La mancata progettazione è quindi la causa principale di technical debt, ma, spesso, non è da imputare alla mancanza di attenzione e precisione del team di sviluppo, ma è una conseguenza normale dei tempi e delle esigenze di progetto sempre stringenti. Il debito può certamente essere la conseguenza di un approccio sbagliato allo sviluppo ma, spesso, deriva da una scelta strategica e necessaria.

Il debito tende però ad accumularsi: le parti di codice non ottimizzate si moltiplicano e possono portare a diversi errori e disfunzionalità.

Come è possibile accorgersi del debito? Il debito è tutto uguale?

Ci sono senz’altro dei segnali che indicano che siamo in presenza di un debito tecnico piuttosto elevato:

  • I bug rilevati sono molto difficili da risolvere;
  • La correzione di un bug causa la comparsa di nuovi errori;
  • I progetti sono difficili da portare avanti e gli sviluppatori perdono molto tempo ad interpretare il codice;
  • Gli sviluppatori si trovano spesso a dover affrontare attività non pianificate;
  • Col tempo le nuove richieste di sviluppo diventano sempre più difficili e costose.

Oltre alla presenza di questi “sintomi”, le aziende possono avvalersi di strumenti ad hoc e di vario genere che rilevano i punti di debito a più alto interesse, i cosiddetti hotspot, in modo da sapere dove intervenire con priorità. Analizzare il debito con strumenti appositi fornisce ai developer diverse informazioni, fondamentali per agire e ridurre il debito ottimizzando le tempistiche di lavoro.

Quali sono questi strumenti?

Esistono due tipologie di strumenti: quelli che indicano la presenza di errori senza dare un’indicazione sulla gravità (strumenti di analisi statica) e quelli che invece indicano puntualmente quali sono le parti di codice ad alto interesse di debito (behavioral code analysis) e sui quali è necessario un intervento prioritario.

SonarQube è un tool open source di code inspection: fornisce un resoconto sulla qualità del codice, basandosi su metriche personalizzabili. Lo scopo primario è quello di fornire al dev uno strumento in grado di monitorare la qualità del codice scritto: questo aspetto è centrale per contenere il debito tecnico, ridurre la complessità del codice e abbracciare l’approccio del miglioramento continuo.  Nello specifico, SonarQube identifica la presenza di bug e attiva un sistema di alert che avverte i developer prima del passaggio in produzione.

Stepsize invece è un issue tracker integrato direttamente sul code editor e che permette, selezionando uno snippet, di intervenire sul codice sorgente che presenta problemi, senza dover abbandonare il workflow. Si tratta di una soluzione integrabile con i principali applicativi di project management e di code hosting, nel totale rispetto del regolamento privacy.

Teamscale invece è una soluzione completa di controllo della qualità del software che spazia dal Test Gap Analysis al Clone Management. Per quanto riguarda il technical debt, offre la soluzione di Quality Control che permette di analizzare il debito e misurarlo con strumenti di analisi change-driven. Si distingue dalla concorrenza analizzando ogni commit come un incremento sul server, fornendo un risultato dell’analisi dopo pochi secondi.

Codescene è senz’altro uno dei software di tracciamento e individuazione del debito tecnico più performante sul mercato. Si tratta di uno strumento di behavioral code analysis che, non solo traccia il debito, ma evidenzia anche le parti di codice dove gli interessi e quindi la gravità sono maggiori, a differenza degli strumenti di analisi statica come SonarQube. Questo è importante perché indica all’azienda quale parte di codice dev’essere sottoposta a un intervento prioritario.

Mentre le soluzioni classiche lavorano su uno snapshot della codebase, Codescene considera la dimensione e l’evoluzione dell’intero sistema. In questo modo, il software riesce ad individuare le problematiche riguardanti il codice e quindi le parti più gravose dal punto di vista del debito, basandosi su come l’azienda lavora effettivamente con il codice. L’analisi è completamente automatica ed evidenzia le parti di codice ad alto interesse di debito (hotspot) che si aggirano normalmente intorno al 1-4%.

Debito tecnico software

Questa tipologia di analisi del debito tecnico favorisce anche la comunicazione tra il business e l’IT: il software analizza il codice in profondità ma fornisce risultati intuibili anche da figure non tecniche ma, spesso, con potere decisionale e di budget. 

 

Richiedi l'analisi dei tuoi applicativi