La storia e il contesto che hanno dato vita allo sviluppo software agile.
Prima dell'agile, la maggior parte del software veniva costruita usando il metodo "waterfall": raccogliere tutti i requisiti in anticipo, progettare tutto, costruire tutto, poi testare alla fine. Questo funzionava per ponti ed edifici, ma il software è diverso.
Il problema? Nel momento in cui consegnavi, i requisiti erano cambiati. Gli utenti non sapevano cosa volevano finché non lo vedevano. E trovare bug alla fine significava costose rilavorazioni.
Le statistiche erano brutali:
L'Intuizione Fondamentale
Lo sviluppo software è più simile alla ricerca scientifica che alla costruzione. Impari mentre procedi, e il piano deve adattarsi alle nuove conoscenze.
Nel 2001, diciassette sviluppatori software si incontrarono in una località sciistica nello Utah. Provenivano da background diversi—Extreme Programming, Scrum, Crystal e altri—ma condividevano una frustrazione comune verso i processi pesanti.
Ciò che crearono non era un nuovo processo. Era un insieme di valori e principi che potevano guidare qualsiasi processo. Il Manifesto Agile era intenzionalmente breve: quattro valori e dodici principi.
L'intuizione chiave: abbracciare il cambiamento come vantaggio competitivo, non combatterlo.
L'agile si basa sull'empirismo—l'idea che la conoscenza derivi dall'esperienza e dal prendere decisioni basate su ciò che viene osservato.
Tre pilastri sostengono l'empirismo:
Trasparenza — Tutti possono vedere cosa sta realmente accadendo. Nessuno stato nascosto, nessuna sorpresa.
Ispezione — Esaminare regolarmente il lavoro e come il team sta lavorando insieme.
Adattamento — Quando qualcosa non funziona, cambialo. Non aspettare il permesso.
Questo è fondamentalmente diverso dalla gestione progettuale tradizionale, che presume di poter pianificare tutto in anticipo se ci si impegna abbastanza.