AntonioGanci

Il blog di Antonio Ganci
posts - 201, comments - 420, trackbacks - 31

La fabbrica delle giustificazioni

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.

Print | posted on lunedì 21 novembre 2011 23:13 |

Feedback

Gravatar

# re: La fabbrica delle giustificazioni

Bel post! Era un po' che mancavi.
Sono d'accordo sul fatto che se non si sa quello che debba emergere é facile andare alla deriva ed allevare mostri nella codebase.
Oltre a pigrizia, stanchezza e mancanza di disciplina, fra le cause di invasione di mostri, permettimi di aggiungere la "sindrome del Papa", quella per cui uno sviluppatore, sentendosi infallibile, trasferisce nel codice la propria fiducia...ma nè clienti nè colleghi ringraziano mai per simili scelte.
22/11/2011 11:00 | anonymous delegate
Gravatar

# re: La fabbrica delle giustificazioni

Un altro motivo, non meno infrequente, e' la mancanza di adeguate competenze da parte di molti manager del software: per esempio pochissimi manager sanno che nel caso del software, e solo nel caso del software fra le varie ingegnerie, il rapporto qualita'/costo e' *inversamente* proporzionale... In realta' non lo sanno (bene) neanche la maggior parte degli sviluppatori, ma questo lo avete gia' detto.

-LV
22/11/2011 21:20 | LudovicoVan
Gravatar

# re: La fabbrica delle giustificazioni

Magari fosse cosi' semplice: il manager in questione, nella sua incompetenza, ovviamente si aspetta anche che tu faccia quello che dice lui e come lo dice lui! Per essere piu' precisi, nonstante tu non abbia gestito e scritto le specifiche e il piano, anzi nonostante tu non sia di solito nemmeno stato interpellato se non a decisioni tutte prese, tu comunque ti prendi tutta la responsabilita', dei ritardi e della bassa qualita', e quindi sei tu quello che, oltre ad uno stipendio da fame, si fa pure 12 ore al giorno di media con un calcio nel sedere a fine giornata (io ho lavorato in posti in cui mi spegnevano le luci e il riscaldamento da sotto il sedere, per risparmiare...). D'altronde, come gia' accennavo, e' ovviamente tua la responsabilita' di esserti trovato e di stare in una situazione del genere, se ci stai.

Queste realta' sono molto piu' comuni di quanto ci si immaginerebbe: l'incompetenza, come la pigrizia, non e' un vizio con confini di categoria.

-LV
23/11/2011 00:16 | LudovicoVan
Gravatar

# re: La fabbrica delle giustificazioni

Porca miseria mi stupisco di me, ma questa volta Ludovico devo proprio darti ragione al 101% e rileggendo il tuo commento mi proietti in lavori passati e purtroppo presenti dove ho avuto a che fare proprio con questa incompetenza a livello manageriale.
Un cancro direi ... si mi concedete il termine.
23/11/2011 02:55 | raffaeu
Gravatar

# re: La fabbrica delle giustificazioni

> evoluzione e design emergente non hanno molto significato se non si conosce in quale direzione deve avvenire l'evoluzione o cosa deve emergere

Se e' una critica implicita a TDD, sono pienamente d'accordo.

(Porca miseria, mi stupisco di me, ma su questa sono proprio d'accordo Francesco Cirillo... In realta', il video ho preferito non guardarlo, e' bello essere d'accordo ogni tanto... ;)

-LV
24/11/2011 17:42 | LudovicoVan
Gravatar

# re: La fabbrica delle giustificazioni

> Non è una critica alla pratica del TDD. Semplicemente se non sei bravo nel design puoi scrivere brutto codice anche con il TDD.

Ma quella *e'* una critica a TDD: piu' precisamente e' una critica a chi sostiene che TDD serve/aiuta a fare buon design, che e' il principale selling point di TDD.

Si', lo so che TDD e' una delle cose calde del momento, ma io e' dal giorno 1 che vado dicendo che e' essenzialmente una bufala, proprio come la storia dei pomodori: roba per chi lo sviluppo software non sa neanche dove sta di casa e mai lo imparera'. Parenti di RAD et similia, ovvero l'ufficio sviluppo come la cucina di un ristorante e si lavora sulle comande che arrivano dalla sala...

Ma ovviamente e' solo il mio parere.

-LV
24/11/2011 21:26 | LudovicoVan
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET