Alkampfer's Place

Il blog di Gian Maria Ricci
posts - 659, comments - 871, trackbacks - 80

My Links

News

Gian Maria Ricci Mvp Logo CCSVI in Multiple Sclerosis

English Blog

Tag Cloud

Article Categories

Archives

Post Categories

Image Galleries

I miei siti

Siti utili

Forecast nella pianificazione del backlog

Tra le tantissime funzionalità introdotte con TFS11, sicuramente il nuovo web access spicca su tutto. L’interfaccia è infatti completamente scritta in HTML, completamente asincrona e supporta drag & drop per riordinare i PBI (Product Backlog Item) e per assegnarli ai vari sprint. In questo post però voglio parlare della funzione di Forecast, perchè riveste secondo me un’importanza molto elevata.

Nelle pianificazioni Agili viene assegnato un numero ad ogni PBI, chiamato Effort. Questo numero non rappresenta ore di lavoro, ma è un valore empirico che il team da ad un PBI per quantificare lo sforzo che si ritiene sia necessario per completarlo. Usualmente questo valore viene assegnato con il Planning Poker, dove ogni persona del team ha un mazzo di carte con varie quantità scritte sopra, e per ogni PBI ogniuno fa la sua stima e mette la carta corrispondente coperta nel tavolo. Quando tutti hanno messo la carta le si scoprono e si effettua un confronto. Questo modo molto semplice e divertente permette però fin da subito di stimare empiricamente la difficoltà di completamento di un PBI. Lo scopo è il confronto, ad esempio se in 5 persone si ha una cosa del tipo: 2, 3, 2, 4, 20, significa che la persona che ha stimato 20 probabilmente è a conoscenza di qualche particolare impedimento o difficoltà che fa si che la sua stima sia molto differente dagli altri e quindi se ne discute.

Sebbene il valore di Effort sia empirico, iterazione dopo iterazione, sprint dopo sprint, se il team non cambia radicalmente il quantitativo di effort che si riesce a realizzare in uno sprint tende ad assestarsi. Una cosa simile accade quando si stima in maniera classica un progetto, alla fine ci si accorge che si era sottostimato, per cui alla stima successiva, si aggiunge un X% perché: “si era sottostimato la volta precedente, per cui è probabile che si sia sottostimato anche ora”. Nei team agili, il quantitativo di Effort medio che si è realizzato negli sprint passati si chiama velocity.

Arriviamo quindi alla funzionalità di TFS chiamata “forecast”, che semplicemente fa una previsione (forecast) del backlog basandosi sulla velocity del team.

image

In questo esempio potete infatti vedere in alto che le previsioni sono fatte basandosi su una velocità di 10 (presa dai dati storici delle precedenti iterazioni), e la colonna forecast contiene gli sprint in cui si prevede che i vari PBI verranno completati. Questo dato, sebbene come detto basato su un valore di effort empirico, sprint dopo sprint tende ad assestarsi e ad essere quindi molto realistico.

Naturalmente questo tipo di pianificazione non è relegata solamente al mondo agile o scrum, ma è adatta per qualsiasi processo di tipo iterativo, dove il team si concentra quindi su un certo numero di PBI (feature, request, but, etc) per volta, che vengono portati a compimento iterazione dopo iterazione. L’accento è però sul “portati a compimento” perché sebbene ci sia molto da discutere sul “definition of done”, affinché questo tipo di pianificazione possa funzionare, quando un PBI è considerato chiuso significa che il team non deve più spendere tempo per lavorarci e non debbono esserci attività in sospeso.

Alk.

Print | posted on lunedì 12 marzo 2012 22:39 |

Feedback

Gravatar

# re: Forecast nella pianificazione del backlog

> Naturalmente questo tipo di pianificazione non è relegata solamente al mondo agile o scrum, ma è adatta per qualsiasi processo di tipo iterativo

Che la puoi usare dove ti pare non ci piove: che sia adatta, al mondo agile o ad altro, e' tutt'altra questione su cui ovviamente sono completamente in disaccordo. We should be given requirements, not tasks, problems to solve, not things to do! ... ecc. ecc. Infatti "voi" siete tutt'altro che Agili: quello che fate si chiama tools-driven development, ovvero RAD alla sua peggioresima potenza...

-LV
14/03/2012 01:51 | LudovicoVan
Gravatar

# re: Forecast nella pianificazione del backlog

Guarda, cancella pure: mi arrendo! Chi e' fuori e' fuori...

Best luck,

