STEP #8: Monitorare il flusso di lavoro con Scrum
Monitorare il flusso di lavoro con Scrum: oggi tocchiamo lo #step8 della nostra Guida a Scrum: come
implementarlo in 10 semplici passi.
Vediamo quindi come monitorare quotidianamente il flusso dei nostri progressi con un burndown chart. Seguiamo quindi le parole di Kelly Waters, autore del pezzo originale da noi tradotto dall’inglese.
Monitorare il flusso di lavoro con Scrum: “eppure sembrava andare bene…”
Spesso nei team tradizionali tutto sembra procedere bene fino ( e a volte anche oltre) l’80% del lavoro già prodotto.
È proprio a questo punto che più tipicamente cominciano i problemi. Le cose cominciano a sembrare sempre meno simili a come le avevamo pianificate o -peggio- a come se l’erano aspettate i nostri clienti.
Fino al momento in cui realizzi che probabilmente non riuscirai a rispettare la data di consegna è perché ormai è troppo tardi per rivedere tutto.
Monitorare il flusso di lavoro con Scrum: i principi dell’agile ti vengono in soccorso
Nello sviluppo software agile esistono dei principi-chiave che -per evitare quanto sopra- giocano d’anticipo, consentendo di pianificare e trattare elementi fondamentali finché esiste ancora il tempo di farlo.
Una delle principali ragioni della situazione del paragrafo precedente e del fatto che essa è piuttosto comune nei tradizionali team di sviluppo risiede nel fatto che al fase di test è tradizionalmente relegata a fine progetto. Questo dato non indifferente è la causa principale del fatto che la qualità del software e l’emergere di eventuali (e in qualche modo fisiologiche e quindi prevedibili) criticità si concentrano a fine progetto quando ormai c’è poco tempo per affrontarle con la dovuta attenzione e le risorse sono ormai agli sgoccioli.
Nello sviluppo agile, lo ricordiamo, la fase di testing è un elemento invece costante di ogni singolo Sprint, il che implica che un task non può essere etichettato come “finito” se non è stato prima passato al vaglio dei tester: leggi a tale proposito lo #step6 di questa stessa guida ;). In aggiunta a ciò, il Product Owner è sempre coinvolto e ben consapevole dello stato dell’arte del progetto.
Quanto detto sommato alla pratica dello stand up meeting garantiscono una pianificazione
trasparente e condivisa del progetto e della qualità globale del prodotto in ogni sua fase di sviluppo
(tipicamente, nello sprint settimanale).
Monitorare il flusso di lavoro con Scrum: il diagramma burnchart quotidiano
Ma esiste un ulteriore strumento previsto dalla metodologia di sviluppo agile con Scrum: si tratta della semplice ed efficace pratica di tracciare quotidianamente attraverso un grafico il progresso dello status del progetto, in modo da avere una rappresentazione oggettiva, grafica ed efficace a colpo d’occhio sul procedere dei lavori.
Stima e procedi con il grafico
Ma come implementarlo operativamente? Prendi tutti i task previsti per un particolare Sprint, ad esempio puoi partire dallo stesso Sprint backlog che hai precedentemente creato (vedi lo step 4 di questa stessa guida).
Sempre sul backlog, inserisci il tempo stimato per completare ogni task che chiaramente deve rispettare quanto inizialmente stimato. A questo punto aggiorna il tempo stimato per finalizzare ogni singolo task (ETC – Estimated Time to Complete) sulla base di ogni attività quotidiana.
Ogni membro si assume la responsabilità della propria attività
Ogni membro del team è responsabile dell’aggiornamento del proprio ETC quotidiano. Il fatto di aggiornare i dati quotidianamente e di compiere lo sforzo di condividerli col resto del team significa che dovreste avere a regime tipico non più di 2-3 elementi al giorno da aggiornare su ogni persona.
In questo modo l’impegno non dovrebbe risultare oneroso e d’altra parte portare i membri ad assumersi ufficialmente la responsabilità dei propri task e della propria attività quotidiana. Siate onesti nello stabilire lo sforzo necessario a completare ogni singolo task, al di là di quanto tempo si è speso per realizzarlo rispetto al tempo inizialmente stimato.
Gli obiettivi del team
A questo punto l’obiettivo del team, piuttosto semplicemente, è quello di ridurre a zero le ore previste entro la durata dello sprint.
Traccia i progressi visivamente, usando un grafico
La bellezza di questo tipo d’approccio è quello di avere una visione numerica progressiva del procedere del progetto: come? Inserisci sul grafico i dati temporali stimati inizialmente, poi aggiungi quelli effettivamente svolti ed otterrai due linee diverse.
Più sono divergenti più avrai a colpo d’occhio la misura di quanto sei distante dall’ottenere i risutlati previsti: quando la linea reale è al di sotto di quella stimata, sei sulla buona strada. Quando invece ne è al di sopra, sei indietro con i lavori. Tutto qui, semplicemente: un feedback visivo, immediato ed efficace per l’intero team.
Annotate gli eventi-chiave
É sempre utile anche annotare sul grafico il raggiungimento di elementi chiave lungo il percorso di completamento dei task: è un modo efficace di tracciare gli elementi più significativi in modo che non vengano poi tralasciati al momento della sprint review.
Scrum evidenzia i problemi, non li risolve al posto tuo
L’uso di un diagramma burndown aggiornato quotidianamente ti consente di trovarti, dopo un’intera
giornata passata su un task, di fronte alla scoperta che esistono parecchi problemi o sforzi che non avevi previsto e quindi stimato inizialmente.
Quando questo accade ad un livello iniziale del progetto o magari su vasta scala investendo più task, bè…può essere spaventoso. Improvvisamente non sei più sicuro di quanto avevi stimato o di quanto fosse effettivamente necessario quel dato elemento-
Un quadro veritiero
…ma, ecco il vantaggio: un enorme, vantaggio. E cioè che hai un quadro veritiero e giornaliero di come stanno effettivamente le cose, quali reali e concrete criticità stanno di fatto emergendo.
E sei ancora in tempo per risolverle.
Step #1: Tieni in ordine il tuo Backlog di progetto
Step #2: Come fare la stima del tuo backlog di progetto
Step #3: Come pianificare lo Sprint – I requisiti
Step #4: Come pianificare lo Sprint – I task
Step #5: Come creare un ambiente di lavoro collaborativo
Step #6: Come implementare lo Sprint con Scrum
Step #7: Standup e… fai sentire la tua voce!
Step #9: Consegna in tempo!
Step #10: Rivedi, rifletti, ripeti.