Agile PM

agile pmLa gestione agile dei progetti ribalta il tradizionale modo lineare di sviluppare prodotti e servizi basandosi su un processo di miglioramento continuo e incrementale.

Sempre più organizzazioni stanno adottando questa modalità perché utilizza una serie di cicli di sviluppo più brevi per sviluppare le funzionalità richieste.

Questo stile di gestione consente un rapido sviluppo, una integrazione continua (Continuous Integration – CI) e un processo continuo di consegna (Continuous Delivery – CD).

L’Agile PM consente ai team interfunzionali di risolvere problemi e portare avanti progetti in fasi più brevi e con aggiornamenti più frequenti.

Questa metodologia di project management offre un livello superiore di miglioramenti qualitativi su base incrementale invece di attendere il completamento di progetti di maggiori dimensioni.

In generale possiamo quindi dire che ha come obiettivo quello di generare valore per il business attraverso frequenti rilasci di prodotto.

Uno strumento per innovare

L’Agile PM si basa su un processo di innovazione incrementale attraverso uno sviluppo iterativo in cui i progetti sono strutturati in piccoli pacchetti di lavoro.

Costituisce un ottimo metodo da utilizzare quando non si conoscono perfettamente sin dall’inizio le caratteristiche del prodotto finale e si ha bisogno di cambiamenti frequenti o si vuole ricevere prima della chiusura del progetto alcuni dei benefici e output del progetto stesso.

Grazie alla loro iteratività, i progetti gestiti in questo modo riescono a rispondere prontamente a problemi e cambiamenti intercorsi durante i lavori.

Fare una modifica necessaria al progetto al momento giusto può far risparmiare risorse e, sicuramente, aiuta a completare un progetto in tempo e rispettando il budget.

D’altra parte, l’innovazione procede in condizioni di incertezza e quindi richiede di adottare modalià di gestione dei progetti che facciano un uso limitato della pianificazione.

Presupposti organizzativi per l’Agile PM

Questo tipo di approccio trova un fertile terreno di applicazioni nelle realtà votate all’innovazione che richiedono cicli di sviluppo brevi in una logica di continuo rinnovamento di prodotti/servizi.

Al tempo stesso sono richiesti adeguamenti nella struttura organizzativa in quanto è necessario renderla compatibile con le esigenze dei team di sviluppo che operano in autonomia sotto la guida di nuove figure di manager.

I principi dell’Agile PM

L’Agile Manifesto definisce 12 principi che qualificano questo modo di operare.

Inizialmente questi principi sono stati applicati allo sviluppo software che ben si presta a questa logica di sviluppo incrementale.

Successivamente sono stati applicati anche ad altre tipologie di progetti in presenza delle 3 seguenti condizioni:

  1. non si sa esattamente cosa occorre fare;
  2. non si sa esattamente come farlo;
  3. tra il momento in cui si inizia effettivamente a farlo e il momento della consegna, l’ambito in cui si sta lavorando può cambiare in modo significativo.

Nel seguito vengono quindi illustrati i principi che dovrebbero essere trasferiti ai team di sviluppo.

1 – Il cliente prima di tutto

Uno dei primi principi dell’Agile PM è che la massima priorità consiste nel soddisfare il cliente attraverso consegne rapide e continue.

Ciò significa che il team lavora soprattutto per risolvere i problemi per il cliente, non per costruire funzionalità e strumenti che sono interessanti ma difficili da usare.

Questa strategia fa in modo che tutte le decisioni sui prodotti siano guidate dai dati che riflettono il punto di vista del cliente. Può significare che molti membri del team interagiscono regolarmente con gli utenti finali (anche con interviste) o hanno accesso ai dati che mostrano l’utilizzo da parte del cliente delle funzionalità già sviluppate.

Questa metodologia riduce drasticamente anche i tempi di avvio del progetto perché non si deve pianificare tutto ma solo ciò che nell’immediato è ritenuto necessario. Il resto verrà affrontato in cicli di sviluppo successivi attraverso un circuito di feedback e di miglioramento continuo.

2 – L’unica costante è il cambiamento

Mentre può sembrare radicale cambiare sistematicamente i requisiti, l’Agile PM permette di cambiare i requisiti, anche nelle fasi avanzate dello sviluppo.

Questo principio è strettamente legato al primo.

Se l’obiettivo finale del team è quello di servire al meglio l’utente finale, il team deve essere flessibile e in grado di apportare modifiche in base ai comportamenti e alle esigenze dei clienti.

La flessibilità consente inoltre a un’organizzazione di capitalizzare su una tecnologia emergente o su nuove tendenze e ottenere in questo modo un vantaggio competitivo.

I prodotti vengono quindi sviluppati in tempi brevi e poi aggiornati continuamente in base alle nuove esigenze del mercato.

3 – Velocizzare la consegna

Invece di aggiornamenti e patch annuali o semestrali del prodotto, vengono incoraggiati aggiornamenti regolari quando viene identificata una necessità o per migliorare l’operatività. Aspettare di rilasciare versioni significative può appesantire l’utilizzo della tecnologia e creare problemi imprevisti, indipendentemente da ciò che è stato testato.

L’Agile PM incoraggia il team a rilasciare frequentemente software funzionante in breve tempo. Rilasci più piccoli e più frequenti consentono aggiornamenti regolari della tecnologia senza rischi enormi. Se qualcosa esce e non funziona, richiede solo una leggera modifica. L’automazione può inoltre aiutare a distribuire continuamente gli aggiornamenti.

