Modelul în spirală este o filozofie de proiectare software care, în loc să fie un proces liniar, este un proces în patru pași care se repetă continuu până când software-ul este terminat. În prima etapă a modelului în spirală, dezvoltatorii discută obiectivele. După aceasta, dezvoltatorii găsesc metode pentru a îndeplini obiectivele în cel mai rapid și mai sigur mod. Când dezvoltatorii știu ce fac, apoi efectuează programarea reală pentru a pune caracteristici în software. Când acest proces este încheiat, clientului i se arată software-ul pentru acceptarea sau respingerea modificărilor.
Planificarea este primul pas al unui model în spirală și începe înainte ca orice programare să fie efectuată. În acest moment, dezvoltatorii discută despre caracteristicile care trebuie adăugate la software. De exemplu, dacă programul este creat pentru colaborarea în grup, atunci dezvoltatorii pot discuta despre necesitatea unei interfețe de grup care să faciliteze utilizarea simultană a programului de către mulți oameni. Dezvoltatorii discută doar caracteristicile necesare, fără a discuta cum să le creeze.
Când dezvoltatorii știu ce caracteristici sunt necesare, ei încep apoi să discute modalități de a le completa. În această etapă a modelului în spirală, dezvoltatorii vor discuta despre diferite practici și metode de programare pentru finalizarea sarcinii. Deși pot exista multe modalități de a adăuga funcții, dezvoltatorii o vor alege adesea pe cea care este cel mai rapid de realizat și procesat. Siguranța poate fi, de asemenea, o problemă, deoarece dezvoltatorii nu doresc ca programul să se blocheze în timpul utilizării.
După ce o metodă este selectată, dezvoltatorii vor începe să programeze caracteristicile. Această programare va merge conform metodei alese în a doua fază și nu va fi modificată decât dacă apar probleme majore. Spre deosebire de celelalte două porțiuni ale modelului în spirală, există foarte puține discuții aici.
Odată cu finalizarea caracteristicilor discutate, clientul va fi contactat pentru a încerca software-ul în starea sa actuală. Software-ul rareori va fi complet în acest moment, iar acest pas este mai mult pentru testarea caracteristicilor programate decât pentru a pretinde că este făcut. Dacă software-ul nu este creat pentru un anumit client, atunci clienții potențiali pot fi chemați să încerce programul. Indiferent dacă clientul acceptă sau neagă caracteristicile, modelul în spirală se întoarce la primul pas – planificarea – în care funcțiile noi sunt discutate sau refuzate și caracteristicile sunt fixate. Aceasta va continua în secvență până când software-ul este gata pentru distribuție sau completat conform specificațiilor clientului.