Recentemente ho letto un libro sulla dieta alimentare in cui c'è scritto che la mente umana è molto efficiente nel creare delle giustificazioni
per non fare le cose che ci fanno bene.
Il meccanismo è descritto bene in questo post che spiega il problema del procrastinare.
Guardando il video
Is Software Evolution really Effective? di Francesco Cirillo all'ultimo agile day, ci si rende conto che evoluzione e design emergente
non hanno molto significato se non si conosce in quale direzione deve avvenire l'evoluzione o cosa deve emergere.
In particolare nello sviluppo software l'evoluzione deve portare ad un costo descrescente col passare del tempo nell'aggiungere feature al sistema.
Se questo non avviene probabilmente nella nostra codebase stanno crescendo dei code monster
(
qui un esempio).
Che cosa porta alla creazione di un code monster?
Secondo me le cause possono essere solo due:
- Mancanza di volontà
- Mancanza di competenze
Nel primo caso rientrano: la pigrizia, la stanchezza, poca disciplina. Mentre nella seconda semplicemente non si è studiato abbastanza.
Un'obiezione che spesso sento è: non abbiamo abbastanza tempo. Ormai è appurato che il modo più produttivo per aggiungere una feature al nostro
sistema è quello di non farsi sconti sulla qualità; quindi la mancanza di tempo è un motivo in più per non allevare code monster.
Sulla competenza suggerisco un semplice esercizio. Scrivete a memoria tutti gli smell che conoscete, poi prendete il
libro del refactoring di Fowler e verificate
se li avete elencati tutti correttamente, in caso contrario studiateli finché non li conoscete a memoria.
Un altro esercizio è: scrivete, sempre a memoria, quali caratteristiche ha un bad design e confrontateli con questo
paper di zio bob.
Concludendo: entrambe le variabili per scrivere del buon codice sono completamente sotto il nostro controllo.
Smettiamo di trovare scuse ed iniziamo a farlo ora senza procrastinare. I colleghi e i clienti ringrazieranno della vostra scelta.