Recentemente ho visto molti post che affermano che uno dei motivi principali per cui viene utilizzato Agile è perché i clienti cambiano spesso i requisiti.
Tuttavia, supponiamo che i client non cambino spesso i requisiti . In effetti, i clienti hanno requisiti fissi anche se potrebbero essere un po 'vaghi (ma nulla di irragionevolmente vago), ma utilizzo comunque Agile.
Il motivo per cui utilizzo Agile è perché il software è abbastanza complesso da contenere dettagli, problemi che non riconoscerei fino a quando non li avrò effettivamente affrontati. Potrei adottare un approccio di pianificazione pesante su larga scala come la cascata, ma poi ci vorrebbero alcuni mesi per finalizzare tutto il design di alto livello e le firme di codifica di basso livello. Tuttavia, esiste un progetto architettonico molto specifico e fisso per il sistema.
La mia domanda è: sarebbe considerato cattivo, codifica da cowboy, anti-pattern, ecc.? Dobbiamo utilizzare la cascata e pianificare il più possibile nei minimi dettagli prima di iniziare a programmare quando i requisiti sono stabili invece di questa mentalità "facciamolo" in Agile?
EDIT: Il punto principale qui è che: NON POSSIAMO dare la colpa ai clienti per i requisiti mutevoli. Supponiamo che i clienti ci abbiano segnalato un problema molto concreto, forniscici una lista dei desideri con dettagli molto ragionevoli e lasciaci in pace (cioè i clienti hanno le loro cose produttive da fare, non correggerli più. Dimostrali solo vicino al termina quando hai un prototipo funzionante minimo). Sarebbe sbagliato usare Agile in questo scenario?