-LV
14/03/2012 05:57 | LudovicoVan
Gravatar

# re: Forecast nella pianificazione del backlog

Il forecast è fatto sui requisiti, non sui task, l'effort è appunto un valore di difficoltà empirico che viene assegnato ad ogni requisito, non stiamo parlando di task ma stiamo parlando di funzionalità che il cliente richiede, di valore che il software deve erogare. Nell'articolo sto parlando di elementi del Backlog, che quindi sono requisiti, non task, proprio come dici tu :)

Per quanto riguarda il tools-driven development, è difficile pensare di poter gestire un team senza "strumenti", che siano elettronici, o siano una lavagna con i post-it, o sia qualsiasi altra cosa.

A mio avviso la parte più importante del progetto è raccogliere i requisiti richiesti dal cliente o dagli utenti che utilizzeranno il software :), per cui a me serve che siano da un'unica parte centralizzata, che sia possibile prioritizzarli e che sia possibile avere dalle persone del team una stima sulla difficoltà di realizzazione. Che poi si possa fare con una lavagna ed un blocco di post-it, non è un problema.
14/03/2012 11:02 | alkampfer@nablasoft.com
Gravatar

# re: Forecast nella pianificazione del backlog

> Il forecast è fatto sui requisiti

Cio' che dici (e che tutti propagandate in coro) semplicemente non e' vero/non e' corretto!

> non stiamo parlando di task ma stiamo parlando di funzionalità

Il punto chiave li' e' che dai requirements ai task NON c'e' un mapping 1-a-1 (come non c'e' fra analisi e disegno), per cui voi potete anche chiamarli requirements, ma semplicemente non lo sono: e quella e' una distinzione chiave, *fondamentale* per il successo di un progetto, che voi vi siete gia' persi a monte, prima ancora di cominciare.

> è difficile pensare di poter gestire un team senza "strumenti"

Quella e' una cosa che nessuno ha contestato, complimenti per i luoghi comuni. Tools Driven Development (un altro TDD ovviamente) e' una (pseudo-)metodologia, ed e' *sbagliata*.

> A mio avviso la parte più importante del progetto è raccogliere i requisiti richiesti dal cliente

Sacrosanto, peccato che sono solo chiacchiere: non ho mai visto *nessuno* di questa nuova generazione di sviluppatori da social network cha abbia mai detto una sola cosa sensata che fossa una riguardo analisi e raccolta requisiti: avete, di fatto quando non anche a parole, bandito analisi dall'ufficio tecnico, non ci andate manco vicino all'analisi quella vera!

> Che poi si possa fare con una lavagna ed un blocco di post-it, non è un problema.

Ovviamente numero 2...

-LV
14/03/2012 16:45 | LudovicoVan
Gravatar

# re: Forecast nella pianificazione del backlog

Quello che intendo, è che nello specifico dello screenshot e della funzionalità di TFS mostrata nel post, il forecast è fatto sul Product Backlog, che costituisce la lista di requisiti, non di task, non ho mai parlato di task nel post :)

Che il rapporto requisiti-task non sia 1-1 è semplicemente banale e non mi sembra di averlo mai affermato :), infatti una volta riordinati i requisiti e stabilito quali si vuole implementare nella successiva iterazione si passa alla scomposizione in Task e li si va a creare, per ogni elemento del backlog, una serie di task svolgendo quindi la fase di design.
14/03/2012 21:30 | alkampfer@nablasoft.com
Gravatar

# re: Forecast nella pianificazione del backlog

> Quello che intendo, è che nello specifico dello screenshot e della funzionalità di TFS mostrata nel post

Su un post su TFS non ho proprio niente da ridire: e' quando, nel contempo, propagandi metodologie che ci sarebbe da toglierti/togliervi la patente.

> non ho mai parlato di task nel post

Lo so, ed e' proprio quello il problema, che tu non sai manco di che cosa sto parlando!

> Che il rapporto requisiti-task non sia 1-1 è semplicemente banale

Ridicolo: se fosse banale, non ci sarebbe mezza industria del software che costruisce banane invece di applicazioni!!

Again, I just give up , stavolta davvero, perche' davvero non c'e' peggior sordo di chi ha un prodotto da vendere! Fra l'altro per chi ne vuole sapere su che critiche faccio, basta spulciare fra cio' che sono andato scrivendo negli ultimi almeno 5 anni, e per il resto ognuno e' responsabile per se stesso.

Bye bye,

-LV
14/03/2012 22:03 | LudovicoVan
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET