Il modello a spirale è una filosofia di progettazione del software che, invece di essere un processo lineare, è un processo in quattro fasi che si ripete continuamente fino al completamento del software. Nella prima fase del modello a spirale, gli sviluppatori discutono gli obiettivi. Successivamente, gli sviluppatori trovano metodi per completare gli obiettivi nel modo più rapido e sicuro. Quando gli sviluppatori sanno cosa stanno facendo, eseguono la programmazione effettiva per inserire funzionalità nel software. Al termine di questo processo, al cliente viene mostrato il software per l’accettazione o il rifiuto delle modifiche.
La pianificazione è il primo passo di un modello a spirale e inizia prima che venga eseguita qualsiasi programmazione. A questo punto, gli sviluppatori discutono delle funzionalità che devono essere aggiunte al software. Ad esempio, se il programma è realizzato per la collaborazione di gruppo, gli sviluppatori potrebbero discutere la necessità di un’interfaccia di gruppo che renda facile l’utilizzo simultaneo del programma da parte di molte persone. Gli sviluppatori discutono solo delle funzionalità necessarie, senza discutere di come crearle.
Quando gli sviluppatori sanno quali funzionalità sono necessarie, iniziano a discutere i modi per completarle. In questa fase del modello a spirale, gli sviluppatori discuteranno diverse pratiche e metodi di programmazione per completare l’attività. Sebbene possano esserci molti modi per aggiungere le funzionalità, gli sviluppatori spesso sceglieranno quello più veloce da realizzare ed elaborare. Anche la sicurezza può essere un problema, perché gli sviluppatori non vogliono che il programma vada in crash durante l’uso.
Dopo aver selezionato un metodo, gli sviluppatori inizieranno a programmare le funzionalità. Questa programmazione andrà secondo il metodo selezionato nella seconda fase e non verrà modificata a meno che non si verifichino problemi importanti. A differenza delle altre due parti del modello a spirale, qui si discute molto poco.
Una volta terminate le funzionalità discusse, il cliente verrà contattato per provare il software nelle sue condizioni attuali. Il software raramente sarà completo a questo punto e questo passaggio serve più a testare le funzionalità programmate che a dichiarare che è stato eseguito. Se il software non è realizzato per un cliente specifico, i potenziali clienti potrebbero essere chiamati a provare il programma. Indipendentemente dal fatto che il cliente accetti o rifiuti le funzionalità, il modello a spirale torna al primo passaggio, la pianificazione, in cui le nuove funzionalità vengono discusse o negate e le funzionalità vengono corrette. Questo continuerà in sequenza fino a quando il software non sarà pronto per la distribuzione o completato secondo le specifiche del cliente.