Perché occorre diventare sempre più agili

Il mindset Agile, la mentalità Agile, prevede di accettare l’incertezza e tutto ciò che ne deriva. Oltre all’incertezza anche la complessità.
Occorre quindi avere una chiara consapevolezza di cosa è l’incertezza, e dell’impatto che ha, è l’elemento determinante. E’ nell’incertezza e nei continui cambiamenti di scenari che trova le sue radici il movimento Agile ancora vent’anni fa. 

Occorre anche avere fiducia nelle persone e nella loro capacità di avere impatto. Per andare veloci e iterare devi avere fiducia nell’autonomia delle persone e nel lavoro in team. La fiducia è un’emozione che si prova (“ispirare fiducia…”) e va oltre il concetto di affidabilità, ovvero la convinzione che le persone con cui lavori faranno esattamente quello che tu gli dirai di fare e lo faranno “bene”. Per fiducia intendiamo la consapevolezza che tutti lavoriamo verso lo stesso obiettivo, che possiamo sbagliare, che cose terribili (nello sviluppo software) potranno accadere e che potrebbe anche non essere colpa di qualcuno in particolare.

L’Agile si è evoluta dalla produzione del software ed è dunque diventata business agility: la capacità dell’impresa di generare dal lavoro in team e da proprio interno la trasformazione culturale e organizzativa adeguata o, meglio, in anticipo sui tempi: innovativa. Questa capacità, ovviamente, va ben oltre la capacità adattiva, necessaria per stare al passo o per sopravvivere ai continui mutamenti dei mercati e delle economie.

Perché occorre diventare sempre più agili? Ecco, in sintesi, quattro validi motivi:

  • L’Agility appartiene all’Organizzazione nel complesso, e non è esclusivo appannaggio dei team operativi. Per questo occorre andare oltre non solo ai team tecnologici, ma anche ai team:
  • L’Agility interessa tutti i settori produttivi, non solo quello del software;
  • L’Agility è necessaria creare un continuo allineamento end to end con le esigenze dei clienti-utenti
  • L’Agility è indispensabile per creare un’organizzazione dinamica focalizzata sulla soddisfazione del cliente, nonché capace di assecondare le ambizioni e le necessità delle persone che ne costituiscono la linfa vitale

Il Modern Agile

Ecco i quattro pilastri del mindset agile che vanno ben oltre alla metodologia e ai numerosissimi strumenti e pratiche Agile:

  1. Rendere le persone eccezionali (Make people awesome) 
    Il mondo è fatto di persone, e, organizzativamente parlando, possiamo divederlo in due insiemi: quello su cui si basa la propria organizzazione, e quello a cui essa si rivolge. 
  2. Rilasciare continuamente Valore (Deliver Value Continuously)
    Il concetto di rilascio continuo di Valore è oggi uno dei desiderata predominanti: appena una parte della nostra soluzione è pronta, diventa importante renderla disponibile ai nostri utenti, in modo da fornire subito un nuovo vantaggio competitivo (ROI più rapido) e ottenere rapidamente feedback che consentano di allineare gli step successivi.
  3. Rendere la sicurezza un prerequisito (Make safety a prerequisite)
    Le Persone che fanno parte dell’organizzazione devono sentirsi al sicuro, rimuovendo la “paura di sbagliare” che tipicamente accompagna le nostre attività professionali.
  4. Sperimentare e apprendere velocemente (Experiment and learn rapidly)
    Nessuna organizzazione può permettersi di “restare immobile”, non guardando oltre l’attuale orizzonte e fornendo soluzioni non adeguate alle aspettative degli utenti.

Ecco un panoramica degli strumenti Agile Mindset:

I quattro valori del Manifesto Agile

