“Pianificare” è un termine che difficilmente si è portati ad associare alle metodologie Agili, implicando aspetti di gestione e management che, erroneamente, fanno pensare a vecchi retaggi del passato in chiave BigUP Front.
Ma è davvero così? La risposta è semplice ed immediata: assolutamente no!
Anche nel mondo Agile l’attività di pianificazione ha un ruolo decisamente forte: in fondo quale manager autorizzerebbe un progetto senza avere neanche minimamente idea dell’effort richiesto?
Quello che differenzia il planning in chiave Agile da quello BigUP Front è la consapevolezza di non poter definire tutto prima dell’inizio di un nuovo progetto, riconoscendo la necessità di rivedere costantemente e, in più fasi, le ipotesi inziali. Volutamente ho usato il termine ipotesi e non pianificazione, proprio perché nella fase di Inception (rif. DAD) possiamo solo ipotizzare quella che sarà la caratterizzazione del nostro progetto in termini di tempo, costi e funzionalità.
Chiaramente, posso trovarmi nelle condizione di dover affrontare progetti time-fixed, cost-fixed e time/cost-fixed, nel qual caso l’unica variabile su cui poter intervenire sono le funzionalità. Inutile dire che se sono in condizione di time/cost/features-fixed, probabilmente, il prodotto sarà di qualità opinabile, soprattutto se tale vincolo viene posto in fase di Inception.
Iron Triangle Planning
In chiave Agile la pianificazione è un’attività intensiva che accompagna l’intero processo di Application Lifecycle Management e che si spalma addirittura ben sei livelli di pianificazione, noti sotto il cappello di Planning Onion, coniato da Mike Cohn. In realtà si sta diffondendo l’idea che esiste un livello trasversale che è quello “Culturale”, ma per ora, essendo oggetto di dibattito, non sarà oggetto della nostra trattazione.
Agile Planning Onion
L’idea di fondo è che il planning coinvolge una serie di livelli interconnessi, che vanno dalla prospettiva più ampia (Strategia) a quella più di dettaglio specifico (Daily).
Lo Strategy Planning e il Portfolio Planning avvengono al Portfolio Level (rif. SAFe) e condizionano le scelte aziendali a medio-lungo termine, 3-5 anni. Non si tratta di decidere cosa fare nello specifico, bensì di capire come l’azienda vuole porsi rispetto al mercato e quali opportunità cogliere/perseguire per soddisfare la propria Vision. Nel Portfolio Planning, la strategia si concretizza in “famiglie di prodotti”, differenziate per aree e per obiettivi e vengono individuate le risorse di area necessarie. Questi livelli di planning sono chiaramente quelli che vengono rivisti meno frequentemente, evidenziando che nella “Onion” i livelli esterni sono quelli più stabili. Attenzione, però: anche qui esiste una differenza rispetto all’approccio tradizionale dove, tipicamente, si guarda alla strategia in occasione dei bilanci e dei meeting annuali. In linea di principio sarebbe opportuno dare una rispolverata al piano almeno ogni trimestre/quadrimestre.
Il Product Planning è un po’ il “collante” tra gli aspetti strategici a la loro applicazione nel concreto. In quest’ambito viene definito l’insieme dei prodotti che si intende realizzare e si procede all’approvvigionamento delle risorse necessarie. Tipicamente la pianificazione di prodotto, afferente il Program Level, interessa un intervallo temporale medio-breve che possiamo individuare in 12-24 mesi. Qui viene individuato anche il Product Owner per lo specifico progetto, viene creata una road-map di sviluppo e viene effettuato un Grooming preliminare del Product Backlog.
Una volta identificati i prodotti da realizzare, arriviamo ai tre livelli che interessano direttamente le attività di realizzazione del software: Release Planning, Iteration Planning e Daily Planning, posizionandoci nel Program/Team Level ne caso della prima tipologia e nel Team Level per la seconda e la terza. Nel caso del Release Planning, il tipico Team Agile comincia ad essere coinvolto in modo forte, andando a definire e rivedere il set di features da inserire nella specifica release. L’Iteration Plannig ed il Daily Planning sono il pane quotidiano dell’Agile Team che incide direttamente sulla decisione di cosa realizzare nella successiva iterazione (1-4 settimane) e si confronta giornalmente su come stanno procedendo le attività. Tali livelli sono anche i più flessibili e quelli che permettono di abbracciare repentinamente il cambiamento.
Si intuisce quindi, come accennato, che i livelli esterni sono quelli più stabili, o, se si vuole leggere la cosa con una diversa chiave di lettura, quelli a forte rischio perché determinano, a cascata, tutte le attività (e le pianificazioni) dei livelli interni: un errore nello Strategy Planning può essere fatale, mentre uno a livello di Daily Planning, probabilmente, è sempre tollerabile.
La pianificazione viene supportata in modo diretto dalle piattaforme di gestione ALM, sia con funzionalità interne, sia consentendo di esportare i dati necessari per l’elaborazione con strumenti dedicati. In particolare, è possibile sfruttare le capacità di Visual Studio Online di esporre i dati delle attività (tramite RESTServices OData) e utilizzarli all’interno di strumenti di BI come PowerBI e lo stesso Excel, al fine di supportare le attività di analisi e pianificazione.
A questo argomento dedicheremo una serie di post in seguito.