Una delle cose in cui trovo più difficoltà è calcolare il tempo necessario per svolgere un compito. Per dire, in questi 100DaysOfCode pensavo di sbrigare rapidamente il primo obiettivo. Invece ci ho messo 10 giorni, tipo 2 o 3 volte la mia stima iniziale. Un po’ è per la tendenza a modificare continuamente. Un po’ è per il non aver pianificato ben bene quello che volevo fare.
Ma non è l’unica ragione. Navigando ho trovato più sviluppatori alle prese con questo problema. Alcuni hanno proposto delle teorie sul perché. Teorie che si possono riassumere così:
- Non abbiamo abbastanza dati per fare una stima;
- Non teniamo conto delle difficoltà. Ovvero, pensiamo che andrà tutto liscio;
- E andrà tutto liscio al primo tentativo. Dimentichiamo che, sostanzialmente sempre, dovremo rifare più volte un lavoro, correggendo errori e velocizzando procedure;
- Pensiamo che le cose siano sempre uguali. Ma ogni progetto è una storia a sé. E dobbiamo tenerne conto nelle nostre stime;
- Magari il risultato da ottenere appare semplice, ma il lavoro da fare, i requisiti da rispettare, tutte le condizioni dietro possono essere molto più complicate. Nella stima del tempo necessario dobbiamo ricordare di verificare anche il dietro le quinte;
- Sogniamo di poter lavorare senza interruzioni e senza contrattempi. Ma ci sarà sempre una riunione, una telefonata, un qualcosa fuori da noi che ci distrarrà e ci farà perdere il flusso di lavoro;
- Infine, può anche capitare di non comprendere a pieno i nostri limiti e, di conseguenza, sovrastimiamo le nostre capacità.
Lo so. Lo so davvero, le mie conoscenze sono abbastanza ridotte rispetto a quelle di molti programmatori e sviluppatori. Penso però di non essere molto distante dal vero con questo elenco. Quello in cui invece sono distante è nel seguire un altro consiglio, consiglio ripetuto da molti:
Arrotonda sempre in eccesso il tempo necessario
Io tendo invece a fare il contrario, al lavoro come nei miei hobby. Eppure sarebbe così semplice:
- se un lavoro richiede meno di una settimana, arrotonda in eccesso al giorno intero. Per esempio, se richiede un giorno e mezzo stima due giorni;
- se un lavoro richiede più di 5 giorni, arrotonda alla settimana. Quindi se penso di impiegare 8 giorni, darò come stima 2 settimane
- se un lavoro richiede più di 3-4 settimane, beh, lascia perdere: è impossibile fare una stima corretta. Però puoi fare una cosa, scomponi il problema in problemi più semplici e affrontali uno alla volta.
Tutto questo riguarda la stima del tempo. Il discorso è diverso, ovviamente, quando si parla di come far fruttare al meglio il proprio tempo. In inglese si chiama Time management, ma è una cosa di cui parlerò domani.