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.

Questa innovazione nello sviluppo prodotti consente maggiore rapidità, 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.

Questo approccio di product & 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.

Una modalità 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.

MVP e MMPLa logica di sviluppo procede attraverso le seguenti fasi:

  1. In una prima fase vengono messe a fuoco le funzionalità minimali di un prodotto e ne viene verificato l’interesse da parte del mercato (Minimum Viable Product).
  2. In una seconda fase viene realizzata una prima versione commerciale del prodotto con le funzionalità ritenute fondamentali dal mercato (Minimum Marketable Product)
  3. Gli sviluppi successivi costituiranno ulteriori affinamenti attraverso l’introduzione di migliorie e correzioni di difetti.

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 modalità di gestione dei progetti che facciano un uso limitato della pianificazione.

Condizioni organizzative per l’Agile PM

Questo tipo di approccio trova un fertile terreno di applicazione nelle realtà votate alla gestione dell’innovazione attraverso cicli di sviluppo brevi in una logica di continuo rinnovamento di prodotti/servizi.

Ciò richiede 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.

Infatti il modello organizzativo agile per poter operare richiede nuovi stili di leadership ed un cambio di mentalità da parte di tutti i ruoli coinvolti.

I principi dell’Agile Product & Project Management

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.

Un team di sviluppo agile è in genere autodiretto 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 di privilegiare rapidità di sviluppo e di consegna mantenendo il più basso possibile il livello di burocrazia interno.

L’organizzazione del lavoro all’interno del team è autogestita mentre viene costantemente monitorata la produttività e la regolarità di consegna.

Benefici dell’Agile Project Management

  • Migliore qualità del prodotto. I metodi agili offrono eccellenti garanzie che la qualità sia la più elevata possibile.
    • Adottando un approccio proattivo alla qualità per prevenire problemi al prodotto.
    • Abbracciando l’eccellenza tecnologica, il buon design e lo sviluppo sostenibile.
    • Definendo ed elaborando i requisiti tempestivamente affinché la conoscenza delle caratteristiche del prodotto sia il più pertinente possibile.
    • Incorporando l’integrazione continua e i test quotidiani nel processo di sviluppo.
    • Sfruttando strumenti di test automatizzati per sviluppare durante il giorno, testare durante la notte e correggere i bug al mattino.
    • Svolgendo verifiche continue per consentire al team di migliorare i processi di lavoro.
  • Maggiore soddisfazione del cliente. L’Agile PM consente di migliorare la Customer Satisfaction
    • Coinvolgendo i clienti nello svolgimento del progetto.
    • Coinvolgendo un Product Owner che è un esperto dei requisiti del prodotto e delle esigenze del cliente.
    • Mantenendo il backlog del prodotto aggiornato per rispondere rapidamente alle modifiche.
    • Dimostrando periodicamente le funzionalità realizzate ai clienti.
    • Fornendo prodotti sul mercato più rapidamente e più spesso con ogni versione.
  • Riduzione del rischio. L’Agile Project Management, attraverso lo sviluppo iterativo basato su pacchetti di lavoro di piccole dimensioni, consente di abbattere i rischi.
    • Garantendo un breve periodo tra l’investimento iniziale nel progetto e la prima verifica della validità della realizzazione.
    • Avendo sempre un prodotto funzionante ad un certo livello prestazionale in modo da abbattere la possibilità di fallimento completo.
    • Fornendo feedback costanti su prodotti, processi di lavoro e nuove funzionalità di prodotto anche attraverso riunioni giornaliere.
    • Generando entrate in anticipo con progetti di autofinanziamento e consentendo alle organizzazioni di sostenere poche spese iniziali.
  • Maggiore morale del team. Far parte di un team autogestito consente alle persone di essere creative, innovative e riconosciute per la loro esperienza. Lavorare in modo interfunzionale consente ai membri del team di crescere attraverso il trasferimento reciproco di competenze.
  • Maggiore collaborazione e responsabilità. Il team di sviluppo e il Product Owner lavorano a stretto contatto quotidianamente. Le riunioni consentono al team di organizzare il proprio lavoro in modo da renderlo compatibile con i rilasci e gli incrementi di prodotto previsti.

Svantaggi dell’Agile PM

  • Minore prevedibilità. Per alcune tipologie di prodotti, gli sviluppatori non possono quantificare da subito la portata degli sforzi richiesti. Ciò porta molti stakeholder a temere queste incognite. Questa paura determina frustrazione, tentativi di aumentare eccessivamente il carico di lavoro e decisioni sbagliate. D’altra parte gli approcci Waterfall semplificano la quantificazione dello sforzo, del tempo e dei costi di consegna del prodotto finale; ma richiedono che l’ambito del progetto sia sufficientemente chiaro fin da subito.
  • Maggiore pressione sulle persone. Tester, clienti e sviluppatori devono interagire costantemente tra loro. Ciò comporta numerosi incontri faccia a faccia, in quanto sono la migliore forma di comunicazione. Tutti i soggetti coinvolti nel progetto devono avere una stretta collaborazione. Gli utenti devono essere disponibili per test rapidi e l’approvazione degli incrementi di prodotto realizzati. Ciò effettivamente garantisce che il prodotto soddisfi le aspettative, ma è oneroso e dispendioso in termini di tempo.
  • Documentazione carente. Nell’Agile Project Management, poiché i requisiti vengono chiariti appena in tempo per lo sviluppo, la documentazione che viene prodotta è poco dettagliata. Ciò significa che gli stakeholder hanno poco riscontro delle decisioni prese e, quando nuovi membri si uniscono al team, questi non hanno modo di approfondire i dettagli del lavoro da fare. Questo fatto crea incomprensioni e difficoltà.