Why Iterative software development is better than Waterfall software development?
Perché con il metodo iterativo, uno inizia con una pianificazione minima e quindi convalida quella pianificazione rispetto a ciò di cui il cliente ha bisogno in una fase iniziale. Questo in realtà aiuta a garantire che non siamo guidati lungo la strada sbagliata. Di conseguenza, dedica meno tempo a cercare di pianificare completamente prima di iniziare, oltre a risparmiare rielaborazione del tempo in ritardo nel progetto quando questi si rivelano sbagliati.
Invece, se usiamo il metodo waterfall, dedichiamo una notevole quantità di tempo a pianificare ciò che il cliente pensa di aver bisogno, il che sarà diverso da quello di cui hanno realmente bisogno. Solo allora iniziamo a codificare, che quasi immediatamente rivela buchi in quel "esercizio di pianificazione completa" e inizia a mettere in evidenza false ipotesi nei piani. Quelli poi devono essere rielaborati prima che lo sviluppo possa procedere.
Alla fine, "completiamo" la codifica e la passiamo a testare. A quel punto si riscontrano ulteriori errori, sia nei piani che nel codice, che si traducono in una fase di rilavorazione ora molto costosa.
Finalmente lo presentiamo al cliente. "Non è quello che volevo", poi sgorga dalle loro labbra. Altri piani sono fatti. Segue più codice. Vengono eseguiti ulteriori test. Alla fine, arriviamo a qualcosa con cui il cliente può convivere (non è ancora quello che volevano veramente, ma i costi sono davvero sbalorditivi). Quindi spediamo. La prossima volta, il cliente va altrove.
Il grosso problema con la cascata è che non è mai stato concepito per essere utilizzato nella vita reale. È stato progettato come esempio di come non eseguire un progetto. Purtroppo, molte aziende hanno perso la battuta, l'hanno presa sul serio e hanno cercato di usarla. I risultati parlano da soli.