C'è una dimostrazione che ho visto che è un'analogia abbastanza buona dei vantaggi di Agile rispetto ai metodi più tradizionali. È basato sul gioco Battleship. Tu e l'altro giocatore sedete alla normale griglia di Battleship. Entrambi avete 20 colpi, ognuno dei quali costa $ 5.000 per una spesa iniziale totale di 100.000. Ecco il trucco; devi pianificare TUTTI i tuoi colpi prima di sparare uno solo. Il tuo avversario sparerà i suoi colpi "normalmente"; fai un tentativo, guarda cosa succede, fai un altro colpo.
Alla fine di 20 colpi, indovina chi ha segnato più colpi?
L'analogia si traduce in Agile vs Waterfall in modo abbastanza pulito; In Agile, puoi prendere in considerazione la somma totale di tutto ciò che hai già fatto in considerazione quando pianifichi ciò che farai dopo. Avrai un'idea di base delle aree che saranno difficili e le aree che saranno facili in base alle difficoltà o alla mancanza di difficoltà che hai già sperimentato. Hai anche ricevuto feedback dal tuo cliente in blocchi più piccoli, affermando che gli è piaciuto o non gli è piaciuto, e sono in grado di incorporare rapidamente queste conoscenze, senza aver costruito un sacco di codice aggiuntivo su qualcosa che il cliente dice che è sbagliato .
Nelle tradizionali metodologie Waterfall, l'intero sistema e il programma di sviluppo sono pianificati prima che inizi la codifica. Questo è l'approccio "pianifica tutti i colpi prima di sparare"; potresti essere in grado di fornire esattamente ciò che il cliente ha chiesto, ma potrebbero dargli un'occhiata e dire "non è quello di cui abbiamo bisogno". Sì, hai i tuoi soldi perché li hai consegnati secondo i termini del contratto, ma i tuoi sviluppatori hanno perso tempo, il tuo cliente ha sprecato i loro soldi e nessuno dei due è soddisfatto del risultato. Agile è progettato per aiutare in questo modo, consentendo ai requisiti del progetto di cambiare mentre è in corso lo sviluppo. Qualunque cosa tu non abbia ancora fatto è aperta a cambiare; tutto ciò che hai già fatto può anche cambiare, aggiungendo altre storie al backlog incorporando le modifiche al prodotto corrente.
Inoltre, poiché il cliente deve decidere in primo luogo su cosa si lavora, e con te distribuire piccoli pezzi di lavoro completato più spesso, il cliente potrebbe concepibilmente avere un sistema che può usare prima. Questo è il ROI visibile per il tuo cliente, che di solito rende il cliente più disposto ad acquistare in questo processo di sviluppo più coinvolto.