AntonioGanci

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

Il blocco dello sviluppatore

Il blocco dello scrittore

Ho sperimentato empiricamente sui progetto in cui ho lavorato che l'attività di design incrementale procede ad una velocità incostante.

Ci sono feature che riesco ad implementare velocemente e di cui sono soddisfatto del design ottenuto, mentre ce ne sono altre in cui faccio molta fatica per implementarle e con poca soddisfazione del risultato.

Kent Beck suggerisce di rallentare quando si verificano queste situazioni di attrito. Rallentare significa procedere per passi sempre più piccoli fino a riuscire a superare l'ostacolo.

Uno dei vantaggi del TDD è proprio quello di poter controllare la velocità: mi sento confidente? Vado veloce. Mi sento poco confidente? Rallento.

Quando mi trovo in queste situazioni un'altra tecnica che trovo efficace è quella di risolvere il problema in almeno due modi diversi. Sembra una perdita di tempo in realtà aumenta notevolmente la conoscenza del sistema e spesso evidenzia limiti del design che altrimenti non si noterebbero e che farebbero perdere molto più tempo in seguito.

Bisogna avere coraggio: se perdo confidenza nell'implementazione attuale è meglio fare revert e rifare la feature su cui si sta lavorando altrimenti si rischia di aumentare eccessivamente la complessità del sistema e di introdurre dei difetti.

Un'altra tecnica molto utile consiste nello spiegare cosa si sta facendo e quali problemi sto incontrando ad un altro membro del team; oppure, se la soluzione è sufficientemente generica, scrivere un articolo od un post sul proprio blog.

Trovo utile, banalmente, alzarmi dalla sedia fare quattro passi e ritornare a lavorare questo a volte porta ad una buona intuizione che semplifica il design e lo rende più malleabile.

E a voi vi capitano questi blocchi? Cosa fate per risolverli?

Print | posted on lunedì 11 gennaio 2010 12:25 |

Feedback

Gravatar

# re: Il blocco dello sviluppatore

Quoto tutto... Il più delle volte i blocchi si risolvono distraendosi (facendo 4 passi, andando in palestra, facendo una chiacchiera con un collega). Ho osservato che è necessario liberarsi dei blocchi e/o incertezze di design, pena la scrittura di codice inefficente/complicato/dispendioso. L'approccio migliore è sempre quello più semplice.
11/01/2010 12:45 | Davide Senatore
Gravatar

# re: Il blocco dello sviluppatore

Concordo con tutto ciò che scrivi.
Io in genere, di fronte ad una situazione bloccante, cerco un altro punto di accesso, ossia provo a ribaltare il problema, a guardarlo da un'altra prospettiva cercando una strada alternativa a quella che mi sta bloccando.
Ti consiglio la lettura del libro "Pensiero Laterale" che spiega come talvolta di fronte ad un problema non riusciamo a vedere altre alternative alla strada che abbiamo in testa e quindi non riusciamo ad arrivare alla soluzione.
11/01/2010 16:12 | Emanuele DelBono
Gravatar

# re: Il blocco dello sviluppatore

Condordo, soprattutto sullo scrive più soluzioni del solito problema per capire qual'è la migliiore.
Mi capita praticamente sempre con problemi che non so risolvere al primo colpo e in alcuni casi mi impongo di farlo anche con problemi ben noti, diciamo per non fossilizzarmi sulla prima scelta.
11/01/2010 19:33 | Matteo Baglini
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET