L'Incremento non tende a ricevere tanta attenzione quanto gli altri artefatti nella Guida a Scrum, forse perché sembra così scontato. Ma l'Incremento è più che un artefatto in Scrum. Il valore che ne deriva va oltre quello che intrinsecamente fornisce al cliente o all'utente finale. Consegnare un Incremento utilizzabile ogni Sprint è importante perché permette agli Scrum Team e alle organizzazioni di ottenere feedback, testare ipotesi, raccogliere dati, e cambiare direzione se necessario. Il concetto di incremento è ingannevolmente semplice. Se ci si concentra solo sull'ovvio si possono perdere alcuni aspetti estremamente importanti. Quindi esaminiamo l'incremento e perché è importante creare un incremento utilizzabile ad ogni Sprint.
Cosa fa il vostro team? Cosa crea? Meglio ancora, qual è il valore che create? Per alcuni Scrum Team, queste domande sono facili da rispondere. Per altri, può essere sconcertante. Scrum è scalabile (attraverso Scrum@Scale) in ogni aspetto e parte di un'organizzazione. Ogni team può utilizzare il Framework Scrum. E ogni team può produrre incrementi ogni Sprint. Hanno solo bisogno di sapere cos'è. La definizione di un incremento è universale, non importa la funzione dello specifico Scrum Team. Ecco come lo spiega la Guida a Scrum:
"Un incremento è un passo concreto verso il Product Goal. Ogni incremento è conseguente a tutti gli incrementi precedenti e accuratamente verificato, assicurando che tutti gli incrementi lavorino insieme. Per fornire valore, l'incremento deve essere utilizzabile."
Cosa è il Product Goal? Per ora, supponiamo che sia qualcosa con molti componenti che, naturalmente, fornisce valore in qualche modo, forma o aspetto. Identificando l'incremento del vostro Scrum Team, quelle pietre miliari per raggiungere il Product Goal vengono scomposte da pezzi grandi in pezzi più piccoli. In altre parole, vengono affettate (Slicing).
Se c'è una domanda che tutti i Product Owner sembrano chiedere costantemente, è: "come posso affettare efficacemente i miei Product Backlog Items (o user stories) e ottenere ancora valore da ciascuno? Di sicuro non è una cosa scontata. Ci vuole pratica e dovrai lavorarci sopra nel tempo. Ma padroneggiare la scomposizione (decomposition) è la chiave per aiutare ogni Scrum Team, non importa su cosa lavorano, a consegnare un incremento ogni Sprint. Una grande tecnica che consigliamo di usare è le Sette Dimensioni di una Storia (The Seven Dimensions of a Story), sviluppata da Ellen Gottesdiener e Mary Gorman.
Le Sette Dimensioni sono:
Esattamente come il Framework Scrum, le Sette Dimensioni sono state utilizzate per la prima volta nello sviluppo del software, ma sono utili sia in industria che in altri contesti e settori. Ci sono, naturalmente, molte altre tecniche per scomporre la Vision e i Product Goal in pezzi più piccoli, ma focalizziamoci sulle Sette Dimensioni e vediamo come possono funzionare in ogni situazione.
Immaginiamo di creare una birreria o un ristorante che ha come focus la birra. Come cominciamo a scomporre questi grandi obiettivi (di prodotto) in parti più piccole e identificare gli incrementi? Utilizzando le Sette Dimensioni e ci focalizziamo sull' utente, la prima delle sette dimensioni, potremmo concentrarci su dei particolari utenti e cercare di spezzettare e dare priorità alle storie da consegnare associate ai diversi utenti che abbiamo identificato per il nostro prodotto. Un possibile Product Goal in questo scenario potrebbe essere quello di focalizzarci sui clienti abituali. Cosi per questo utente potremmo chiederci:
Poi, passando alla seconda delle Sette Dimensioni, potremmo concentrarci sull'interfaccia.
E così via. Le Sette Dimensioni possono essere usate per scomporre anche la più grande e grandiosa Vision o Product Goal in pezzi più piccoli che possono essere realizzati in un singolo Sprint consegnando valore in modo iterativo. Questo è il tuo incremento. Ora che abbiamo esaminato un modo per identificare il vostro incremento (il come), esaminiamo perché consegnare almeno un incremento ogni Sprint è così importante.
Il flusso iterativo è una componente importante in diverse metodologie Lean thinking e Agile. In breve, il flusso è la capacità di finire una cosa e poi passare senza soluzione di continuità alla successiva. In Scrum, un buon flusso permette al Product Owner di spostare in modo pulito le priorità da uno Sprint al successivo senza riportare niente dal precedente (carryover). Questo da solo è significativo perché il carryover può essere incredibilmente tossico. Immaginate di lavorare in uno Scrum Team che ha completato 26 story point nel suo ultimo Sprint. Tuttavia, avevano 12 punti aggiuntivi che non hanno finito. Cosa pianificano per il loro prossimo Sprint? Tirano dentro il work-in-progress (WIP) non finito o vanno avanti? Il WIP è uno spreco poiché non fornisce valore. Il WIP è anche un'ancora - rallenta lo Scrum Team e le organizzazioni. I Product Owner in questo scenario si trovano in un paradosso. Come possono consegnare il "prodotto A" che ora è in ritardo se non danno la priorità al completamento dei 12 punti del WIP? Tuttavia, dare la priorità al "prodotto A" significa che il "prodotto B" deve passare in secondo piano se la velocity dello Scrum Team ci dice che non può portare avanti il WIP e portare a termine tutto il lavoro. I ritardi nella consegna abbondano e nessuno, né lo Scrum Team né i clienti o gli stakeholder sono felici. Evitare questo lavoro di carryover e consegnare un incremento (o più) ogni Sprint è fondamentale per mantenere un buon flusso. Bisogna passare senza soluzione di continuità da un pezzo di lavoro al successivo, altrimenti tutto si impantana. Ecco perché prendiamo seriamente lo Sprint Goal. È l'impegno che lo Scrum Team prende durante l'evento di Sprint Planning. Lo Sprint Goal è l'obiettivo che deve essere raggiunto affinché lo Scrum Team e l'organizzazione possano andare avanti.
Lo scopo del lavoro in un flusso iterativo è quello di portare pezzi funzionanti di fronte a clienti e stakeholder il più velocemente possibile, in modo da poter usare il loro feedback per guidare i nostri sforzi futuri e la nostra direzione. Meglio ancora, il flusso iterativo può essere usato per portare rapidamente un prodotto o un servizio sul mercato per ottenere un feedback e iniziare a generare entrate. I clienti stanno usando il vostro prodotto o servizio? Lo stanno usando in modi diversi da quelli previsti? Sei sulla strada sbagliata e hai bisogno di fare qualcosa di completamente nuovo? C'è un'opportunità di fare qualcosa che non avevi previsto? Tutte queste domande possono trovare risposta grazie al feedback. Produrre in modo incrementale vi permette di testare le vostre ipotesi, ottenere risposte reali basate sui dati, e continuare o adattarsi e fare qualcosa che il mercato vuole. In breve, gli incrementi riducono il costo di cambiare idea e i feedback che generano ti aiutano a decidere cosa fare dopo. La velocità con cui porti gli incrementi sul mercato in modo che generino valore può fare la differenza tra il successo o il fallimento della tua organizzazione.
Tradotto e adattato da Scruminc: https://www.scruminc.com/understanding-increments-decompose-backlog/
Scritto da McCaul Baggett | 26 marzo 2021 | Blog
Vuoi conoscere Scrum? Scegli uno dei componenti del Framework dalla lista e scopri come funziona il framework Agile più diffuso al mondo.