Igår berättade jag hur jag lärde mig nyttan av att använda sig av en iterativ utvecklingsmodell. Det är nämligen så det kallas med ett fint akademiskt ord. Man bygger en enkel variant av systemet och sen förbättrar man den tills alla funktioner finns på plats.
Fördelar med en iterativ utvecklingsmodell:
– Missförstånd reds ut tidigt
– Designfel upptäcks tidigt
– Man får tidigt feedback från användare
– Man tvingas fokusera på kritiska funktioner
– Jämnare arbetsbelastning för testpersonal
– Eftersom man lär sig nya saker kan man kontinuerligt förbättra processen
– Intressenter får hela tiden kvitto på att projektet rör sig framåt.
– Man minskar risken att allt skiter sig precis i slutet av utvecklingen.
Den sista fördelen är den största anledningen till att iterativ utveckling används. När investerare ska besluta om ett projekt skall genomföras eller inte är nämligen riskbedömning väldigt viktig. Om risken för misslyckande är för hög blir det inget projekt. Att välja en riskminskande utvecklingsmodell är ett sätt för initiativtagaren att lättare övertyga de som sitter på pengarna att projektet ska genomföras. Om det senare visar sig att projektet kommer att misslyckas kan man dra i bromsen innan man förlorat för mycket pengar.
Det finns många olika iterativa utvecklingsmodeller. Den vanligaste är spiralmodellen som togs fram på 80-talet för att minska riskerna vid utveckling av mjukvara. Den har sedan dess blivit så populär inom många områden att universiteten idag lär ut den som en generell projektmodell.
Att börja enkelt och sedan bygga på med funktioner efter behov är alltså något du kan applicera även på annat än mjukvaruutveckling. Kamprad började med att sälja pennor. Sedan la han till saker som han märkte att folk ville köpa. Det fungerade för honom, det kan fungera för dig.
Mer läsning: Mitt inlägg om att bygga en sak i taget. Wikipedia om Spiramodellen. En annan wiki om modellen. Och slutligen Barry Boehms artikel; ”A Spiral Model of Software Development and Enhancement” från 1988.
Hej Tore,
En metodik som jag kan rekommendera, som de helt och hållet missat på Universiteten, är Scrum. Scrum är ytterst iterativt och är en ypperlig form av projektledning. I min värld finns bara Scrum när man ska anamma en metod för applikationsutveckling.
Det som är så fint med Scrum är att man delar upp processen i delar som resulterar i en slutprodukt. Det vill säga att funktionalitet som inte är kärnfunktionalitet skalas bort i ett första skede och sedan läggs på.
Hej Kent!
Tack för tipset! I Linköping läser vi visserligen om Scrum också, men vi läser om väldigt många metoder. En hel del är man lite osäker på om de verkligen används längre (Cocomo-metoden?). Skönt att det finns folk som har nytta av metoderna i verkligheten också.
Okej, då var det bara Örebro Univ som missat hela agila approachen på systemutveckling 🙂
Eller så är det bara Linköping Univ som hänger med i utvecklingen 🙂