5 Novembre 2011

Sul fondamentale problema della stima costi/tempi

Uno dei maggiori ostacoli che ho personalmente vissuto approdando in un contesto professionale è sicuramente stata la definizione delle specifiche iniziali, e relativa stima di costi e tempi.

Sembra banale dirlo, ma dal punto di vista pratico lo è meno. La differenza più grande nel passaggio da “amatori” a “professionisti” è proprio quella di essere in grado di garantire al 100% i risultati che vengono promessi. E per risultati non intendo soltanto l'output finale, ma anche le tempistiche e le modalità concordate.

Non ci si può permettere di andare ad istinto, non ci si può aspettare che tutto vada nel verso giusto, o che ci possa essere flessibilità altrui nell'accettare eventuali disguidi o intoppi. Al contrario, è fondamentale misurare ogni promessa fatta al cliente valutandola nella casistica peggiore che ci possa venire in mente, e avvisare fin da subito di qualsiasi situazione che possa sfuggire di mano o non dipendente dai propri mezzi/responsabilità.

La stima dei tempi non è un'attività “naturale” per l'essere umano: è sorprendente vedere come gli sviluppatori durante la fase specifiche sembrano come avvolti da un'aurea di immotivato ottimismo, che non gli fa lontanamente scorgere le miriadi di cose che potrebbero tranquillamente andare per il verso sbagliato (e che magari sono già andate storte in passato).

CUT

Tipicamente, l'errore umano di stima cresce esponenzialmente all'aumentare della complessità del task da stimare. E’ difficile, se non impossibile, stimare con precisioni superiori alla “giornata/uomo” su task superiori alle 3-4 settimane. E’ questa una delle motivazioni alla base di metodi di sviluppo agili, che incentivano uno sviluppo incrementale del progetto attraverso una serie di “sprint” da massimo una-due settimane.

In lavori su commessa, un cliente particolarmente illuminato potrebbe essere concorde ad uno sviluppo incrementale, ma pretenderà ad ogni modo (comprensibilmente aggiungo) una stima di tempi e costi per il caso peggiore, dunque il problema alla base rimane. Che si fa?

I consigli che posso dare sono pochi e generici. Sicuramente la stima è più un arte che una scienza perfetta, e come tale necessita di esperienza ed “occhio” per riuscire ad intuire da subito i punti “scricchiolanti” di un progetto. Cercate di suddividere ogni progetto in sotto-task elementari da 2-3 giornate massimo: su quelli il nostro cervello è in grado di stimare con precisione accettabile. Non promettetevi mai una consegna in X giornate – come a trasformare una stima in qualcosa di scritto su pietra – ma tenetevi su un range che sia tanto più ampio quanto sia poco conosciuto l'ambiente nel quale dovrete lavorare. Misuratevi sempre, e controllate a fine lavori di quanto avevato sbagliato, cercando di capire i punti che avevate sottovalutato.

E infine, leggete, leggete, leggete. Il primo passo verso delle migliori stime è essere coscienti di quanto possiamo fare schifo, e imparare da chi lo ha fatto da più tempo.