Occorre partire dal mindset Agile, la mentalità Agile, per poi adottare i quattro valori del Manifesto Agile (ricordiamoci che tutto è partito dalla produzione del software):

  1. Individui e interazioni su processi e strumenti
    Valutare le persone più dei processi o degli strumenti: è facile da capire perché sono le persone che rispondono alle esigenze aziendali e guidano il processo di sviluppo.
  2. Software funzionante su una documentazione completa
    L’Agile non elimina la documentazione, ma la semplifica in una forma che offre allo sviluppatore ciò che è necessario per svolgere il lavoro senza impantanarsi nelle minuzie
  3. Collaborazione del cliente durante la negoziazione del contratto
    La negoziazione è il periodo in cui il cliente e il product manager elaborano i dettagli di una consegna, con punti lungo il percorso in cui i dettagli possono essere rinegoziati. La collaborazione è una creatura completamente diversa.
  4. Rispondere al cambiamento seguendo un piano 
    Con Agile, la brevità di un’iterazione significa che le priorità possono essere spostate da un’iterazione all’altra e nuove funzionalità possono essere aggiunte all’iterazione successiva. La visione di Agile è che i cambiamenti migliorano sempre un progetto; le modifiche forniscono un valore aggiuntivo. Le metodologie Agile consentono al team Agile di modificare il processo e adattarlo al team piuttosto che il contrario.

I Dodici Principi del Manifesto Agile

I Dodici Principi sono i principi guida per le metodologie che sono incluse sotto il titolo “The Agile Movement”. Descrivono una cultura in cui il cambiamento è benvenuto e il cliente è al centro del lavoro. Dimostrano anche l’intento del movimento come descritto da Alistair Cockburn, uno dei firmatari del Manifesto Agile, che è quello di allineare lo sviluppo con le esigenze del business. I dodici principi dello sviluppo agile prevedono:

  1. Soddisfazione del cliente attraverso la consegna precoce e continua del software: i clienti sono più felici quando ricevono software funzionante a intervalli regolari, piuttosto che aspettare lunghi periodi di tempo tra i rilasci.
  2. Soddisfare i requisiti mutevoli durante tutto il processo di sviluppo: la capacità di evitare ritardi quando un requisito o una richiesta di funzionalità cambia.
  3. Consegna frequente di software funzionante: Scrum rispetta questo principio poiché il team opera in sprint o iterazioni del software che garantiscono la consegna regolare del software funzionante.
  4. Collaborazione tra le parti interessate aziendali e gli sviluppatori durante tutto il progetto: vengono prese decisioni migliori quando il team aziendale e tecnico sono allineati.
  5. Sostieni, fidati e motiva le persone coinvolte: i team motivati ​​hanno maggiori probabilità di fornire il loro lavoro migliore rispetto ai team infelici.
  6. Abilita le interazioni faccia a faccia: la comunicazione ha più successo quando i team di sviluppo sono co-locati.
  7. Il software funzionante è la misura principale del progresso : la fornitura di software funzionale al cliente è l’ultimo fattore che misura il progresso.
  8. Processi agili per supportare un ritmo di sviluppo coerente: i team stabiliscono una velocità ripetibile e mantenibile alla quale possono fornire software funzionante e la ripetono ad ogni versione.
  9. L’attenzione ai dettagli tecnici e al design migliora l’agilità: le giuste competenze e un buon design assicurano che il team possa mantenere il ritmo, migliorare costantemente il prodotto e sostenere il cambiamento.
  10. Semplicità: sviluppa quanto basta per portare a termine il lavoro per il momento.
  11. I team auto-organizzati incoraggiano architetture, requisiti e design eccezionali: membri del team esperti e motivati ​​che hanno potere decisionale, assumono la proprietà, comunicano regolarmente con altri membri del team e condividono idee che forniscono prodotti di qualità.
  12. Riflessioni regolari su come diventare più efficaci: l’auto-miglioramento, il miglioramento dei processi, l’avanzamento delle abilità e le tecniche aiutano i membri del team a lavorare in modo più efficiente.

Fonti utilizzate: Agility School, Modern Agile (modernagile.org), Joshua Kerievsky, forbes.com, productheroes.it e felicepescatore.it