Quando ci si riferisce al termine Agile spesso si pensa a qualcosa di riconducibile a una metodologia.
Agile è un’etichetta che si applica ad un modello lavorativo riferito, principalmente, all’ambito dei progetti.
Ma l’Agile è molto di più. È una mentalità radicale.
Non significa introdurre semplicemente nuovi metodi di lavoro più “leggeri” ma implica un cambiamento nella cultura organizzativa aziendale.
Un’azienda può definirsi Agile se tutti i membri che la compongono possiedono questa forma mentis e adottare un pensiero Agile significa interiorizzare i suoi principi fondamentali. Ma come si è arrivati a teorizzare un Manifesto che delinea la filosofia Agile?
Peer Network ne ha discusso recentemente organizzando un incontro sull’Agile Manifesto.
L’aspetto distintivo di questo incontro è stato l’approccio che abbiamo adottato per rendere “tangibili” i principi: ogni principio è stato anche rappresentato attraverso un quadretto, successivamente affisso alla parete del nostro open space. Questa iniziativa ha trasformato i concetti in idee chiare.
Alla fine della presentazione, ciascun membro del team ha avuto l’opportunità di riflettere sui vari principi e di identificarne uno in particolare che rispecchiasse meglio la propria visione.
Dal Waterfall all’Agile
La nostra riflessione è iniziata dall’analisi del contesto in cui l’Agile manifesto è nato. Un momento in cui la storia dei progetti software era basata sull’approccio tipico nel mondo delle costruzioni, denominato waterfall, caratterizzato da fasi strettamente sequenziali, una pianificazione rigida, fortemente contract-driven e rilasci di “monoliti” difficilmente modificabili.
Nel febbraio 2001, un gruppo di sviluppatori ha rivoluzionato questa pratica riunendosi presso lo ski resort “The Lodge at Snowbird” per redigere l’Agile Manifesto, un documento che ha ridefinito il panorama dello sviluppo software.
Contrapponendosi al modello tradizionale, l’Agile Manifesto promuove valori come persone e interazioni, software funzionante, collaborazione con il cliente e risposta al cambiamento.
Una visione dirompente rispetto alle pratiche aziendali del tempo, basata su flessibilità e adattabilità, sulla capacità di accettare e dare risposte rapide ai cambiamenti e con una forte enfasi sulla soddisfazione del cliente.
Dai Valori ai Principi
Per comprendere appieno l’essenza dell’Agile Manifesto, abbiamo approfondito i quattro valori fondamentali, che riflettono la nuova filosofia di sviluppo:
1.Individui e interazioni più che processi e strumenti.
Ovvero l’importanza di stabilire relazioni solide tra i membri del team mettere il valore umano al centro di ogni progetto. Significa riconoscere che le persone sono l’elemento chiave del successo. La comunicazione chiara è un pilastro fondamentale: consente di superare ostacoli, risolvere conflitti e favorire la condivisione aperta delle idee. Strumenti e metodologie sono importanti, ma sono le persone e le loro interazioni a guidare il successo di un progetto.
2.Software funzionante più che documentazione esaustiva.
Ovvero l’importanza di concentrarsi sulla consegna continua di software funzionante. Il valore primario di un progetto risiede nella sua implementazione pratica e nella risoluzione di problemi reali. Un approccio che favorisce un ciclo di feedback rapido. La documentazione è molto importante ma a differenza del ruolo formale che poteva avere nei vecchi progetti, ora diventava funzionale e di supporto al processo di sviluppo.
3.Collaborazione con il cliente più che negoziazione di contratti.
Ovvero l’enfasi sulla partecipazione attiva, e da subito del cliente, sulla necessità del suo coinvolgimento in ogni fase del progetto. Una collaborazione che facilita la creazione di soluzioni che non solo soddisfano i requisiti del cliente ma superano le sue aspettative.
- Risposta al cambiamento più che seguire un piano.
Ovvero l’importanza della flessibilità e dell’adattabilità ai cambiamenti rispetto alla rigidità di un piano immutabile. Invece di essere rigidamente vincolati a un piano iniziale, la disponibilità a recepire variazioni di contesto e l’apertura al cambiamento devono essere intese come l’opportunità di migliorare e di “centrare” meglio il vero obiettivo.
I 12 Principi
1.Soddisfare il cliente attraverso la consegna tempestiva e continua di software di valore.
- Concentrarsi sui problemi dei clienti.
- Realizzare POC, MVP, Mockup
- Promuovendo una cultura dell’apprendimento e dell’interazione
2.Accogliere i cambiamenti nei requisiti, anche nelle fasi avanzate dello sviluppo.
- Darsi obiettivi tattici ridotti e frequenti
- Non stupirsi se le cose cambiano.
- Favorire la capacità di adattamento del team.
- Abituarsi alla scoperta continua
3.Consegnare frequentemente software funzionante, con preferenza per periodi brevi.
- Procedere per piccoli passi progressivi
- Effettuando regolarmente il deploy di nuovi componenti
4.Collaborare con i clienti per trasformare i requisiti in soluzioni efficaci.
- Coinvolgere gli stakeholders del progetto alle riunioni del team.
- Rendere accessibili gli artefatti della pianificazione
- Utilizzare canali e strumenti aperti
5.Costruire progetti intorno ad individui motivati, fornendo loro l’ambiente e il supporto necessario.
- Rendere il lavoro divertente (qualunque cosa significhi per il proprio team).
- Trattare le persone coinvolte come individui e conoscerle personalmente.
- Festeggiare le vittorie, grandi e piccole.
- Costruire una visione convincente del prodotto/progetto
6.Utilizzare il dialogo diretto come metodo principale di comunicazione.
- Attivare la videocamera durante le chiamate virtuali.
- Incontrarsi anche di persona.
- Telefonare per discutere di qualcosa oltre allo scambio di messaggi
7.Misurare il progresso principalmente attraverso software funzionante.
- Dare la priorità alla realizzazione di soluzioni che aiutino subito i clienti.
8.Mantenere un ritmo costante di lavoro sostenibile per gli sviluppatori.
- Trattare le emergenze come tali
- Coordinare stakeholders e team per raggiungere il “ritmo” di lavoro giusto
- Il ritmo di lavoro è “giusto” quando è sostenibile e favorisce le condizioni per lavorare bene
9.Dare priorità alla qualità del lavoro attraverso la progettazione eccellente e la cura continua.
- Promuovere una cultura in cui i membri del team siano incoraggiati a mantenere implementazioni di qualità e sostenibili per un’”agilità” a lungo termine.
10.Semplicità, o l’arte di massimizzare la quantità di lavoro non fatto, è essenziale.
- Comprendere nel profondo il senso e la visione di ciò che si sta facendo.
- Capire cosa è veramente necessario.
- Privilegiare la soluzione più semplice a un problema.
11.Le squadre autoorganizzate possono produrre risultati migliori e più duraturi.
- Creare team motivati e responsabilizzati
- Creare team interfunzionali per ridurre al minimo le dipendenze.
- Riflettere sulla misurazione delle attività dei team sui comportamenti motivanti.
12.Riflessione periodica su come essere più efficienti
-
- Eseguire un monitoraggio periodico finalizzato al perfezionamento dell’approccio.
Un futuro agile
L’Agile Manifesto ha avuto un impatto significativo sullo sviluppo del software, e non solo.
Ha spianato la strada all’adozione di metodologie agili che promuovono la flessibilità, la comunicazione aperta e il miglioramento continuo.
Ha ispirato una cultura di adattamento rapido ai cambiamenti e di coinvolgimento diretto dei clienti, contribuendo a ridurre rischi e sprechi.
L’Agile Manifesto è quantomai moderno, il futuro è Agile!