4 – Costruire team interfunzionali

Le tecnologie più studiate, utilizzabili e vendibili richiedano team interfunzionali che perseguono un obiettivo condiviso.

I team DevOps (sviluppo e operazioni) e DevSecOps (sviluppo, sicurezza e operazioni) lavorano in concerto anziché in una progressione lineare. Ciò consente agli sviluppatori, al Quality Assurance e ad altri team essenziali di lavorare insieme dall’inizio alla fine.

Questo cambiamento di prospettiva implica che tutti i team siano professionalmente ed emotivamente coinvolti nel lavoro e ciò rende più difficile l’emergere di errori o di realizzazioni di bassa qualità.

Perché i team interfunzionali funzionino, ci vuole coinvolgimento dall’alto. Un terzo dei progetti fallisce a causa della mancanza di partecipazione dell’alta dirigenza.

5 – Incoraggiare il lavoro in autonomia

Un altro principio di Agile PM è che le persone possono apprendere nuove competenze mentre lavorano su progetti.

Poiché i team sono interfunzionali, gli individui sono esposti a diverse abilità, ruoli e stili che si “contaminano” positivamente tra loro. Questa esposizione rende possibile aggredire i problemi da diverse prospettive.

I team agili sono in genere autodiretti e ciò è possibile costruendo progetti intorno a individui motivati. Offri loro l’ambiente e il supporto di cui hanno bisogno e ci si affida a loro per portare a termine il lavoro.

6 – Incontrarsi di persona

Mentre questo principio può sembrare strano nell’era del lavoro in remoto, vengono incoraggiate le riunioni di persona.

Questo perché molti manager ritengono che il metodo più efficiente ed efficace per trasmettere informazioni sia una conversazione faccia a faccia.

Anche la co-ubicazione può favorire interazioni più rapide.

Questo obiettivo può ancora essere raggiunto per i team remoti utilizzando strumenti come Slack e sistemi di videoconferenza.

7 – La qualità prodotta come unica misura del successo

Le organizzazioni possono avere diversi modi per documentare il piano di lavoro e misurare il successo rispetto agli obiettivi.

Tuttavia, uno dei modi migliori per misurare il successo di una squadra nell’Agile PM è attraverso la qualità del prodotto realizzato. I team agili non guardano alle previsioni future per vedere come stanno messi. Al contrario, l’eccellenza del prodotto è la misura principale del progresso.

La pianificazione e la documentazione sono eccezionali, ma se quanto realizzato non funziona, tutto il resto è abbastanza irrilevante.

8 – Sviluppo sostenibile

Ad esempio, nello sviluppo software l’Agile PM incoraggia rilasci rapidi ma è vitale che il team realizzi un codice sostenibile e scalabile. Poiché il primo principio è quello di servire il cliente, il team deve pensare alla creazione di tecnologia e strumenti che possano essere utilizzati per il lungo periodo.

Il team dovrebbe anche essere gestito in modo da supportare le persone. Sebbene possa essere necessario impiegare molte ore concentrate in un breve periodo, mantenere l’equilibrio generale tra lavoro e vita privata è essenziale per evitare il burnout e l’insorgere di fenomeni di stress.

9 – Puntare all’eccellenza

Ogni membro del team deve sentirsi responsabile di porre costante attenzione all’eccellenza tecnica. Anche coloro che non hanno capacità tecniche dovrebbero lavorare sul controllo qualità e assicurarsi che tutto sia costruito in modo semplice e accessibile.Un buon disegno complessivo del prodotto ne favorisce la realizzazione e la fruibilità.

Inoltre, il codice dovrebbe migliorare con ogni iterazione. Ognuno è responsabile di fornire codice o istruzioni chiari durante tutto il processo, non solo alla fine.

10 – Semplificare il più possibile

I team agili ritengono giustamente che la semplicità sia essenziale.

Nei circoli agili c’è un detto: “massimizza la quantità di lavoro non svolto”. Ciò significa essere sempre consapevoli dei miglioramenti che è ancora possibile introdurre.

Eliminare e automatizzare tutto ciò che è possibile costruendo soluzioni che siano semplici per l’utente finale.

11 – Favorire la libera espressione

Nell’Agile PM le persone che partecipano ai progetti devono essere lasciate libere di potersi esprimere al meglio e devono essere messe nella condizione di organizzarsi anche in autonomia.

Il management dovrebbe selezionare i migliori talenti per poi coinvolgerli in progetti che sfidino le loro capacità.

Ciò richiede ai nuovi manager specifiche caratteristiche di leadership.

12 – Riflettere periodicamente sui risultati

E’ opportuno prevedere periodicamente dei momenti in cui riflettere sul lavoro svolto, i risultati ottenuti, gli errori e le azioni per correggerli.

Gestire un team di sviluppo richiede attenzione su tutto ciò che può migliorare la performance del gruppo e dei singoli componenti.

Come gli atleti, le persone devono essere in grado di esaminare obiettivamente il proprio operato, individuando le aree di miglioramento e le azioni per correggere atteggiamenti e comportamenti improduttivi.

Ciò può aprire lo spazio per azioni di formazione e qualificazione delle competenze.

La gestione dei team di sviluppo

L’Agile PM è basato su team ad alte prestazioni che sviluppano prodotti applicando metodi di lavoro basati su un insieme di regole snelle come, ad esempio, quelle definite nello Scrum Framework.

Ciò consente loro di privilegiare rapidità di sviluppo e di consegna mantenendo il più basso possibile il livello di burocrazia interno.