La gestione di progetto Agile è un approccio iterativo che si concentra sull’alta consegna di valore e sull'ottenere feedback rapidi dal mercato per adattarsi rapidamente ai cambiamenti emergenti. Si concentra su:
- lavorare su piccoli gruppi di attività;
- visualizzare i processi per creare trasparenza;
- offrire collaborazione con il cliente, e
- ottenere feedback rapidi.
Ciò consente di adattarsi prontamente alle mutevoli esigenze e produrre prodotti o servizi di qualità superiore per soddisfare al meglio le esigenze dei clienti.
Un malinteso comune che si osserva spesso su Agile è che si tratti di una metodologia. Invece, Agile è un modo di pensare alla risoluzione collaborativa dei problemi nonché un approccio che le persone applicano alla moderna gestione dei progetti.
Una Breve Storia di Agile
Inizialmente radicata nel settore dello sviluppo software, cerchiamo di fare una rapida esplorazione di come l'idea di gestione dei progetti Agile sia emersa.
Tutto è iniziato con la cosiddetta "crisi di sviluppo delle applicazioni" nei primi anni ‘90. All'epoca, vi era un notevole ritardo di circa tre anni tra la necessità aziendale per un'applicazione e la consegna effettiva del software. Spesso, al momento del rilascio del prodotto finale, la tecnologia era già mutata o le esigenze dei clienti erano drasticamente cambiate. Questo ha causato il fallimento di molti progetti e costi irrecuperabili.
Quei tempi di realizzazione estremamente lunghi generavano frustrazione nei leader del settore dello sviluppo software. Così, hanno iniziato a organizzare incontri informali tra di loro, determinati a trovare un modo per sviluppare soluzioni software in modo più facile ed efficace.
È così che nacque il famoso raduno dei 17 leader di sviluppo software presso la stazione sciistica di Snowbird nelle montagne Wasatch dello Utah tra l'11 e il 13 febbraio 2001. Il gruppo si incontrò per discutere di sci, bere, mangiare e rilassarsi. Alla fine, ciò che emerse fu il "Manifesto Agile" che ha cambiato il modo in cui gestiamo i progetti al giorno d’oggi.
Cos’è la Gestione di Progetto Agile?
Al centro della gestione di progetto Agile vi è la parola "agilità", che proviene dal latino "agere": "fare, agire", il che significa la capacità di spostare qualcosa in avanti in modo rapido permettendo facili cambi di direzione.
Quindi, in termini di gestione di progetto, l’"agilità" è caratterizzato da cinque attributi essenziali che formano gli elementi costitutivi del processo Agile:
- Trasparenza
- Focus sul cliente
- Adattabilità
- Senso di apparetenenza (Leadership efficace)
- Miglioramenti continui
Insieme, questi attributi sono ciò che rende un progetto Agile. Per discuterne più nel dettaglio, cerchiamo di spiegarli individualmente:
Trasparenza
Uno dei temi centrali della gestione di progetto Agile è la comprensione condivisa del processo (inclusa la definizione di fatto) tra tutte le parti interessate. Ciò richiede una maggiore trasparenza nel modo in cui i team lavorano e comunicano tra di loro.
Nel contesto Agile, i membri condividono apertamente i loro progressi di lavoro integrando strumenti informativi come le Kanban boards. Questo permette a tutti di capire cosa stanno facendo i loro coetanei e come stanno lavorando, il che, a sua volta, consente scambi di idee per migliorare il processo lavorativo.
Inoltre, i membri del team sono incoraggiati a condividere liberamente le loro idee e sfide senza preoccuparsi che ciò possa compromettere il proprio status all’interno del progetto. Di conseguenza, l'approccio Agile alla gestione dei progetti mira a creare un ambiente unitario in cui i team conoscono i propri errori e collaborano verso la risoluzione.
Focus sul Cliente
Una famosa citazione dell'imprenditore seriale Dave Mcclure afferma che "I clienti non si preoccupano della tua soluzione. Si preoccupano dei loro problemi". In altre parole, anche se hai la soluzione migliore al mondo, se i tuoi clienti non vedono il modo in cui possa aiutarli a risolvere il loro problema, non avranno intenzione di adottarla.
Ecco perché l’approccio Agile alla gestione dei progetti pone un forte accento sulla garanzia che le esigenze dei clienti vengano comprese attraverso una collaborazione costante. L'obiettivo è quello di fornire ai clienti non solo ciò che hanno chiesto, ma ciò di cui hanno bisogno. Questa è una sfida comune in un ambiente di lavoro basato sulla conoscenza poiché il processo di lavoro è praticamente invisibile; le sue caratteristiche potrebbero essere facilmente fraintese.
Quindi, frequenti cicli di feedback nel ciclo di consegna del progetto Agile servono come punti di controllo in cui i clienti possono vedere come appare nella pratica "ciò che pensavano di volere". Questo contribuisce allo sviluppo di nuove conoscenze e all'esplorazione di possibili soluzioni innovative.
Inoltre, attraverso la frequente collaborazione con i clienti, Agile mira a fornire maggiore efficienza ai progetti. Un modo per raggiungere questo obiettivo è riducendo la rielaborazione del progetto, cosa che crea enormi sprechi di tempo e risorse. Di conseguenza, i progetti Agile godono di livelli di produzione più bassi e costi di ritardo, rendendo il prodotto o servizio finale più conveniente per il cliente finale.
Adattabilità
L'altra idea principale della gestione di progetto Agile è quella di consentire ai team di rispondere meglio ai cambiamenti dovuti ai punti di controllo di cui sopra. Ciò richiede anche una consegna più frequente di valore al cliente finale in modo che i team possano raccogliere feedback veloci direttamente dal mercato.
Ecco perché, invece di produrre una grande batch di lavoro, Agile si concentra su un approccio iterativo in cui i team scompongono i loro progetti e ne consegnano continuamente piccoli pezzi, mantenendo la flessibilità per il lavoro rimanente.
L'obiettivo è garantire che ciò su cui si sta lavorando sia sincronizzato con l'utente finale insieme al ciclo di vita del progetto Agile. Di conseguenza, potrai acquisire tutte le mutevoli esigenze dei clienti all'inizio del processo, adattarti rapidamente alla nuova situazione ed evitare ritardi significativi nella consegna finale del progetto.
Per illustrare al meglio questo ciclo di adattamento continuo, diamo un rapido sguardo alle fasi Agile.
Quali Sono le Fasi di Gestione di Progetto Agile?
In generale, il processo di consegna di progetto Agile può essere riassunto nelle seguenti fasi:
- Visione – creare la visione di prodotto/servizio di alto livello per i clienti e determinare chi sarà coinvolto nel progetto
- Speculazione – estensione della fase "Visione", in cui i team raccolgono i requisiti generali iniziali per un prodotto/servizio e sviluppano un piano di iterazione basato sulla visione
- Esplorazione – lavorare sui risultati del progetto ponendo il focus sul flusso, con l'obiettivo di ottenere un feedback dal cliente il più velocemente possibile
- Adattamento – rivedere i risultati ottenuti e adeguarsi, se necessario, alle condizioni attuali
Chiusura – concludere il progetto, trasmettere i risultati chiave
Gestione Progetto Tradizionale vs. Agile
Nella gestione Agile, a differenza delle tradizionali fasi di gestione di progetto, vi è una differenza fondamentale all'interno della fase "Adattamento", che definisce la natura iterativa della gestione di progetto Agile.
Dopo aver creato la visione del prodotto e preparato un piano di iterazione, si passa alla fase "Esplorazione". Lì, l'obiettivo è quello di rilasciare continuamente piccoli risultati sul mercato invece di aspettare che siano stati completati tutti.
Poi, nella fase "Adattamento", i team si impegnano a condividere brevi recensioni del progetto con i clienti che danno il loro rispettivo feedback. L'idea è quella di adattare le tue azioni future sulla base di tale feedback e, se necessario, applicare piccole modifiche a ciò che è stato consegnato, invece di eseguire un’ampia rilavorazione.
Senso di Appartenenza
Un altro attributo che l’"agilità" porta alla gestione del progetto è l'instillazione di un senso di appartenenza all'interno dei team, contribuendo a una leadership più efficace.
Ad esempio, nella gestione del progetto tradizionale, tutti i pezzi informativi passano attraverso un project manager dedicato che assegna i compiti a diversi membri del team. Questo, però, può essere inefficace a causa della maggiore probabilità di perdita di alcune informazioni.
Invece, i progetti Agile condividono un grande frammento del processo decisionale con i membri del team.
In realtà, sono quelli più vicini ai dettagli tecnici del lavoro, rendendo perfettamente sensato includerli in maniera attiva nei processi di pianificazione e quindi decidere come eseguire al meglio i loro compiti. Alla fine, i membri del team sono incoraggiati a collaborare e trovare soluzioni ai problemi in base alla loro comprensione invece di aspettare che il "capo" dica cosa deve essere fatto.
Questo crea un ambiente di appartenenza condiviso che motiva e consente ai team di essere più efficienti nel loro lavoro. Di conseguenza, ognuno contribuirà nel miglior modo possibile al completamento del progetto.
A sua volta, la leadership diventa più efficace poiché l’attenzione devia verso la gestione del lavoro (non sui lavoratori), il che genera profitti all’interno del business. Pertanto, i leader Agile di successo fissano obiettivi condivisi con i membri del team, aiutano a rimuovere gli ostacoli ottimizzando il flusso di lavoro, forniscono le risorse necessarie e incoraggiano l'apprendimento collaborativo.
Miglioramenti Continui
Uno degli attributi più importanti della gestione di progetto Agile è che crea un ambiente per il miglioramento continuo. I team si impegnano regolarmente in cicli di apprendimento frequenti nel contesto dello sviluppo del progetto, invece di una grande sessione di "lezioni" al termine di esso.
Ciò garantisce che i miglioramenti essenziali dei processi si verifichino mentre il progetto Agile è ancora in corso, il che può contribuire positivamente al successo della consegna ai clienti finali. Naturalmente, non c'è nulla di sbagliato nell'altro approccio, che è ancora presente nel processo di gestione del progetto Agile. Tuttavia, in un ambiente in cui il lavoro è invisibile e si verificano spesso dei cambiamenti, basarsi solo su questo aspetto risulta essere inefficace per il successo nella consegna dei progetti Agile.
Inoltre, il lavoro viene suddiviso in piccoli parti che vengono continuamente consegnate ai clienti per farle controllare e ricevere un feedback. Questo contribuisce inoltre al continuo perfezionamento di un prodotto o servizio tenendo in mente di renderlo perfettamente adatto per il cliente finale.
Valori e Principi Agile
Diventare agile è una questione di cambiare mentalità e seguire valori e principi specifici nelle modalità lavorative.
Quali Sono i Quattro Valori Chiave di Agile?
- Individui e interazioni su processi e strumenti.
- Software di lavoro basato su documentazione completa.
- Collaborazione con i clienti sulla negoziazione del contratto.
- Rispondere al cambiamento seguendo un piano.
È importante ricordare che questi valori sono stati definiti nel seguente formato: "Mentre diamo valore alle cose di destra, diamo più valore alle cose di sinistra". Ciò significa che i processi, gli strumenti, la documentazione, i contratti e la pianificazione rimangono fondamentali. Bisogna solo usarli con saggezza.
Quali Sono i 12 Principi di Agile?
- La massima priorità è soddisfare il cliente attraverso la fornitura tempestiva e continua di software di valore.
- Il cambiamento dei requisiti deve essere accolto con favore, anche in fase avanzata del processo di sviluppo. I processi agili sfruttano il cambiamento per il vantaggio competitivo del cliente.
- Il software funzionante deve essere consegnato frequentemente, da un paio di settimane a un paio di mesi, preferendo la scala temporale più breve.
- Gli imprenditori e gli sviluppatori di software devono lavorare insieme ogni giorno per tutta la durata del progetto.
- Costruire progetti intorno a individui motivati. Offrire loro l'ambiente, il supporto e la fiducia di cui hanno bisogno per compiere il lavoro con successo.
- Il metodo più efficiente ed efficace per trasmettere informazioni a e all'interno di un team di sviluppo è la conversazione faccia a faccia.
- Il software funzionante è la misura primaria del progresso.
- I processi Agile promuovono lo sviluppo sostenibile. Gli sponsor, gli sviluppatori e gli utenti dovrebbero essere in grado di mantenere un ritmo costante a tempo indeterminato.
- La continua attenzione all'eccellenza tecnica e al buon design migliora l'agilità.
- Semplicità – l'arte di massimizzare la quantità di lavoro non fatto è essenziale.
- Le migliori architetture, requisiti e disegni emergono da team auto-organizzati.
- A intervalli regolari, il team riflette su come diventare più efficace, quindi sintonizza e regola il suo comportamento di conseguenza.
Sebbene la gestione di progetto Agile derivi dal settore dello sviluppo software, viene applicata con successo a molti altri settori come lo sviluppo di prodotto, architettura, marketing, servizi finanziari, ecc.
Metodi di Gestione di Progetto Agile
Finora, abbiamo esplorato principalmente cos’è la gestione di progetto Agile, comprese le sue caratteristiche principali. Ora, vogliamo offrire una visione più dettagliata del processo che riguarda alcuni dei più popolari stili e metodi di gestione Agile.
Dal momento che Agile è diventato un tema popolare all'inizio del 21º secolo, molti strumenti lavorativi hanno approfittato del crescente hype e della sua rapida notorietà (Scrum, SAFe, ecc). Tuttavia, molte società che cercano la vera agilità aziendale si sono rese conto che uno strumento di lavoro altamente prescrittivo e l'agilità si trovano all’opposto. Questo è il motivo per cui molte organizzazioni oggi stanno esaminando metodologie agili che creano e supportano un flusso di lavoro stabile e adattano i processi alle proprie esigenze, invece di adottare strumenti di lavoro altamente prescrittivi.
Ad oggi, gli strumenti o metodi di gestione di progetto Agile più popolari sono Kanban, Scrum, e Scrumban.
Iniziamo con Kanban.
Kanban
Kanban è un metodo formulato un decennio fa. Si concentra sul cambiamento evolutivo e sui continui miglioramenti dei processi.
Il metodo è costituito da sei pratiche principali:
- visualizzare il lavoro
- limitare il work-in-progress
- gestire il flusso
- rendere esplicite le policy di processo
- implementare cicli di feedback
- migliorare insieme
I team visualizzano il proprio lavoro su una Kanban board che funge da centro di informazione centrale in cui dovrebbero essere collocati tutte le attività da svolgere. Questo permetterà alle persone di scambiare informazioni in modo molto più veloce e collaborare in modo più efficace mentre si lavora su diversi progetti.
Una Kanban board o scheda viene divisa in colonne che rappresentano diverse fasi del flusso di lavoro. Questo aiuta i project manager e i team a organizzare e gestire meglio il lavoro, tenendo traccia dei vari progetti e acquisendo una migliore panoramica del processo.
Una delle pratiche Kanban più critiche è limitare il work-in-progress. Il limite WIP è la quantità di lavoro consentita in ciascuna colonna della scheda. È uno degli strumenti più efficaci che si può utilizzare per focalizzare l'attenzione del proprio team e dare priorità ai lavori di rifinitura per migliorare l'efficienza complessiva.
D'altra parte, tutti sappiamo che i progetti, i team e gli individui sono unici. Diversi team presentano un diverso insieme di competenze, livelli di esperienza e capacità. Vari progetti possono avere diversi scopi, budget, e così via.
Questo è il motivo per cui Kanban suggerisce che si dovrebbe iniziare con ciò che si sta facendo al momento e quindi evolversi gradualmente. Nessun cambiamento drastico, nessuna rivoluzione, il che rende Kanban uno dei metodi di gestione di progetto Agile più adattivi.
Kanban può essere applicato da qualsiasi team nella tua organizzazione, dall'informatica al marketing. Il motivo principale è che Kanban:
- rispetta i processi e i ruoli attuali;
- non richiede cambiamenti rivoluzionari, ma evolutivi;
- suggerisce di perseguire un cambiamento evolutivo incrementale e cerca di migliorare continuamente;
- incoraggia a gestire il lavoro e lascia che le persone si organizzino da sole intorno ad esso.
Se vuoi utilizzare Kanban, basta metterlo in cima ai tuoi processi attuali e iniziare a migliorare passo dopo passo.
Scrum
Molti credono che Scrum sia un metodo Agile, ma in realtà è uno strumento prescrittivo. Di sua natura, si tratta di un approccio iterativo che utilizza intervalli di tempo e divide i progetti in periodi prefissati chiamati sprint. L'obiettivo principale è quello di supportare i team per fornire in modo produttivo e creativo prodotti dal massimo valore possibile.
Vi sono tre ruoli immutabili:
- Il proprietario del prodotto (Product Owner)
- Lo Scrum Master
- Il Team
Il Product Owner rappresenta i clienti e le altre parti interessate. Lui/ lei organizza e gestisce il backlog del prodotto, un elenco di attività prioritarie di tutti gli elementi di lavoro necessari per il prodotto. D'altra parte, lo Scrum Master è un servant-leader del team con un'enfasi sulla leadership e aiuta tutti a capire e applicare correttamente le regole.
Dal backlog del prodotto, gli elementi di lavoro vengono selezionati e spostati al backlog Sprint fino a raggiungere la capacità per lo Sprint. Un team auto-organizzato o auto-gestito esegue il lavoro durante lo Sprint, rappresentato da progetti con una lunghezza fissa di non più di un mese.
Vi sono quattro eventi Scrum principali:
- Sprint Planning
- Daily Scrum
- Sprint Review
- Sprint Retrospective
È interessante notare che, nel documento originale che formula lo strumento di lavoro e in seguito la guida Scrum, gli autori non menzionano mai l'utilizzo di una task board.
Tuttavia, al giorno d'oggi, è possibile osservare che tutti i team o le organizzazioni utilizzano una task board durante la gestione di progetto Agile con Scrum, una pratica presa in prestito da Kanban.
Dopo tutto, la board aumenta la trasparenza e supporta i valori di gestione di progetto Agile.
Scrumban
Mentre Kanban stava acquisendo sempre più popolarità, alcune persone della comunità Agile ha notato l'opportunità di sviluppare un metodo che rende facile per i team Scrum di andare avanti e concentrarsi sul miglioramento continuo e il cambiamento evolutivo. Ed è così che nacque Scrumban.
Un fatto interessante è che l’81% degli Scrum master usa Kanban insieme a Scrum.
Scrumban prende la filosofia e le pratiche di Kanban, li pone sopra Scrum ed elimina alcune regole.
Vediamo cosa prende Scrumban da Kanban.
Visualizzare il lavoro. Questa è la prima cosa che Scrumban indica come obbligatoria. È essenziale perché Scrum non impone una board, mentre in Kanban, la board è un must.
Limitare il Work in Progress (WIP). Se conosci almeno un po’ Kanban, saprai che limitare WIP è una cosa fondamentale. Scrumban prende questa pratica e la applica con successo in quanto consente ai team di concentrarsi sulla finitura del lavoro. Limitare il WIP è un ottimo prerequisito per creare un sistema pull, in cui le attività entrano naturalmente nel flusso di lavoro invece di essere spinte.
Estendere la board. In altre parole, aggiungere più colonne alla board. Questo è tipico di Kanban, nonché un ottimo modo per visualizzare i diversi passaggi del flusso di lavoro sulla board. In questo modo, il tuo team può avere una migliore panoramica del processo, e ti aiuterà a scoprire dove appaiono esattamente i rallentamenti del processo.
Prioritizzare. Scrumban applica un'altra tecnica da Kanban: la priorità. È abbastanza semplice. Si ordinano le card nella colonna Richieste (Da fare), con una semplice regola: la prima è la più importante. Tenendo a mente questa regola, il team inizia a spostare le card una per una.
(Basta) Stimare. Probabilmente è qui che Scrumban tradisce Scrum. Perché? Scrumban afferma che non è necessario stimare il lavoro. Ecco come stanno le cose. Secondo Lean, ogni attività che non aggiunge valore al risultato è considerata rifiuto. In questo modo, la stima è un'attività dispendiosa. Ecco perché in Scrumban le sessioni di pianificazione sono relativamente brevi e si concentrano sulla priorità invece della stima.
Pianificare su richiesta. Questa è una delle principali differenze tra Scrum e Scrumban. Scrumban elimina la pianificazione Sprint nella sua forma iniziale. Invece, il team pianifica se ce n’è bisogno. In altre parole, il team estrae gli elementi di lavoro dal backlog fino a quando non si svuota, un trigger per il team per pianificare più task.
Come si può osservare, Scrumban porta Scrum al livello successivo applicando i principi e le pratiche di Kanban. Ciò consente ai team di aumentare la produzione e ridurre gli sprechi, fornendo visibilità e maggiore produttività. Ciò consente inoltre ai team di applicare la pianificazione Agile al suo pieno potenziale.
Altre Menzioni Importanti
Esistono altri metodi di gestione di progetto Agile che hanno avuto un impatto positivo sullo sviluppo della comunità Agile, ma nel corso degli anni sono stati lentamente messi da parte. Questo è il motivo per cui non dedicheremo loro paragrafi separati. Tuttavia, dobbiamo menzionarne alcuni:
- XP (Programmazione Estremo)
- Metodi Crystal
- FDD (Sviluppo basato sulle funzionalità)
- DAD (Consegna Agile disciplinata)
All'inizio, Scrum è stato accettato abbastanza bene (e lo è ancora), ed è diventato mainstream nel settore dello sviluppo software. Tuttavia, nel corso degli anni, Kanban, Scrumban, e l’utilizzo di modelli ibridi è cresciuto in popolarità e ha aiutato Agile nella sua diffusione in vari settori. Inoltre, Kanban, Scrum e Scrumban sono i primi 3 che hanno attraversato con successo l'abisso e si sono diffusi in altri settori come lo sviluppo del prodotto, l'architettura, il marketing, i servizi finanziari, l'assistenza sanitaria, l'assicurazione, l'istruzione e altri.
Offriamo la piattaforma software
più flessibile per l'agilità aziendale orientata ai risultati.
Conclusioni
L'approccio Agile alla gestione di progetto consente all'organizzazione di essere più flessibile e di trovare un modo per rispondere ai cambiamenti emergenti. Un progetto è considerato Agile quando vengono messi in atto i seguenti attributi:
- Trasparenza
- Focus sul cliente
- Adattabilità
- Senso di appartenenza (Leadership condivisa)
- Miglioramenti continui