Atobit
Atobit

Editor

Immagine copertina debito tecnico

Il Debito tecnico

Definizione

Chi lavora in ambito IT, soprattutto nello sviluppo software, ha sicuramente sentito parlare del debito tecnico. Ma cos’è esattamente? Come suggerisce il termine, si tratta appunto di un debito, ovvero di qualcosa che in futuro dovrà essere ripagato, che si accumula in modo più o meno consapevole nel corso dello sviluppo di un progetto e riguarda le specifiche modalità (il “come”) scelte per la realizzazione del progetto stesso. La tipica situazione nella quale potrebbe presentarsi il debito tecnico è quella di un progetto di sviluppo software che deve essere portato a termine in tempi brevi e con risorse scarse: questa situazione porterà inevitabilmente allo sviluppo di un software instabile e scarsamente ottimizzato che dovrà sicuramente essere radicalmente modificato in seguito. I costi che quindi crediamo di avere abbattuto inizialmente, si presenteranno in futuro con tanto di interessi.

Tipologie

Esistono diverse tipologie di debito tecnico:

  • Inconsapevole: il team di progetto effettua scelte progettuali ed operative che porteranno all’accumulo inconsapevole di un debito tecnico spesso molto importante
  • Prudente: il team di progetto sceglie consapevolmente di introdurre il debito tecnico ma solo in ambiti ben circoscritti e delimitati. In questa situazione, solitamente, viene anche elaborato un piano che, in tempi brevi, mira a ridurre drasticamente, o addirittura annullare, il debito accumulato
  • Imprudente: il team di progetto sceglie consapevolmente di introdurre il debito senza preoccuparsi troppo di limitarlo. Si tratta di una situazione pericolosa che molto probabilmente porterà all’accumulo di un debito enorme e difficilmente gestibile

Il debito tecnico, quindi, non va per forza evitato ad ogni costo e non è di per sé negativo. E’ uno strumento che va comunque utilizzato con estrema attenzione perché si tratta pur sempre di qualcosa che, in un futuro più o meno lontano, andrà ripagato.


La scelta consapevole di introdurre un debito tecnico all’interno di un progetto va sempre e comunque accompagnata dall’elaborazione di un solido piano di ammortamento che dovrà portare alla totale estinzione del debito stesso.
In ogni caso, il team dovrebbe cercare di evitare di contrarre un debito, anche se piccolo.

Come si genera il debito tecnico

Esistono diversi fattori che possono portare alla generazione del debito tecnico. Tra i più importanti, possiamo ricordare:
  • Tempistiche stringenti: in questi casi occorre privilegiare la velocità a discapito della qualità. Il software prodotto, quindi, sarà inevitabilmente pieno di bug e problematiche
  • Scarsa esperienza: un team poco esperto difficilmente potrà seguire le best practices dello sviluppo e inevitabilmente produrrà codice di bassa qualità
  • Eccessiva burocrazia aziendale: è il rischio di aziende eccessivamente strutturate in cui il team deve rispondere a più persone o a più aree di competenza. Il tempo speso nell’adempimento di pratiche burocratiche viene sottratto alla progettazione efficiente del software
  • Burocrazia aziendale inesistente: al contrario, la totale mancanza di procedure e regole produrrà un software che sarà il risultato di moduli incompatibili assemblati alla meno peggio per ottenere qualche risultato
  • Debito tecnico preesistente: un debito tecnico preesistente non opportunamente estinto, produrrà nuovo debito sempre più pesante e difficile da gestire

La gestione del debito tecnico


Vi sono diverse contromisure che possono essere adottare per gestire e ridurre il debito tecnico, sia da parte del project manager, sia da parte del team di sviluppo. Nello specifico, lato PM:

  • Comunicazione chiara e precisa: il PM deve sforzarsi di fornire indicazioni chiare al team di sviluppo, per evitare che lo stesso debba rimettere mano più volte alla stessa funzionalità
  • Pianificazione e controllo: il PM dovrebbe sempre cercare di adottare e gestire al meglio questi due processi per fornire un punto di riferimento al team di sviluppo e, di conseguenza, ridurre al minimo l’impatto del debito tecnico sul progetto

Lato team di sviluppo:

  • Adozione di standard per la scrittura del codice: l’adozione di standard di scrittura permette al team di muoversi agilmente all’interno del codice evitando così di lavorare utilizzando “toppe”
  • Aggiornamento periodico delle proprie competenze: il team deve provvedere periodicamente ad un aggiornamento delle competenze per fornire soluzioni sempre efficaci ed efficienti
  • Definizione chiara delle responsabilità: in ambito agile, il team di sviluppo è caratterizzato da ampia autogestione nello svolgimento delle attività. Occorre quindi che ogni membro del team sia consapevole delle proprie mansioni e delle proprie responsabilità

Crediamo che affidarsi a un team qualificato ed esperto, capace di seguire la realizzazione del progetto con attenzione e professionalità, possa aiutare a evitare un possibile debito tecnico. Al contempo stesso, un supporto tecnico competente è capace di selezionare le soluzioni per ovviare le problematiche derivanti da debito tecnico preesistente.
Il nostro team è composto da professionisti qualificati ed esperti; il nostro obiettivo è garantire servizi e consulenze adatte a soddisfare le esigenze dei clienti.
  • Software
  • Coding

Condividi l'articolo

Leggi altri articoli

Il mondo IT è sofisticato, lo sappiamo.

Bisogno di aiuto?

Scrivici per una consulenza gratuita.