C'è un malinteso qui: Agile non incoraggia i requisiti del progetto a cambiare. Permette invece di cambiare senza sprecare lavoro o sacrificare importanti aree di sviluppo.
Ci sono quattro vincoli fondamentali per qualsiasi progetto di ingegneria; portata, costo, tempo e qualità. Waterfall presume che questi saranno statici. Questa è un'ipotesi errata; uno o più di questi cambiano SEMPRE. Scorrimento di portata, budget ridotti e altre "incognite sconosciute" interferiscono SEMPRE con un progetto, modificando i vincoli. Waterfall non lo prevede, quindi quando succede, il progetto cambia in modo indesiderato; funzioni importanti che non sono ancora state aggiunte vanno via, o vengono fatte rapidamente, o il rilascio deve essere respinto o costa palloncini mentre il PM lancia denaro ai nuovi sviluppatori per entrare e aiutare a fare tutto nel modo giusto.
Agile, al contrario, consente ai vincoli di cambiare, e in realtà lo prevede. Lo fa facendo lavoro in piccoli pezzi utilizzabili, in base alle priorità del proprietario, e quindi i pezzi sono idealmente immediatamente utili al proprietario del progetto. Riduce quindi l'esposizione all'ignoto non elaborando grandi progetti in un lasso di tempo in cui gli incogniti sono grandi. Se la sequenza temporale cambia, i team possono essere aggiunti o le funzionalità meno importanti "rimosse dal campo di applicazione" e il sistema che il team ha già creato non viene influenzato.
Fornisce inoltre migliori stime del tempo e dei costi necessari per produrre l'ambito dato con la qualità richiesta. Le persone sono notoriamente cattive nella stima dei grandi lavori; ci vuole MOLTA esperienza e MOLTO più calcolo iniziale, per farlo correttamente. Al contrario, le persone sono generalmente buoni giudici di ciò che possono fare in un giorno o una settimana o due. Ciò produce rapidamente uno stato stazionario in cui è possibile estrapolare il tempo e il costo del lavoro da svolgere in base al ritmo storico, con una buona dose di precisione.
Per quanto riguarda la definizione degli endpoint, hai ragione; un progetto Agile PU CAN andare avanti per sempre. Tuttavia, così può fare il tradizionale SLDC; il cliente torna spesso con più soldi e una lista dei desideri di aggiornamenti. La differenza è che non esiste una linea chiara tra "analisi", "progettazione", "sviluppo" e "manutenzione" quando si guarda al progetto nel suo insieme; succede tutto mattone per mattone, sprint per sprint. Se in qualsiasi momento il proprietario desidera chiamare il progetto "completato", può farlo e avrà la somma totale dei "mattoni" per i quali ha pagato un solido "muro"; potrebbe non essere alto o estendersi per quanto pianificato inizialmente, ma è saldamente in atto, fa il lavoro e può essere aggiunto in un secondo momento con un minimo di abbattimento.