Case study

Affrontare il debito tecnico. Un test alla volta

Un’applicazione imponente, divenuta nel tempo difficile da mantenere ed estendere. Il debito tecnico, l’elevata complessità accidentale, le regressioni troppo frequenti: queste condizioni alimentano paure e frustrazioni, che inibiscono il potenziale dei team. Grazie all’approccio eXtreme Programming (XP) e alle sue pratiche tecniche e sociali i team riprendono a correre.

debito tecnico

Le nostre attività hanno avuto un impatto su

0

persone

Client people

In 6 mesi abbiamo lavorato con

0

persone

Pratiche tecniche di sviluppo: quando la qualità del software aumenta l’efficacia del business

Questo percorso, durato circa 6 mesi, è stato un’altra occasione per osservare lo spirito originario del Manifesto per lo sviluppo agile del software. Attraverso gli strumenti tecnici e sociali offerti dall’approccio XP, i team hanno riguadagnato confidenza nelle loro capacità, riprendendo a soddisfare le richieste del business con maggiore regolarità.
Tutto questo è stato possibile grazie all’impegno dell’azienda che ha promosso l’iniziativa e al technical coach che ha trovato menti aperte e pronte a cambiare passo.

Contesto iniziale

  • Affanno nella pubblicazione di modifiche imposte dalla normativa
  • Difficoltà (sia tecniche che in termini di effort) nell’introduzione di nuove funzionalità di prodotto, utili per conquistare ulteriori fette di mercato
  • Team e sviluppatori inibiti dalla fragilità del sistema

Necessità del cliente

  • Ritornare ad avere un passo sostenibile
  • Dedicare una maggiore quantità di tempo nel fare innovazione di prodotto
  • Diminuire l’impatto di adeguamenti e manutenzione in termini di effort 
  • Tornare ad avere team e sviluppatori efficaci e confidenti nelle loro capacità

Come stiamo supportando il progetto

Testing, TDD e refactoring continuo: gli strumenti per riprendere a correre

Il percorso ha visto il coinvolgimento di 5 differenti team, tutti impegnati nello sviluppo di una imponente applicazione in ambito normativo e finanziario. La complessità intrinseca del dominio ha costretto l’applicazione a evolversi rapidamente, alcune volte in maniera incontrollata.
La necessità di ottemperare alle normative senza possibilità di negoziazione sui tempi ha causato l’accumulo di un importante debito tecnico. Il refactoring è stato troppo spesso sacrificato, e questo ha portato i team all’affanno: introdurre nuove funzionalità o adeguare quelle esistenti è diventato un costo troppo spesso elevato, non commisurato al ritorno di investimento.
Indossando il “cappello” di formatore e trainer, il technical coach ha introdotto i principi di XP, permettendo ai team di apprezzare gli strumenti che questo approccio offre in chiave di “gestione del rischio”: rischio di fare la cosa sbagliata, di farla male o troppo tardi.
Lavorando in Mob Programming e usando i test come principale strumento, si sono affrontati temi di design, refactoring e “messa in sicurezza” delle applicazioni.
Al termine del periodo di affiancamento, i team hanno intrapreso una forte iniziativa di testing e refactoring del codice. L’iniziativa, tuttora in corso, inizia a dare i suoi primi evidenti frutti.

Debito tecnico fase 1

Fase 1

Il coach ha guidato i team nella comprensione dei motivi che hanno portato i pionieri dell’agilità alla creazione dell’approccio XP.
Raccontando la storia del celeberrimo “C3 project” si arriva a scoprire la genesi di pratiche, principi e valori, scoprendo anche il perché dell’aggettivo “extreme”: ovvero, prendere le pratiche che si sono rivelate di maggior successo e portarle all’estremo, per ottenerne la massima efficacia.

Debito tecnico fase 2

Fase 2

Nella seconda parte del percorso si è iniziato a “zoomare” su alcuni aspetti dell’approccio, prima fra tutti il tema dei test.
Attraverso la sempreverde chiave di lettura offerta da Brian Marick, i team hanno potuto riflettere sul (vastissimo!) tema del testing e delle sue innumerevoli sfaccettature.

Debito tecnico fase 3

Fase 3

Si è proseguito poi con l’introduzione del Test Driven Development (TDD), una fra le pratiche XP di maggior notorietà. Attraverso il lavoro su dei code kata affrontati in Mob Programming, il technical coach ha permesso la comprensione dello strumento, facilitando l’apprendimento attraverso esercizi pratici e retrospettive continue.

Debito tecnico fase 4

Fase 4

Infine, il technical coach ha offerto un altro modo di usare i test. Attraverso il concetto di test di caratterizzazione, i team hanno potuto affrontare una codebase legacy di esempio scrivendo una rete di sicurezza fatta di test e atta ad abilitare il successivo refactoring. Queste tecniche, tra cui troviamo il Golden Master, Approval Tests e Snapshot Testing solo per citarne alcune, offrono un’arma molto efficace nel domare applicazioni legacy.
Una volta apprese le tecniche in un contesto protetto, il technical coach ha affiancato i team in alcune sessioni di testing del codice di produzione, per favorire il pieno apprendimento delle tecniche e offrire supporto nella loro applicazione pratica.

 

1

Riscoperta dell’approccio XP

2

Pratiche tecniche: formazione testing e TDD

3

Sperimentazione: code kata e Mob Programming

4

Applicazione delle tecniche su casi reali

5

Definizione iniziative successive

Risultati organizzativi e di business

  • Team più sicuri nell’affrontare le sfide offerte dal business
  • Percezione di una maggiore prevedibilità dei team
  • Diminuzione apprezzabile di bug e regressioni
  • Abilitazione dei feedback loop derivanti dai test
  • Consapevolezza del debito tecnico accumulato
  • Sviluppatori più confidenti nell’affrontare la codebase
  • Un set di modalità di lavoro e occasioni di crescita che i team possono coltivare in autonomia

Case STUDY

Le nostre esperienze

Ecco alcune delle storie di chi si è affidato ad Agile Reloaded.

Scopri i nostri case study