1. Quanto costa un Bug?
Tdd spiegato ai manager
Anti pattern nella gestione del software di bassa qualità.
Esperienze dal campo.
Pino Decandia
linkedin.com/in/pdecandia
Agile for innovation
Milano, 2 Marzo 2017
2. Quanto costa un progetto software?
Stipendi / costo del personale
Materiale e attrezzature, server,
licenze etc
Trasferte / Spese
Assistenza post rilascio e
bug fix
+
Noto/Stimabile
Noto/Stimabile
Noto/Stimabile
Non noto
Difficile o
impossibile da
stimare
+
+
5. Avete mai dovuto gestire
una situazione come
questa?
Regressione
Alta difettosità
Indica un codice fuori
controllo o non
manutenibile
La risoluzione di
un’anomalia è spesso
“temporanea”
Il codice sotto controllo
6. Come ci si arriva
Abbiamo un team a disposizione
cui vengono assegnati dei progetti
Progetto 1
Progetto 2
Progetto 3 …
Costo non preventivato e non stimabile
+ = ??
7. Come si affronta (in genere)
Development team
Team di Test / Quality assurance
+
Team di Maintenance / Supporto
+
8. Perché non funziona? I team
Development team Team di Test
Team di Maintenance
Comunicazione difficile
Scarico di
responsabilità e basso
committment
Slegato dagli altri team
Nessuna o scarsa conoscenza del
prodotto e del codice
Scelti in base a costi (bassa seniority)
Diventa un ulteriore punto di scarico di
responsabilità
9. Perché non funziona? Punto sbagliato
Un cambio strutturale con team di test e di
supporto indirizza il problema quando si è
già presentato
Progetto 1
Progetto 2
Progetto 3 …
I bug vanno
“semplicemente” evitati
10. Con quali risultati? Due esempi
1. Software gestionale
Numero bachi attivi (diversa importanza): ca 200
Team di maintenance: 6 persone full time
Costo: 180k/anno?
Tempo stimato di abbattimento: 6 mesi (Giugno 2016)
Tempo stimato di abbattimento: 6 mesi (oggi)
Lead time: +15%
2. Software per sistemi di telecontrollo
Numero bachi attivi (diversa importanza): ca 1350
Team di maintenance: non presente
Tempo dei team dedicato alla risoluzione: ca 12 FTE
Costo: 260k/anno?
Lead time: +25%
11. Le persone e le risorse
economiche impiegate per
fronteggiare situazioni
emergenziali
non possono essere
impiegate altrove
Costo per opportunità perse?
L’azienda perde fiducia nelle
proprie possibilità di
realizzare
prodotti
12. Costo per un cliente insoddisfatto?
Futura collaborazione a
rischio
Reputazione
Potenziali problemi
legali
13. Test failed
Refactor Test passed
Scrivi un test che fallisce
Applica i
cambiamenti
minimi per farlo
funzionare
Migliora il codice
Il TDD
Controllo del codice
Qualità del codice
prodotto
No regression
No bugs
L’applicazione sistematica
consente di “coprire” e mettere
in sicurezza il codice