Agile nasce della necessità di un’alternativa ai processi “pesanti” di sviluppo software, basati su documentazione e pianificazione massiva, con lo scopo di scoprire modi migliori di creare software. A distanza di anni possiamo anche considerare Agile maturo tale da essere anche applicato a contesti non IT e quindi possiamo parlare non solo di software ma di soluzioni.
In generale, Agile è un termine ombrello, pensato per descrivere un modo di lavorare collaborativo e che Arie Van Bennekum definisce come “Buonsenso”. La collaborazione è sia verso gli stakeholder interni (es. il team di sviluppo) che esterni (e.s. cliente/committente). Agile si fonda sui valori espressi nel Manifesto e dai Principi sottostanti. Da valori e principi derivano quindi diversi framework (es. DSDM®, Scrum, eXtreme Programming, ecc..).
Il Manifesto Agile
Gli individui e le interazioni più che i processi e gli strumenti
Il software funzionante più che la documentazione esaustiva
La collaborazione col cliente più che la negoziazione dei contratti
Rispondere al cambiamento più che seguire un piano
Il Manifesto non si ferma qui ma si conclude con:
Ovvero, fermo restando il valore delle voci a destra, consideriamo più importanti le voci a sinistra.
L’interpretazione del Manifesto Agile
Questa ultima frase è utilissima per l’interpretazione di tali valori. In Agile infatti Abbracciamo la documentazione, ma non centinaia di pagine che nessuno gestisce e in ‘tomi’ difficilmente utilizzabili”, e Facciamo la pianificazione, ma ne riconosciamo i limiti in un ambiente turbolento, abbracciando i cambiamenti.
I Framework Agili
Ogni framework interpreta e “fa suoi” i valori di Agile tramite diverse prassi, tecniche, strutture e modelli organizzativi, elementi filosofici e principi. Alcuni framework sono predisposti per integrarsi con gli altri e anche in contesti più tradizionali mentre altri impongono un modello specifico a tutta l’organizzazione. E’ importante notare che ogni framework ha un ambito e un contesto specifico in particolare se pensiamo ai livelli di gestione come in PRINCE2® (Direzione, Gestione, Consegna) o tecniche precise e che Agile non è un Framework, ma un modo di gestire prodotti/progetti.