Introduzione
La stima del tempo di completamento di un progetto di sviluppo software è una attività non banale. Proviamo ad applicare alcune considerazioni e tecniche proprie della ricerca operativa per cercare di capire cosa si nasconde dietro questa difficoltà.Per fare questo prendiamo in considerazione un progetto scomposto in 7 macro attività, tutte da svolgersi in sequenza. L'ipotesi di sequenzialità deriva dal fatto che il progetto verrà portato al termine da un'unica squadra composta da 2 persone.
La stima banale
Il project manager poco esperto tenderà a chiedere alla propria squadra una stima del tempo di completamento delle singole macro attività. Applicando un opportuno fattore di contingenza alla somma dei singoli tempi, ecco che viene la stima del tempo di completamento dell'intero progetto.Questo metodo, per quanto semplice ed intuitivo, presenta dei difetti. Il primo e più importante è quello di non portare in evidenza l'entità del rischio che il progetto, per come è strutturato, si porta dietro. Certo il fattore di contingenza cerca di controllare il rischio, ma comunque si parte da una stima piatta ad un'altra stima piatta.
Un altro problema di questo metodo è che, buona parte della responsabilità sulla stima e rispetto del tempo di completamento dell'intero progetto, è stata spostata sul team di sviluppo. Uno strumento che permette di bilanciare in maniera più distribuita le responsabilità, distinguendo tra singole macro attività e intero progetto, è utile ed auspicabile.
Stima delle singole macro attività
La domanda “quanto tempo ci vuole per completare una data attività” è una domanda mal posta, perché l'unica risposta sensata è “dipende”. Questo perché dietro una attività di sviluppo si nascondono tante insidie e punti di aleatorietà. A partire dalla bravura ed esperienza dei programmatori, gli strumenti utilizzati, la complessità intrinseca del problema e tanti altri fattori rendono una qualunque stima poco significativa.L'ideale sarebbe poter avere una distribuzione dei tempi di sviluppo, quindi una serie di possibili tempi che relative probabilità. Questa richiesta, per quanto sensata, presenta delle difficoltà oggettive difficilmente risolvibili, perché senza delle statistiche affidabili su attività analoghe è praticamente impossibile ipotizzare una qualche distribuzione.
Un giusto compromesso tra queste due possibilità è la cosiddetta distribuzione triangolare, caratterizzata da tre parametri:
- il tempo minimo a di completamento
- il tempo massimo b di completamento
- il tempo più ragionevole c di completamento.
Stima sull'intero progetto
A questo punto siamo in grado di dare qualche informazione in più sul tempo di completamento del progetto: il tempo minimo di completamento, il tempo massimo di completamento, il tempo medio di completamento; ognuno come somma rispettivamente dei tempi minimi, massimi e medi delle singole macro attività.Proviamo ad andare oltre e chiediamoci qual'è la distribuzione del tempo di completamento dell'intero progetto. Per fare questo possiamo usare il metodo montecarlo, generando in modo casuale e secondo le rispettive distribuzioni le durate delle singole macro attività. Quello che otteniamo è la curva seguente che lega la probabilità con il tempo di completamento totale.
Questa curva ci dice alcune cose molto interessanti e che spiegano molte scelte tecnologiche per le attività di sviluppo nelle grandi aziende.
Escludiamo subito la parte terminale della curva, quella con ascisse tra 0.8 e 1, perché rappresenta tempi di completamento troppo alti.
La prima parte della curva, con ascissa tra 0 e 0.1 può essere, per alcune aziende, non accettabile anche se corrispondente a costi di sviluppo bassi. Infatti in quella zona della curva la variazione sui tempi di sviluppo è alta, ovvero che uno sbaglio nella stima dei tempi si traduce in una variazione alta rispetto alla durata preventivata.
La zona centrale della curva rappresenta tutta una zona di “calma relativa”, dove l'errore commesso in fase di stima ha un impatto minimo sui tempi effettivi di sviluppo. Portare le stime in quella zona della curva può essere il vero obiettivo aziendale, invece che avere stime più esatte.
Commenti