5 metriche Agile indispensabili
Situazioni da evitare:
- Il team completa l’ammontare di lavoro prima della chiusura ad ogni sprint perché non stanno prendendo in carico abbastanza lavoro;
- Il team non soddisfa le previsioni ad ogni Sprint perché stanno stanno prendendo in carico troppo lavoro;
- Il grafico di burndown presenta una linea che procede a gradoni piuttosto che in maniera graduale perché il lavoro non è stato scomposto in porzioni granulari;
- Il Product Owner aggiunge o modifica lo scope nel mezzo di uno Sprint.
2. Epic e Release Burndown
I grafici di burndown di Epic e release (o versioni) tracciano il progresso di sviluppo su porzioni di lavoro più ampie rispetto che ad una Sprint Burndown, e indirizzano lo sviluppo per team che lavorano tanto in scrum quanto in Kanban. Dal momento che uno sprint (nel caso di Scrum team) può contenere lavoro relativo a molteplici epic e versioni, è importante mappare tanto i risultati per singole sprint quanto quelli relativi alle diverse epic e versioni.
Con il termine “scope creep” si fa riferimento all’inserimento di più requisiti su un progetto già precedentemente definito. Per esempio, se il team si sta occupando di sviluppare un nuovo sito web per l’azienda, uno scope creep potrebbe essere la richiesta di aggiunta di nuove feature dopo che i requisiti iniziali sono già stati disegnati. Mentre lo scope creep è da evitare nell’ambito di una Sprint in corso, la modifica nello scope nel corso di epic e versioni è un aspetto fisiologico dello sviluppo in agile. Mentre il team porta in avanti il progetto, il Product Owner potrà decidere di aggiungere o rimuovere parti di lavoro sulla base di ciò che si sta apprendendo. Un grafico di Epic e Release Burndown serve proprio a rendersi consapevoli dei riflussi di lavoro tra epic e version.
Situazioni da evitare:
- Le previsioni di epic o release non sono aggiornate man mano che il team va avanti col lavoro;
- Non vengono fatti progressi col passare di numerose iterazioni;
- Scope creep cronico, che può essere un segnale che il Product Owner non comprende pienamente il problema che si vuole risolvere attraverso il lavoro;
- Lo scope cresce a ritmi più veloci di quanto il team riesca a sostenere;
- Il team non sta effettuando rilasci incrementali nel corso di una epic.
3. Velocity
Per Velocity si intende la percentuale media di lavoro che uno scrum team riesce a completare durante una sprint, può essere misurata in story points oppure in ore, ed è molto utile per effettuare previsioni.
Il Product Owner può ricorrere alla Velocity per ipotizzare quanto velocemente il team può portare avanti il lavoro in backlog, in quanto il report traccia i livelli di lavoro previsto e completato nel corso di numerose iterazioni – maggiore il numero di iterazioni, maggiore l’accuratezza.
Ipotizziamo che il Product Owner voglia completare 500 story points nel backlog. Sappiamo che il team di sviluppo in genere completa 50 story points per iterazione. Il Product Owner potrà ragionevolmente stimare che il team avrà bisogno di circa 10 iterazioni per completare il lavoro richiesto. È importante in che modo la Velocity evolve nel tempo: i nuovi team possono aspettarsi un incremento nella Velocity man mano che il team ottimizza le relazioni e il processo lavorativo. I team rodati possono tracciare la loro Velocity per assicurarsi una performance consistente nel corso del tempo, e confermare se un particolare cambiamento nel processo abbia avuto risultati positivi o meno. Una diminuizione nella Velocity media è in genere un segnale che una parte del processo di sviluppo sta diventando inefficiente e debba essere rivista alla prossima retrospettiva.
Situazioni da evitare:
Quando la Velocity risulta irregolare per un lungo periodo di tempo, rivedete sempre i metodi di stima adottati dal team. Durante la retrospettiva, chiedetevi le seguenti domande:
- Sono emerse sfide di sviluppo non previste di cui non abbiamo tenuto conto al momento della stima? Come possiamo approcciarci meglio al lavoro per scoprire alcune di queste sfide?
- Ci sono pressioni di business esterne che spingono il team oltre i proprio limiti? Ciò ha ripercussioni sull’adozione delle best practice di sviluppo?
- Siamo eccessivamente ottimisti nella stima per lo sprint?
La Velocity di ogni team è un aspetto peculiare del determinato team. Se il team A ha una Velocity pari a 50 e il team B una pari a 75, ciò non significa che il team B ha una velocità di esecuzione maggiore tra i due: dal momento che ogni team ha una proprio “cultura di stima“, altrettanto unica sarà la loro velocity.
Resisti alla tentazione di comparare questo parametro tra team differenti! Misura invece il livello di effort e il risultato lavorativo ottenuto secondo i criteri unici di interpretazione degli story points da parte dello specifico team.
4. Control Chart
I grafici di controllo (Control Chart) si focalizzano sui tempi di ciclo delle singole issue – il tempo totale per il passaggio da “In progress” a “Done”. I team con tempi di ciclo più brevi probabilmente avranno rendimenti superiori, e per i team che hanno tempi di ciclo costanti su diverse issue è più facile prevederne i risultati.
Il tempo di ciclo è una metrica primaria per i team Kanban, ma anche i team di Scrum possono beneficiare di tempi di ciclo ottimizzati.
Misurare il tempo di ciclo è infatti un modo flessibile ed efficiente di migliorare i processi di un team in quanto i risultati dovuti a cambiamenti sono quasi immediatamente individuabili, permettendo quindi al team di fare progressivi aggiustamenti. L’obiettivo è di raggiungere costanti e brevi cicli di tempi di ciclo, a prescindere dal tipo di mansione (nuova feature, debito tecnico, etc.).
Situazioni da evitare:
I grafici di controllo possono sembrare complessi in un primo momento. Non preoccuparti di ogni singolo elemento, concentrati sul trend.
Queste sono le due aree su cui focalizzarsi:
- Aumento del tempo di ciclo – l’aumento del tempo di ciclo riflette la difficoltà del team di guadagnare “agilità”. Durante le retrospettive del team, prendi del tempo per cercare di comprendere il motivo di questo incremento. Una eccezione: se la definizione di “completo” da parte del team è stata estesa, è fisiologico che risulteranno estesi anche i tempi di ciclo;
- Tempo di ciclo irregolare – l’obiettivo è di avere tempi di ciclo costanti per attività che hanno valori di story point simili. Filtra la Control Chart per i diversi valori di story point per verificare che sussista tale costanza. Qualora il tempo di ciclo risultasse irregolare su valori di story point piccoli e grandi, prendetevi del tempo per esaminare e migliorare le stime future.
5. Diagramma Cumulativo di Flusso
Il diagramma cumulativo di flusso è una risorsa fondamentale per i kanban team, per aiutarli ad assicurarsi che il flusso di lavoro risulti coerente. Con il numero di issue posto in asse Y, il tempo sull’asse X, e i colori che indicano i vari stati di workflow, questo diagramma evidenzia visualmente carenze e colli di bottiglia, lavorando in maniera congiunta con i limiti di WIP.
Il diagramma dovrebbe apparire liscio (il più possibile), in quanto le curve convesse o concave indicano rispettivamente carenze e colli di bottiglia, pertanto quando ne vedi una cerca dei modi per raddrizzarle, per qualsiasi banda di colore presente nel diagramma.
Situazioni da evitare:
- Issue bloccanti, che creano curve concave in alcune parti del processo e convesse in altre;
- Crescita di backlog senza controllo nel corso del tempo. Ciò è causato da Product Owner che non chiudono issue obsolete o semplicemente con priorità troppo bassa per essere messe in esecuzione
E altre metriche ancora!
Esistono molte altre metriche utili oltre a quelle riportate in questo articolo. Per esempio, la qualità è una buona metrica per i team agile e ci sono numerose metriche tradizionali che possono essere applicata anche allo sviluppo in agile, ad esempio:
- Quanti errori sono stati individuati…
- in fase di sviluppo?
- a rilascio avvenuto?
- da individui esterni al team?
- Quanti errori sono stati rinviati alla prossima release?
- Quante richieste di supporto da parte del cliente stanno arivando?
- Qual è la percentuale coperta da test automatizzati?
I team Agile dovrebbero inoltre monitorare la frequenza di release e la velocità nella delivery. Al termine di ogni sprint, il team dovrebbe rilasciare del software in produzione.
Quanto spesso ciò avviene effettivamente? Quanto tempo è necessario al team per rilasciare una fix d’emergenza in produzione? La release è un’operazione semplice per il team o appare come un’impresa eroica?
Le metriche sono solo un tassello per costruire una cultura di team. Queste danno informazioni quantitative sulla performance del team e forniscono obiettivi misurabili per la squadra. Nonostante le metriche siano importanti, non dovete esserne ossessionati.
Ascoltare i feedback dei membri del team durante le retrospettive è altrettanto importante nel costruire fiducia all’interno del team, qualità nel prodotto, e velocità lungo il processo di release.
Utilizza tanto i feedback quantitativi quanto quelli qualitativi per guidare il cambiamento!