Managing * debt 
Alberto Brandolini 
@ziobrando avanscoperta
About me @ziobrando 
About me 
@ziobrando 
I do something else instead 
avanscoperta
About About me me 
@ziobrando 
DDD enthusiast 
@ziobrando 
I do something else instead 
avanscoperta
About About me me 
@ziobrando 
DDD enthusiast 
Post-it addicted 
@ziobrando 
I do something else instead 
avanscoperta
About About me me 
@ziobrando 
DDD enthusiast 
Post-it addicted 
@ziobrando 
Visual thinker 
I do something else instead 
avanscoperta
About About me me 
@ziobrando 
DDD enthusiast 
Post-it addicted 
@ziobrando 
Visual I do something thinker 
else instead 
Chaos summoner 
avanscoperta
About About me me 
@ziobrando 
DDD enthusiast 
Post-it addicted 
@ziobrando 
Visual I do something thinker 
else instead 
Chaos summoner 
Idea thief 
avanscoperta
About About me me 
@ziobrando 
DDD enthusiast 
Post-it addicted 
@ziobrando 
Visual I do something thinker 
else instead 
Chaos summoner 
Idea thief 
…never satisfied avanscoperta
Technical Debt 
https://www.youtube.com/watch?v=pqeJFYwnkjE
1. Spensieratezza
2. Accumulo
3.
E dopo?
Technical Debt 
https://www.youtube.com/watch?v=pqeJFYwnkjE
L’illusione del 
controllo
Che bello! Un 
postdatato! Grazie!!!
Prevedibile 
Negoziabile 
Stimabile 
Controllabile
No, il debito non 
l’avete con lei…
Libbano
Libbano 
Bella Libbano! 
Questa iterazione c’ha detto 
male. :-) Ma er debbito 
o’ripagamo alla prossima!! :o)
Libbano 
Bella Libbano! 
Questa iterazione c’ha detto 
male. :-) Ma er debbito 
o’ripagamo alla prossima!! :o) 
A Tastiè’, Tranqui, er leggacy 
è ‘na bbrutta bestia. Manda du’ 
righe ar Freddo che aggiorna 
l’excel. Daje!!
Davvero?
2 problemi:
Le cose che sei 
costretto a fare
Le cose a cui rinunci
Ma soprattutto…
Italia tefe pakare 
tepito tekniko!
Non è 
sempre 
detto…
Questa può 
essere una 
strategia…
So ndo’ abbiti.
Di chi è il debito?
Se prevediamo di stare nel 
sistema meno del tempo 
necessario a migliorarlo…
#sticazzi!
…è una strategia 
vincente.
Leggiamo il sistema:
Sistema 0 
-Prodotto non interessante 
-Sviluppatori a progetto
Sistema 1 
-Prodotto chiave 
-Sviluppatori a progetto 
-… “ah, è la crisi!” :-(
Sistema 2 
-Sviluppatori interni 
-Budget trimestrale/semestrale/ 
annuale
“Possiamo fare 
refactoring?”
“Mamma posso 
mettere in ordine la 
mia stanza?”
Costi certi 
vs…
Dobbiamo chiederlo 
noi?
Non dobbiamo 
chiedere il permesso 
di fare la cosa giusta
Se è così grande da 
dover chiedere il 
permesso c’è 
qualcosa di 
sbagliato…
Cosa stiamo 
chiedendo?
Sistema 3 
-Sviluppatori interni bravi 
-CEO che pianifica un exit
Stessi obiettivi? 
Management Horizon IT Horizon Short term Long term Long term Short Term 
Con pratica e 
disciplina farete 
Catenaccio! grandi cose! 
Bomba a tempo 
Planning difensivo 
Tanta Fatica 
Abbandonate 
la nave! 
Esperimenti 
Probabilmente 
devono imparare 
qualcosa
Chi può migliorare il 
sistema?
Di chi è il debito?
Siamo pedine o giocatori?
Ok chi paga?
So ndo’ abbiti.
A quanto ammonta il 
debito?
“Non ne ho idea”
“È un casino”
“Non si può fare”
…serve una via!
Cosa significa scrivere 
del “buon codice”?
Framework di persistenza in 
Java fatto in casa - 2002
Framework di persistenza in 
Java fatto in casa - 2002 
Libreria per la 
generazione del codice 
fiscale - 1999
Framework di persistenza in 
Java fatto in casa - 2002 
Libreria per la 
generazione del codice 
fiscale - 1999 
Wrapper di Log4J - 2003
“se cambia X, noi 
siamo a posto”
Egli 
l’aveva 
previsto
Egli 
l’aveva 
previsto 
È senza 
dubbio il 
prescelto!
Egli 
l’aveva 
previsto 
È senza 
dubbio il 
prescelto! 
I suoi sorgenti 
saranno studiati dalle 
generazioni future!
Egli 
l’aveva 
previsto 
È senza 
dubbio il 
prescelto! 
…ed è 
anche un 
bell’uomo! 
I suoi sorgenti 
saranno studiati dalle 
generazioni future!
Protezione da rischi 
(tecnologici) 
vs 
generazione di 
opportunità
Generazione di opportunità 
1) Deve funzionare 
2) Deve essere usato 
3) Deve piacere
“A posto così, grazie”
In quante aziende 
hanno smesso di 
chiedere?
Quindi?
Solo una “religione” 
può sperare di 
sovvertire un sistema
I SOLID principles non 
sono sufficienti
Orgoglio 
vs 
disciplina
Flexibility Debt
Io mi occupo di 
questo
Di questo se ne 
occupa lui…
è il mio tesssoro!!!
© 
Alberto 
Brandolini 
2009 
… ma anche no!
Altre opzioni che 
svaniscono
Il debito è non avere 
alternative
1. Scopri il blocco 
2. demistifica 
3. agisci
Qualche assunzione 
implicita 
(E qualche cosa che dico talmente tante volte da 
dare per scontata)
“Il debito tecnico va 
risolto a livello 
tecnico”
Italia tefe fare sakrifici
“Sviluppare software è 
produrre codice”
sbagliato
Software 
development is a 
learning process 
Working code is a 
side effect
Coding 20cl, learning 20cl, 
deciding 20cl, waiting...
quindi…?
Debito tecnico come 
effetto collaterale di… 
Quello che abbiamo imparato 
a livello tecnico 
a livello di dominio 
Del modo in cui prendiamo le 
decisioni 
Del tempo a disposizione 
Dei vincoli imposti dal sistema
“Voglio ridurre il debito 
tecnico senza sperimentare 
nuove strade”
“Voglio ridurre il debito 
tecnico senza imparare 
nulla di nuovo” 
a livello tecnico 
a livello di dominio
“Voglio ridurre il debito 
tecnico senza cambiare il 
modo in cui vengono prese le 
decisioni”
“Voglio ridurre il debito 
tecnico senza mettere in 
luce gli errori passati”
Non possiamo risolvere 
il debito tecnico solo a 
livello di codice
Dobbiamo imparare 
nuove cose
Dobbiamo prendere 
decisioni migliori
Paura dell’ignoto 
“Bisogna che lo fai tu…”
Hotspot Visualiser
Strategia 
Guarda il quadro generale 
Scegli l’azione più importante 
Agisci 
insegna - analizza - sperimenta 
Verifica 
(gongola) 
Ricomincia
Abbiamo una potenza 
di fuoco limitata
Non possiamo 
risolvere tutto
Ma una cosa sì
Prenditi tutto lo 
spazio che serve
Awareness
So ndo’ abbiti.
Paura dell’ignoto 
Eh, ma è un casino
Vogliamo sapere 
Quanto è il debito 
Quando dobbiamo pagarlo 
Se dobbiamo pagarlo
La matematica del 
mucchio
Fase 1 
È un casino. 
C’è un sacco di roba. 
Non va niente.
Quanto è grande il casino?
Quanto è grande il casino?
Ora lo sappiamo
Io e PHP (fase 1)
Io e PHP (fase 1) 
Non conosco PHP
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?)
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?)
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?) 
Stima per imparare PHP:
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio 
Posizione commerciale:
Io e PHP (fase 1) 
Non conosco PHP 
(quanto mi ci vuole a imparare un linguaggio?) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio 
Posizione commerciale: 
“Non mi occupo di PHP”
Paura dell’ignoto 
Eh, ma è un casino
Testing Dojo 
Una giornata dedicata alla 
sperimentazione ed alla 
pratica senza alcun altro fine 
che imparare
Ore lavorative 
o 
fine settimana?
Io e PHP (fase 2)
Io e PHP (fase 2) 
Non conosco PHP
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè)
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè)
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè) 
Stima per imparare PHP:
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio 
Posizione commerciale:
Io e PHP (fase 2) 
Non conosco PHP 
(però …vabbè) 
Stima per imparare PHP: 
1 mese per imparare il linguaggio 
Posizione commerciale: 
“No problem”
Freddo, quanto 
sta er debbito?
So’ 12 euro e 70
Quello che non 
sappiamo crea 
ostacoli
La Trasparenza paga
Questo è un problema
Fare cose per la prima 
volta
Aprire opzioni
Dove ci sediamo?
Dove lavoriamo?
Come lavoriamo 
oggi?
Il debito sono le cose 
a cui rinunciamo
Il debito sono le cose 
a cui rinunciamo 
senza rendercene conto
Non è tecnico
Non si ripaga 
solo con la fatica
Non dobbiamo 
pagarlo TUTTO
Ma dobbiamo 
controllarlo
O lui controllerà noi
Grazie!
Actionables 
http://www.mindmeister.com/478235545?t=YCxNFnCG2Z#
Nota dell’autore 
La prima uscita di questa 
presentazione è stata all’ Italian 
Agile Day 2014. 
Per un sacco di motivi, il risultato 
non è stato completamente 
soddisfacente. In particolare, 
alcuni feedback hanno evidenziato 
alcuni legami non proprio 
immediati tra gli argomenti 
trattati. 
In questa versione ho cercato di 
rendere più evidenti alcuni aspetti, 
che riallacciandosi a mie 
presentazioni passate, potevano 
apparire ovvii, ma non lo erano. 
Il risultato è un numero di slides 
decisamente superiore alla 
versione originale, ma (spero) 
maggiore chiarezza nel passaggio 
dalla prima alla seconda parte del 
talk. 
A queste è stata aggiunta anche la 
mindmap della slide precedente 
con alcuni riferimenti a strumenti 
specifici, sperando d fare cosa 
gradita.
aspè’
A Brando! … me 
spieghi la formattazione 
condizionale?

Managing debt remastered