Chiunque programmi software si trova spesso a misurarsi con la propria produttività.
Programmo software da circa 35 anni, e ho avuto periodi di estrema produttività a periodi poco efficaci e con gravi problemi di ispirazione.
Ultimamente ho cercato di utilizzare una tecnica, astraendola dal fitness in un certo senso, che pare produrre performance sensazionali. Raccolgo qui il metodo più per me che per voi: penso che ogni sviluppatore debba trovare la sua via.
Un mio amico, cercando di convincermi a fare sport, sostenne di riuscire a farlo solo alzandosi dal letto e gettandosi sul Tapis Roulant, e correndo subito come un pazzo. Io non ho seguito il suo consiglio e proseguo con le mie tranquille passeggiate, ma non si può passeggiare in tutte le occasioni e in tutti gli ambiti.
Ho quindi filosofeggiato sull’attività “Cardio” riguardo al coding, ed ecco le mie personali comprovate riflessioni: Un piccolo metodo di cardio-coding.
Il metodo
Lavorate a brevi sessioni, 45 minuti l’una. Distraction free. Non guardate i social, anche Slack può aspettare: nessuno in azienda ha bisogno di voi entro 45 minuti, non salvate vite, sviluppate codice.
L’analisi del software va fatta prima: non dovete lavorare a pezzi, analizzando di volta in volta. Considerate l’analisi il vostro piano di allenamento. Meglio se utilizzate l’approccio contract first dove possibile: un binario più solido verso quello che dovete ottenere.
Appena appoggiate le dita sulla tastiera, scrivete codice, lo fate sempre e potete essere veloci a digitare come se fosse un dettato. Non fatevi ingannare dalle riflessioni sulle best practice o sull’eleganza del codice, ci penserete dopo: fate in modo che programmare sia un flusso continuo di coscienza. Restate concentrati solo sul risultato.
Allenatevi con ogni shortcut presente nel vostro IDE preferito: dovete usare le funzioni senza pensarci, dal copia e incolla all’uso di snippet a git.
Trattate ogni compito come se fosse un hackaton: dovete ottenere una copia funzionante del prodotto entro la sessione. Se il prodotto è complesso dividetelo in più sottoprodotti e programmate più sessioni, ma entro la sessione dovete produrre un risultato tangibile di cui siete soddisfatti.
Quando avete il prodotto completo, affrontate, cambiando ritmo, la code-review e sistemate tutto quello che la fretta vi ha fatto tralasciare.
Il riposo del guerriero
Dopo la sessione prendetevi 15 minuti: andate sul divano se siete in full remote working, guardate i social, rispondete ai colleghi su slack, guardate i task futuri, tutto in modo rilassato: allo scadere parte un’altra sessione e dovete tirare il fiato.
Ma funziona davvero?
Si è scritto tanto di metodi per sviluppare il software, per ottimizzare la produttività etc. Non sono qui per imporvi il mio o dire che è la ricetta per tutte le stagioni. Per il momento mi trovo bene ad usarlo e psicologicamente mi sento più utile nei processi che svolgo personalmente.
Spesso, sarà capitato anche a voi, quando siamo sotto stress o giochiamo in un hackaton, produciamo più di quando affrontiamo i nostri sprint in ufficio. L’idea è la medesima: hackaton sempre.
Questo atteggiamento può portarvi al successo, in un momento in cui tutto è basato su MVP e Lean, e elimina un sacco di problemi psicologici sulla produttività: le cose si fanno e basta, senza esagerate riflessioni.
Ovviamente c’è anche il tempo per riflettere, ma non quando si sviluppa. Dovete riflettere in analisi e in code-review. Durante la prima fissate le basi del vostro lavoro, durante l’ultima abbellite il codice, sistematelo in modo che sia leggibile dai vostri colleghi del team, testatelo.
Spero che queste mie riflessioni vi siano utili: fatemi sapere che ne pensate.