Autore: Alberto Scarpa | 31 May 2023
L’altra sera mi stavo un po’ rilassando, guardavo su Netflix il film Glass Onion - Knives Out del regista Rian Johnson con Daniel Craig come attore principale. Un film giallo, leggero e quasi comico del tipo “cena con delitto”, piuttosto accattivante, con una bella fotografia e con i paesaggi affascinanti tipici delle isole greche.
Mentre lo guardavo e mi rilassavo, un po’ alla volta ha cominciato a frullare per la testa la parola “onion”, la cipolla, che per me project manager ma soprattutto “agile coach” non è soltanto un saporito ortaggio, ma soprattutto richiama alla mente il famoso planning onion vale a dire quella particolare modalità di pianificazione a “strati” propria dell’agile project management. Sì, nella mia testa -oltre alla cipolla- anche la pianificazione agile ha gli “strati”; mentre il film si dipanava con un intreccio di personaggi e con colpi di scena più o meno inaspettati, la mia mente ha cominciato a vagare sulla “cipolla” della pianificazione Agile.
Come tutti sapete, la pianificazione è una delle attività o performance domain (per dirla in conformità alla 7° edizione del PMBoK) più difficili del project management. Per pianificare occorre conoscere innanzitutto cosa c’è da realizzare (lo Scope), come si può scomporre il lavoro da svolgere, come queste attività sono tra loro collegate, quanto tempo è necessario per svolgerle (Time / Cost), quante e che tipo di risorse servono (cost) e quando le attività stesse potranno essere effettuate (Time). La pianificazione, quindi, ha a che fare direttamente o indirettamente con le 3 dimensioni fondamentali del cosiddetto triangolo dei vincoli del Project Management predittivo: TIME, COST, SCOPE.
Pianificare è un’attività ardua che presuppone l’effettuazione di una buona analisi preliminare e l’ampio uso di ipotesi riguardo il futuro… Fare ipotesi sul futuro soprattutto ad inizio progetto – quando non si hanno ancora molte informazioni e “conoscenza” - è oltremodo difficile in particolare se ci si trova in una realtà cosiddetta VUCA vale a dire con presenza di Volatility, Uncertainty, Complexity & Ambiguity, tipica della nostra realtà progettuale e pure tipica dei film gialli proprio come Glass Onion.
Mentre nel film si susseguivano cambi frequenti di prospettiva (nuove priorità), nuovi personaggi (stakeholders), era incerto l’obiettivo del miliardario protagonista del film (qual è la definizione di successo del progetto) e molti segnali erano contraddittori e difficili da interpretare (rischi), sempre più mi convincevo che c’erano le condizioni per pianificare proprio utilizzando il metodo Agile detto “planning onion”.
Spesso le ipotesi riguardo il futuro, non rimangono valide per lungo tempo e questo ci costringe a rivedere - a volte anche pesantemente - le nostre stime di tempo e di costo e addirittura la definizione dello scope e il nostro piano delle attività. Per questo si dice che la pianificazione è rischiosa, può far male (ricordate il famoso grafico del cono dell’incertezza dove appare perfino il teschio) e per questo può metaforicamente far “piangere” i project manager …. a volte anche più delle stesse cipolle…
Quando le condizioni sono VUCA (o comunque complesse) e c’è molta incertezza e innovazione, si suggerisce di adottare un mindset agile nella gestione delle attività progettuali. Ciò si traduce in pratica nel pianificare continuamente nel corso del progetto, nell’arricchire e aggiungere dettagli al piano man mano che aumentano le informazioni a disposizione, nell’utilizzare diversi livelli di pianificazione riferiti a periodi temporali diversi del nostro progetto e con dettagli e informazioni sempre più precisi.
Il planning onion fa proprio riferimento ai diversi livelli o strati della pianificazione all’interno di un progetto Agile. Ogni strato della pianificazione ha un orizzonte temporale più o meno esteso (ad esempio un anno, tre mesi, due settimane, un giorno) e una precisione via via crescente.
Il primo strato della cipolla della pianificazione è lo strato più esterno, quello che avvolge tutto il progetto. Il primo strato di pianificazione ad alto livello (o di visioning) si occupa infatti di pianificare l’ambito generale del progetto facendo riferimento all’idea che abbiamo del nostro futuro prodotto quanto sarà completato o “Done”. Ciò richiede di identificare a grandi linee, le macrofunzionalità del prodotto da realizzare e abbozzare il loro dimensionamento (sizing) almeno in modo approssimativo. A questo livello si tratta di adottare il principio “just enough” nella stima e pianificazione per mappare lo sforzo generale necessario e per far partire il progetto. Come risultato avremo una rappresentazione grossolana delle fasi del progetto, una road map con l’indicazione dell’inizio, della fine e di alcune fasi e milestone significative del progetto.
Ritornando al film “Glass onion” la pianificazione ad alto livello può essere immaginata come il piano iniziale che ha il protagonista, l’egocentrico multimiliardario Miles Bron, riguardo gli ospiti invitati alla festa nella propria isola privata, nell’aver previsto l’esposizione delle sue opere d’arte e organizzato la cena nella Glass Onion, cena nella quale ci doveva essere il suo finto assassinio…. Piano fin da subito superato dalla presenza di un ospite non invitato che tra l’altro svela il finto delitto.
La cipolla della pianificazione agile, oltre alla pianificazione di alto livello, ha degli strati più interni, più circoscritti ma più profondi. L’intero progetto viene suddiviso in periodi temporali della durata di tre o quattro mesi che prendono il nome di “release” ognuno dedicato allo sviluppo di una parte significativa del prodotto oggetto di realizzazione.
La pianificazione della release è il secondo strato della pianificazione, essendo riferita ad un orizzonte temporale più breve rispetto l’intero progetto, ha una maggiore precisione e ha come oggetti le singole funzionalità da realizzare piuttosto che le macro funzionalità. A inizio progetto non avremo i dettagli sufficienti per pianificare tutte le release con la medesima precisione. La pianificazione della 1° release sarà sufficientemente precisa, mentre le release successive avranno un dettaglio e una precisione inferiore e decrescente e potranno anche essere riviste nel tempo. Attraverso una progressiva elaborazione delle informazioni che emergono nel corso del progetto, la pianificazione delle release migliorano e si focalizzano ognuna sulle funzionalità che verranno realizzate nell’orizzonte dei prossimi 3 o 4 mesi. La pianificazione di ogni release beneficerà delle conoscenze, scoperte, feedback maturate dal team nelle release precedenti e questo consentirà di definire un piano o schema di come verranno realizzate le funzionalità, in quale sequenza e quanto tempo e iterazioni saranno necessarie.
Il periodo di tre o quattro mesi che costituisce la release è suddiviso appunto in iterazioni o Sprint (in linguaggio Scrum). Una iterazione è un mini progetto focalizzato alla realizzazione di un piccolo set di funzionalità che compongono il nostro prodotto finito. La pianificazione dell’iterazione costituisce un ulteriore strato della pianificazione agile. Una iterazione ha una durata limitata da una a quattro settimane e la pianificazione dell’iterazione è focalizzata nella stima e pianificazione delle singole attività implementative o task necessari per realizzare le funzionalità. Data la limitata ampiezza temporale dell’iterazione e il limitato set di funzionalità da realizzare, la precisione e il dettaglio della pianificazione sarà maggiore di quelli disponibili nelle pianificazioni degli strati precedenti. La pianificazione dell’iterazione terrà presente di che cosa sia avvenuto nelle iterazioni precedenti, dei risultati ottenuti, dei feedback ricevuti, delle nuove priorità emerse e arriverà a fornire una stima di giorni di lavoro necessari per completare un determinato task così come la sequenza in cui i task verranno realizzati. La pianificazione delle iterazioni, oltre che adattativa, è di tipo incrementale vale a dire che verranno stimate e pianificate periodicamente, un po’ alla volta man mano che il progetto si sviluppa.
Sempre facendo riferimento alla metafora del film, la pianificazione per release e per iterazione è quella che Miles mette in atto una volta che il suo piano iniziale viene reso inutile dai vari colpi di scena e intrecci che si susseguono nel film.
L'ultimo strato della cipolla di pianificazione è la pianificazione a livello giornaliero. Molti team utilizzano le riunioni giornaliere del tipo “Daily Standup” per discutere i progressi compiuti nel giorno precedente e per sincronizzare e coordinare i loro sforzi riguardo le attività che devono essere completate durante il resto della giornata. Discutono anche se stanno affrontando eventuali impedimenti o blocchi nel loro lavoro attuale. I team di successo riconoscono che lo standup quotidiano è una riunione di pianificazione, non una riunione sullo stato delle attività.
Grazie alla tecnica del Planning Onion, i team Agili ottengono un senso di chiarezza su come muoversi durante lo sviluppo del prodotto anche se operano in una realtà VUCA o comunque complessa. Comprendere i vari strati della cipolla della pianificazione agile è estremamente importante, così come è cruciale individuare attentamente quando modificare i contenuti dei diversi livelli di pianificazione in base alle mutate circostanze e alle aspettative del cliente / committente. Quindi, in conclusione, con la cipolla della pianificazione potremo -con un adeguato livello di confidenza- pianificare le attività anche in condizioni complesse senza per questo rischiare di farci troppo male e di “piangere”. Attenzione però: la semplice implementazione del metodo senza comprendere i diversi livelli di pianificazione e il generale mindset agile da adottare può portare al caos.
Infine, per quanto riguarda il film Glass Onion non vi voglio rovinare il finale… Buona visione!