analisi-disegno.com
Non è certo chi sia stato il vero ideatore, ma nel 1988 compaiono una presentazione di Barry Boehm, ("A Spiral Model of Software Development and Enhancement", da cui è tratta l'immagine che segue), e il metodo Evo (evolutivo) di Tom Gilb.

La spirale parte dal centro, con un insieme di obiettivi e requisiti iniziali per il progetto. Ogni ciclo di lavorazione (o iterazione) comporta lo svolgimento di una serie di attività:
Cioè le stesse attività che, in un processo di sviluppo a cascata, sono considerate come delle fasi da svolgersi in sequenza rigida, una dopo l'altra. Nel processo iterativo, in ogni iterazione (in ogni ciclo della spirale) vengono svolte le medesime (tipologie di) attività. Sembra oneroso e poco sensato? Sembra, ma non lo è.
L'articolazione di un progetto iterativo è guidata non da una rigida seguenza di fasi predefinite, ma da una gestione sistematica dei rischi di progetto, per arrivare alla loro progressiva diminuzione.
All'inizio di un progetto di sviluppo software, i rischi sono tipicamente molto elevati. Manca la chiarezza sui requisiti, le scelte sulle tecnologie e sulla strutturazione del sistema (le scelte architetturali) sono ipotesi non ancora consolidate. In alcuni casi, sono state scelte tecnologie innovative, per le quali manca però una sufficiente esperienza nel gruppo di progetto. In altri, anche a fronte di tecnologie conosciute, esistono incertezze legate alla necessità di fare fronte a un numero di utilizzatori contemporanei molto elevato, o a volumi di dati mai gestiti in precedenza.
Ogni iterazione, in un progetto iterativo, ha lo scopo di ridurre i rischi di progetto.
Inizialmente, tramite la costruzione di prototipi. Prototipi di interazione (interfacce utente), per affrontare i rischi legati all'incertezza sui requisiti. Prototipi architetturali (realizzazione e test di aspetti infrastrutturali), per affrontare i rischi legati alla scelta delle tecnologie ed i dubbi sulla strutturazione del sistema.
Successivamente, quando i rischi principali sono stati messi sotto controllo, ogni iterazione ha lo scopo di costruire, in modo progressivo, nuove porzioni del sistema, via via integrate con le precedenti, e di verificarle con il committente e le altre parti interessate.
Viene gestito in modo sistematico il cambiamento di requisiti in corso d'opera, ed in particolare la valutazione di nuovi requisiti espressi dal committente e dalle altre parti interessate al sistema come effetto dell'uso del sistema stesso (delle sue parti già rese disponibili agli utilizzatori).
I processi di sviluppo software attuali sono tutti di natura iterativa. Qualche esempio:
Gestione sistematica e progressiva riduzione dei rischi di progetto.
Rispetto al processo di sviluppo a cascata, in generale, maggiore qualità dei prodotti, e maggiore produttività dei progetti (costi e tempi inferiori).
Nessuno, ma due punti di attenzione:
Pagina principale sui processi di sviluppo software
analisi-disegno.com , servizi e materiali per lo sviluppo dei sistemi software, a cura di Adriano Comai.