PMI-ACP Approfondimenti
Tecniche di Stima in Agile
“Preparazione Esame di Certificazione Agile PMI-ACP®”
Per consultare questi approfondimenti, devi essere almeno registrato al sito (Registrati se non lo sei già)
Agile: Planning Poker
Effettuare delle stime è sempre molto critico perché la stima può impattare qualcuno: noi stessi o altri e poi comporta una certa dose di soggettività o di conflitto di interesse.
- Quanto tempo occorre per leggere un libro di 100 pagine? Dipende da chi deve leggerlo.
- Quanto ci vuole per andare da Roma a Milano? Dipende dal mezzo utilizzato.
Prova a rispondere alle seguenti domande:
Dare un numero è facile, giustificarlo è leggermente più difficile.
La prima domanda fa sorridere, mentre la seconda mette in imbarazzo molte persone. Ognuno tira fuori la sua teoria sul miglior criterio per calcolare il numero delle caramelle in un tronco di cono visto su una immagine piana. Le risposte possono essere le più fantasiose, ma nessuna sarà convincente al 100%.
La lezione è che, qualunque sia l’idea originale, a meno di non contare le caramelle una ad una, occorre condividere una valutazione di massima, giustificata da uno dei criteri accettabili.
Un’altra criticità delle stime è cosa stiamo stimando.
- Una dimensione ? – in unità di misura (metri, litri, quintali, etc)
- Una metrica ? – frutto di un calcolo (velocità, pressione, temperatura, etc.)
- Una durata ? – unità di tempo ( secondi, minuti, ore, giorni, … secoli)
Alcune tecniche di stima del project management tradizionale sono:
- Parere dell’esperto
- Stima per analogia
- Stima parametrica
- Stima con il metodo di Delphi
- Stima bottom-up
- Stima con il metodo PERT – (O+4M+P)/6) : media di Ottimistica, Pessimistica e 4 volte la Mediana.
- Ogni tecnica ha i suoi pro ed i suoi contro tra costo della stima stessa, disponibilità e attendibilità.
Queste tecniche non possono soddisfare le esigenze di un ambiente Agile, perché Agile vuol dire: collaborazione, consenso e competenza.
- Collaborazione – le stime devono essere prodotte in modo collegiale.
- Consenso – le stime devono essere condivise.
- Competenza – le stime le fa chi effettivamente eseguirà il lavoro.
Di solito, alla riunione per effettuare le stime partecipano tutti gli interessati. I membri del team si confrontano con una tecnica simile ad un gioco di gruppo ed alla fine a maggioranza, se non all’unanimità, decidono la stima da assumere per ogni user story.
La tecnica più comune per effettuare le stime nel mondo Agile è la: Agile:Planning Poker, basata sulla tecnica di stima con il Metodo Delphi, inventata negli anni ’40, e affinata nel 2002 da James Grenning, ma resa popolare da Mike Cohn nel libro “Agile Estimating and Planning“.
Si tratta di un approccio molto semplice, al limite del gioco, dove però tutti partecipano alla riunione attivamente e con soddisfazione, perché possono esprimere liberamente il loro parere.
Come funziona la tecnica Agile:Planning Poker?
Ad ogni partecipante viene fornito un mazzo di carte ognuna con una possibile stima. Le stime sulle carte, di solito sono una sequenza di numeri che raddoppiano (0, 1, 2, 4, 8, 16, 32, ect) o la successione di Fibonacci (1, 2, 3, 5, 8, 13, 21, etc), molto utilizzata. Comunque, si può utilizzare qualsiasi serie di numeri.
- Il moderatore illustra una “User Story” per volta, invitando i convenuti a fare le loro osservazioni o richieste di chiarimenti, prima di esprimere una valutazione.
- Il Product Owner risponde alle domande del team chiarendo tutti i dubbi sulle singole user stories.
- Ogni partecipante sceglie la carta che meglio rappresenta la stima di quella “user story” in base alla sua valutazione personale.
- Quando tutti hanno scelto la propria carta, vengono scoperte simultaneamente.
- Se c’è già consenso la stima è praticamente fatta e si passa alla “user story” successiva.
- Se le valutazioni sono molto distanti, si inizia a commentare quelle ai due estremi, la più alta e la più bassa, per capire il razionale che ha portato a quella stima.
- Il gruppo discute brevemente le argomentazioni di chi si è posizionato agli estremi e poi ripete la votazione con la stessa tecnica: tutti scelgono una carta e poi le scoprono tutti insieme.
- Si continua finché non si raggiunge il consenso attraverso stime in un range accettabile, per cui sarà possibile assumere il loro valore medio.
- Questo processo viene ripetuto per ogni “User Story”.
L’approccio è molto efficace, perché le persone vengono coinvolte dalla tecnica-gioco. Mike Cohn ne è tanto convinto che ha creato anche un sito gratuito, dove anche un team distribuito può effettuare le stime con questa tecnica.
La tecnica è efficace perché:
- Coinvolge l’intero team aumentando la collaborazione.
- La stima viene accettata perché frutto di un dibattito democratico.
- Eventuali problemi delle “user story” emergono prima di effettuare la stima.
Le riunioni di Planning Poker, basate sulla fiducia tra le persone, sono ancora più efficaci se:
- Votano solo quelli che devono effettivamente realizzare il lavoro.
- I manager non votano. i manager tenderebbero a comprimere le durate ai danni del team. Invece possono partecipare per chiarire aspetti particolari delle “user stories”.
- Di fronte a due stime differenti, scegliere sempre quella più ampia.
- Non scendere troppo nei particolari nelle discussioni.
- Interrompere la riunione di tanto in tanto per non renderla pesante per alcuni.
- Stabilire a priori la durata della discussione di ogni “user story” e cercare di rispettarla.
- Se non c’è il consenso al terzo giro di votazioni, adottare la stima più ampia e andare avanti, in modo da evitare che qualcuno possa dire di non aver avuto tempo sufficiente.
- Fare in modo che le user stories siano state comprese prima della riunione, in modo da concentrarsi sulle durate e non sulla loro natura.
- Ricordarsi di definire la baseline che deve restare consistente di iterazione in iterazione.
La riunione di Planning Poker deve essere divertente. le persone devono essere contente di parteciparvi. Un modo ancora più semplice è giocare realmente a poker con le carte distribuite per sciogliere il ghiaccio.