1) De fem faserna är ”Analysera och Förstå Problemet”, ”Beskriv Lösningen”, ”Koda Lösningen”, ”Testa Programmet” och ”Dokumentera”.
För att kunna göra ett program som funkar bra så måste man först förstå vad programmet ska göra, detta görs bäst genom att analysera och förstå problemet. Ska man skriva ett program som bevisar Einsteins relativitetsteori t.ex. så kan det vara bra att veta vad hans teori går ut på, vad den betyder o.s.v. När man har förstått problemet så ska man beskriva lösningen, detta görs bäst genom att skriva en Algoritm till en lösning. En algoritm är ungefär som ett recept som förklarar stegvis vad som ska göras. Om problemet är en äppelpaj så är algoritmen till lösningen ett recept på en äppelpaj. När algoritmen är utformad så att även någon som inte är insatt kan förstå den och förhoppningsvis utföra den så lämnas den över till programmerarna vars jobb är att skriva den kod som behövs för att algoritmen ska kunna utföras. Deras jobb är alltså att koda lösningen i ett språk som datorn kan förstå, t.ex. Visual Basic eller C++. När programmet är klart så ska man testa programmet, det som görs då är att man testar att programmet fungerar som det ska och att det lämnar ifrån sig rätt värden. Man testkör med en mängd data, påhittad som riktig, och ser så att det funkar, man letar även efter buggar, stora som små. Det skulle vara rätt ödesdigert att lämna ifrån sig ett kalkylator-program som krashade om man skrev in 0 följt av 1. Den sista fasen är att dokumentera vad man gör så att programmet man skrivit blir lättförståligt för alla de som ska använda det. Dokumentationen är förmodligen den viktigaste fasen och bör inte förbises.
Även om faserna alltid staplas upp i den ordningen som är beskriven så är det absolut inget tvång att man måste gå just den här vägen, man kan hålla på med flera faser samtidigt. Och dokumentationen bör fortlöpa enda från första steget.