Negli ultimi anni si fa un gran parlare di quanto è divenuto più “pesante” per le imprese gestire il proprio business in ambienti fortemente “turbolenti”, caratterizzati da iper-competizione e dalla necessità di essere più produttivi, veloci, aperti, innovativi, di qualità. Al mutare del contesto è cambiata anche la natura dei progetti da gestire. I progetti, sebbene sempre più brevi, sono generalmente più complessi e i project manager si trovano a operare in ambienti altamente “caotici”. Il mercato ed i clienti oggi si aspettano prodotti più veloci, più economici e di migliore qualità che richiedono cambiamenti costanti.
Il cambiamento come regola mette in discussione i principi teorici del management “tradizionale”, specialmente quelli legati alla stabilità dei requisiti o dei presupposti iniziali di progetto. Nel tentativo di aiutare i PM e le organizzazioni aziendali nella gestione dei “progetti estremi”, un pool di consulenti e studiosi di fama mondiale ha elaborato un insieme di metodologie e tecniche evolute rispetto al project management tradizionale. Si tratta dei “metodi agili” di project management (APM = Agile Project Management). In questo articolo cerchiamo di capirne i principi di fondo.
Un po’ di storia
I metodi agili (Agile o Lightweight methodologies) si affermano in ambito IT, a metà degli anni ’90, in contrapposizione ai cosiddetti metodi Heavyweight. Nel momento in cui un IT manager è sempre più sotto pressione per ottenere risultati – in termini di applicazioni che apportino miglioramenti alla bottom line dell’impresa- i bilanci destinati all’IT vengono significativamente ridotti.
Queste modifiche portano a un maggiore interesse per lo sviluppo di software con metodologie agili, che promettono rapida consegna e flessibilità, pur mantenendo la qualità.
A valle del moltiplicarsi di modelli agili, nel 2001 alcuni degli ideatori di tali metodi hanno formulato un Manifesto per lo sviluppo “agile” con i seguenti “precetti”:
- Persone ed interazione più che processi e tools
- Software che funziona più che documentazione esaustiva
- Collaborazione con il cliente più che negoziazione contrattuale
- Rispondere al cambiamento più che seguire un piano prestabilito
In pratica, nonostante si riconosca l’importanza degli elementi a destra nelle frasi riportate, si ritengono più importanti quelli a sinistra.
Principi chiave APM
I concetti chiave alla base delle metodologie agili di project management sono:
- Il valore del cliente innanzitutto: fare in modo che il progetto, il prodotto e i valori del gruppo di lavoro siano allineati per rilasciare prodotti di qualità in modo più veloce ed economico.
- Piccole funzionalità: creare un flusso di funzionalità complete, rilasciate al cliente in modo incrementale nel corso della vita del progetto.
- Gruppi di lavoro piccoli e integrati: il lavoro di gruppo è fatto di collaborazione intensa attraverso la collocazione ravvicinata e la comunicazione faccia a faccia; i ruoli sono diversificati all’interno di gruppi integrati, auto-organizzati e auto-disciplinati.
- Miglioramenti piccoli e continui: i gruppi di lavoro riflettono, imparano e si adattano al cambiamento; il lavoro influenza il piano.
=> Project Management: Leadership e Comunicazione
Project management tradizionale vs Agile Project management
Nella tabella che segue riproponiamo un parallelo sintetico che Sanjiv Augustine ha presentato a Milano nel settembre 2007 per il PMI Northern Italy Chapter per contrapporre le caratteristiche tipiche dell’approccio di project management tradizionale e quello agile (ndr liberamente tradotto):
Agile Project Management |
Traditional Project Management |
---|---|
Interazione e soddisfazione del cliente al centro | Programmi e prodotti al centro |
Risposta adattativa al cambiamento | Controllo correttivo del cambiamento |
Elaborazione progressiva, pianificazione dinamica | Pianificazione a monte e rigida |
Priorità alle scadenze temporali del cliente | Negoziazione tra i manager del rilascio in base allo scopo |
Gestione della committenza attraverso la Feature Beakdown Structure |
Gestione delle attività attraverso la Work Breakdown Structure |
Collaborazione basata su gruppi di lavoro auto-organizzati ed auto-disciplinati |
Controllo dall’alto |
Repertorio minimo di procedure flessibili al mutamento di contesto |
Metodi prescrittivi, pesanti |
Metriche essenziali centrate sul valore | Controlli senza aggiunta di valore |
Da questa tabella diventa ancor più chiaro come la risposta agile sia un filosofia guida per poter affrontare al meglio ambienti e contesti turbolenti, con alta instabilità dei requisiti, calati in progetti di durata breve, con gruppi di lavoro di piccole dimensioni e dove la richiesta dei clienti non è quella di vedere dei prototipi, ma funzionalità complete, rilasciate in modo incrementale nel corso della vita del progetto, rispettando le scadenze (progetti time-boxed) senza alcuna deroga.
Metodi agili e sviluppo software
La gran parte dei metodi agili tentano di diminuire il pericolo di insuccesso nello sviluppo software mediante la suddivisione temporale del progetto in iterazioni, ovvero in finestre di tempo brevi della durata di poche settimane. Ogni iterazione è un piccolo progetto autonomo e deve avere al suo interno tutto ciò che è indispensabile per rilasciare un piccolo avanzamento nelle funzionalità del software: pianificazione (planning), analisi dei requisiti, analisi, implementazione, test e documentazione.
=> Project Manager e Leadership: guida pratica
Seppure ciò che viene rilasciato come risultato di una singola iterazione non contiene tutte le funzionalità per considerarsi completo, esso deve essere rilasciato. Le varie iterazioni, rilasciate una dopo l’altra, consentono di avvicinarsi sempre di più alle esigenze del cliente. Il rilascio progressivo delle iterazioni consente inoltre la rivisitazione in corso d’opera delle priorità di progetto.
I metodi agili preferiscono la comunicazione in diretta, faccia a faccia, rispetto a quella asincrona che passa solitamente attraverso la documentazione scritta di progetto. Il team agile ingloba non solo chi si occupa di programmazione, ma anche tutti i portatori di conoscenza, tutte le persone che sono in grado di definire come il prodotto dovrà essere fatto. Nel team, quindi, ci devono stare sia i product manager, che gli analisti di business che i clienti stessi.
Quello che conta per chi gestisce un progetto non è onorare il contratto, ma soddisfare il cliente.
Con le metodologie agili si riduce al minimo la parte più dispendiosa (la progettazione), abbattendo significativamente i costi di sviluppo del software.
Dicendo addio ai vecchi modelli di software engineering, basati sulla raccolta formale delle specifiche e su un processo strutturato di sviluppo software, i metodi agili interpretano le specifiche come un elemento dinamico, che cambia in linea con le necessità degli utenti durante l’avanzamento del progetto.
A interpretare in termini operativi i principi chiave dell’APM esistono numerosi approcci metodologici e tecnici. Nel glossario delle Agile Methodologies ritroviamo:
- Extreme Programming (XP)
- SCRUM
- Feature Driven Development (FDD)
- Dynamic Systems Development Method (DSDM)
- Crystal Methods
- Lean Software Development
Sbirciando semplicemente in rete, ci rendiamo poi subito conto che i due metodi di maggior uso e diffusione sono proprio XP e Scrum.
Conclusioni
Se si opera in contesti complessi e dinamici anche se di piccole dimensioni, dove il cambiamento è all’ordine del giorno, l’ APM può rappresentare un modello di gestione progetti efficace che val la pena approfondire, perché consente di rilasciare valore per il cliente attraverso pianificazioni di tipo adattativo, feedback rapidi, miglioramento continuo, intensi livelli di interazione e collaborazione tra le persone.