Att möta sina kunders behov och leva upp till deras förväntningar är det huvudsakliga målet inom de flesta typer av projekt.
Därtill så vill man kunna skapa ett värde för kunden och se till så att projektet följer kundens krav så gott det går så tidigt som möjligt under produktionens gång.
För att det ska vara möjligt så är det viktigt att teamet som arbetar med kundens beställning är lyhört, och arbetar med en både agil och iterativ metod.
Ordet iterativ betyder upprepande, och i grunden så innebär en iterativ process att man upprepar en sekvens eller en cykel av processen om och om igen för att nå det önskade resultatet.
Den iterativa processen bör vara så konvergerande som möjligt, vilket innebär att man kommer närmre och närmre den önskade slutprodukten för varje upprepad cykel.
När ett team följer en iterativ process så innebär det att man kontinuerligt under arbetets gång fokuserar på att förbättra sin produkt eller sin design.
Det betyder att man ständigt testar sin produkt, eller sin prototyp vilket är förstadiet till en färdig produkt, för att sedan kunna utvärdera produktens styrkor och svagheter och identifiera möjligheter till förbättring.
Den här texten reder ut vad en iterativ process är, hur den går till och hur den kan hjälpa till att öka kvaliteten på ens arbete.
Vad är en iterativ process?
Den iterativa processen är en metod som designers, utvecklare, lärare och andra yrkesroller och branscher använder sig av för att på så sätt se till så att man hela tiden arbetar för att förbättra sin design eller sin produkt. Man brukar ta fram en prototyp tidigt under arbetets gång som man kan testa, modifiera och sedan testa den modifierade prototypen.
Den här cykeln av handlingar upprepar man tills man når en tillräckligt bra lösning eller tills man skapat den exakta versionen av produkten som kunden beställde. Inom till exempel matematik och forskning av olika slag så hjälper den iterativa processen forskare och matematiker att nå ett slutgiltigt svar på sin frågeställning.
Den iterativa processen kan också användas för att kontinuerligt förbättra ett visst koncept, programvara eller annan typ av fysisk produkt. Målet med iterationen är således att komma närmre sin lösning, sitt svar eller annan upptäckt med varje enskild repetition. Slutet av varje iteration blir början på nästa runda. Ett tydligt exempel på den iterativa processen är en mobiltelefon från något av de stora företagen. Genom att följa en iterativ process så ser företagen till att ständigt uppdatera sina modeller med nya funktioner och förbättringar, och tar bort eventuella problem som de föregående modellerna drogs med.
Den iterativa processen som metod används över hela världen och inom flera olika industrier. De flesta projekt som redan använder sig av en agil approach brukar också applicera den iterativa processen på sitt arbete, och förbättrar därmed sin produkt för varje sprint vilka cyklerna kallas inom de agila metoderna kallas.
Så fungerar den iterativa processen
På den mest grundläggande nivån så förlitar sig den iterativa processen på en kontinuerlig cykel av planerande, analys, testande och utvärdering. Till skillnad från exempelvis en så kallad vattenfalls-metod så startar den iterativa processen alltid med planering och insamling av alla krav som finns på slutprodukten. Sedan följer den första cykeln och iterationen, vilken sedan modifieras genom exempelvis trial and error. När den iterationen är avslutad så ligger den till grund för nästa iteration och fortsatt utveckling av produkten. Den takt som arbetet följer beror på hur effektivt teamet är när det jobbar sig igenom de olika cyklerna.
Här beskrivs de fem grundläggande stegen av en iterativ process:
1. Planering och insamling av krav
I det första steget så ritar man upp en karta över de primära kraven som kunden eller uppdragsgivaren har på slutprodukten. Man samlar också in all relevant dokumentation som finns för projektet i fråga, och tar fram en plan och tidslinje för den första iterativa cykeln.
2. Analys och design
I det här steget så fastställer man alla behoven som finns för arbetet och produkten, och man fastställer också vilka databaser och andra modeller som man ska använda sig av, samt vilka tekniska krav det finns baserat på projektplanen. Man skapar en struktur för arbetet som gör alla inblandade aktörer och parter nöjda.
3. Implementering
Under implementeringen så utvecklar man den funktionalitet och design som krävs för att möta projektets målsättningar och kundens behov.
4. Test
I det fjärde steget så identifierar man eventuella problem, samt var i processen eller i designen av produkten som problemet finns. När man testar produkten så gör man det i relation till de förväntningar som finns på produkten. Relevanta aktörer, användare och produkttestare får alla yttra sig i frågan.
5. Utvärdering
Slutligen så jämför man iterationens resultat med de krav och förväntningar som finns på produkten.
Efter att man har gått igenom iterationens alla fem steg så är det dags att gå vidare till nästa cykel. Enligt den iterativa processen så återvänder man då till steg nummer ett, och börjar på sätt och vis om från början. Skillnaden är att man i nästa runda har bättre koll på vad som fungerar bra och vad som fungerar dåligt med produkten, så att man kan göra de modifieringar som tar en närmre målbilden av produkten. Man bör alltid ägna tid och fokus åt att identifiera vad man lärde sig i den föregående iterationen, så att man kan applicera den kunskapen i den kommande cykeln.
Iterativt och inkrementellt
Ibland så används de två begreppen iterativt och inkrementellt synonymt när man pratar om processer och metoder, men det finns viktiga skillnader mellan de två approacherna. Medan den iterativa utvecklingen av en process grundar sig i en serie av repetitiva cykler där man undersöker och förbättrar en produkt baserat på den feedback som man får av användare och andra berörda parter, så ser en inkrementell utveckling till så att man inte gör alla modifieringar och förbättringar av produkten parallellt. Inkrementell betyder att någonting sker stegvis, och i det här sammanhanget så innebär det att man skapar inkrement, det vill säga delar eller bitar, av en hel produkt eller ett helt system.
Den inkrementella processen går till som så att man på ett metodiskt och stegvis sätt lägger in nya lager av funktioner eller andra typer av modifieringar med varje iteration. Man kan också fokusera på att utveckla en del av produkten i taget, till exempel vid olika tidpunkter eller med olika hastigheter. Många projekt brukar använda sig av både den iterativa och den inkrementella metoden. Scrum som är en agil metod är ett exempel på en process som använder sig av båda typerna.
Scrum är iterativ eftersom att den förfinar sin produkt i varje enskild cykel, och den arbetar inkrementellt eftersom att den kontinuerligt levererar delar av arbetet i form av en prototyp eller delprojekt under hela arbetets gång. För att vara säker på att man arbetar så agilt som möjligt så bör man ha både en iterativ och en inkrementell arbetsmetod. En kombination av en iterativ och en inkrementell approach gör att man skapar ett arbetssätt där man fokuserar på att skapa flera olika typer av funktioner och förbättringar samtidigt, och på samma gång ser till att kunna leverera en del av projektet i slutet av varje cykel, nämligen ett inkrement. Det är så man ser till att kunna få feedback från relevanta och berörda parter så tidigt som möjligt i processen.
Därför är den iterativa processen så viktig och användbar
Den iterativa modellen utvecklades framför allt som ett alternativ till den mer traditionella och linjära vattenfalls-approachen. En vattenfalls-metod består av en given sekvens av steg som leder en fram till ett slutresultat. Metoden är bland annat bristfällig när det kommer till att snabbt reagera och svara på förändringar på exempelvis marknaden i form av behov och krav, eller produktfel. En iterativ approach gör att designers och utvecklare kan vara mer flexibla för att på så sätt kunna inkorporera förbättringar snabbare.
NASA var tidiga med att använda sig av den iterativa processen redan under 1960-talet och har sedan dess inkorporerat en iterativ metod i de flesta av sina projekt, så som till exempel Project Mercury och the Space Shuttle Project. NASA använde också en iterativ process när de tillsammans med USAs flygvapen utvecklade nya flygplan.
Sedan NASA adopterade den iterativa metoden som en viktig byggsten i sitt arbetssätt så har metoden spridits till flertalet olika industrier. På 1970-talet så började IBM att använda den iterativa processen i utvecklingen och designen av sina datorsystem. Idag är metoden vanlig inom allt ifrån design, utbildning och marknadsföring till teknik och utveckling av programvara.
Fördelar med iterativ process
Den iterativa processen ser till så att man kan förfina och revidera sin produkt så snabbt och tidigt som möjligt, vilket är särskilt effektivt och viktigt i de fall då man redan har en initial version av sin produkt men man fortfarande behöver identifiera och utveckla detaljerade funktioner och egenskaper. Den iterativa approachen utgår ifrån att man inte redan har alla svaren på sina frågor, eller att miljön för ens produkt eller kundens behov kommer att förändras under tiden som man utvecklar sin produkt. På så sätt hjälper den iterativa metoden sin användare att planera för framtida förändringar samtidigt som man levererar en produkt som ligger så nära kundens förväntningar idag som möjligt. Här är några mer specifika fördelar med en iterativ process:
- Metoden är effektiv och tillåter en att bygga en produkt steg för steg, istället för att behöva börja om från början om en eller flera av omständigheterna i projektet skulle förändras. Dessutom så brukar arbetsbördan inom teamet spridas ut mer effektivt över projektets olika stadier.
- Projektet blir mer överskådligt och tidsmässigt bättre. Den första iterationen ser till så att man utvecklar produktens primära och mest prioriterade funktionalitet. Varje iteration är sedan baserad på de förbättringsmöjligheter som man identifierade i den föregående cykeln, och fortsatt testande skapar en klar och tydlig bild av hur projektet går och var man befinner sig i processen. Resultaten och framstegen som man gör är tydliga och frekventa, eftersom varje iteration också utgör en milstolpe i projektet.
- Metoden är kostnadseffektiv, eftersom att eventuella ändringar som man behöver göra är billigare och enklare ju tidigare i skapandet av produkten det sker.
- Metoden fokuserar på och stärker samarbeten, när man kontinuerligt vänder sig till kunden eller annan berörd part för att ta del av deras åsikter och feedback. Den iterativa processen tillåter en att regelbundet presentera nya resultat och framsteg.
- Metoden förbättrar användarvänligheten av produkten, genom kontinuerligt testande och utvärdering.
- Metoden minskar eller eliminerar förvirring, eftersom att man snabbt och tidigt kan upptäcka defekter eller brister när det kommer till krav, design, koder med mera inom varje iteration. På så sätt undviker man missförstånd.
- Det blir lättare att hantera risker. I den iterativa processen så tacklar man de delar av projektet som räknas som högrisk först, och under varje iteration kan man identifiera och hantera nya risker som dyker upp.
- Metoden skapar kontinuerlig förbättring. Varje iteration tillåter teamet att enkelt inkorporera de lärdomar som de har dragit hittills under projektets gång, så att man hela tiden man förbättra och utveckla både arbetssättet och produkten.
Exempel på användningsområden för iterativa processer
Den iterativa processen används som sagt inom de flesta typer av branscher och industrier, eftersom att metoden kan göra i princip vilken typ av projekt som helst mer effektivt, billigare och flexibelt. Här följer några mer konkreta beskrivningar av hur iterativa processer används i praktiken. I en del av situationerna så är de iterativa processerna ett aktivt val av metod, medan det i andra är något man för det mesta inte är direkt medveten om.
1. Sociala processer
Olika sorters sociala processer kan med fördel vara iterativa, så som förhandlingar och jurybeslut.
2. Intuitiva processer
Det här är den sortens process där man inser sitt slutmål under processens gång. Det kan till exempel vara en student som provar många olika kurser för att med åren sakta börja fokusera på det ämne som intresserar en mest eller som det visar sig att man har en särskild talang för.
3. Feedback loops
En feedback loop är ett system eller en situation där förändring skapar eller driver feedback som i sin tur kan användas för att utvärdera förändringen i fråga.
4. Trial and error
Det här är det engelska namnet på den välkända process där man provar någonting nytt som antingen kan gå bra eller misslyckas, och lär man sig från sitt misstag eller sin framgång. Det är ofta snarare enklare experiment än hela processer.
5. Hemsidor så som Wikipedia
Hemsidor så som Wikipedia tillåter sina användare att lägga till, uppdatera och förbättra dess innehåll. Eftersom att hemsidan aldrig kan betraktas som färdig utan istället kontinuerligt utvecklas med hjälp av ny information så räknas det som en iterativ process.
6. Gränssnittet människa-dator
När datorn först kom till så hade den vanliga människan stora svårigheter med att förstå sig på hur man skulle använda den. Genom att använda sig av en iterativ metod så kunde programmerare och designers samla in feedback, modifiera och justera gränssnittet baserat på den feedback som de samlade in, och sedan släppa en ny version. Den här sortens iterativa förbättringar fortsätter än idag då programvaror och gränssnitt fortsätter att utvecklas baserat på användarnas kritik och feedback. Det här gäller också andra artiklar, så som smartphones och surfplattor.
7. Projektledning
Den iterativa processen hjälper organisationer och projektledare att hantera den osäkerhet och risk som ofta är inneboende i många projekt. Istället för att anta att alla krav, behov och förväntningar kan identifieras innan ett projekt har börjat (som i en vattenfall-metod) så antar den iterativa approachen att dessa faktorer kommer att förändras under projektets gång. Genom att skapa en produkt steg för steg och i mindre delar som förfinas och anpassas i efterföljande cykler så är den iterativa processen snabb på att svara på oförutsägbara händelser och situationer som kan uppstå i ett projekt.
8. Utbildning
Den iterativa metoden fokuserar på studenters lärande från de misstag som de gör när de försöker lösa olika problem. Studenter reflekterar, förfinar och justerar sitt arbete som en del av inlärningsprocessen. Till skillnad från exempelvis programmering och matte så fokuserar utbildningsrelaterade iterativa processer inte på en enda rätt lösning. Istället så skapar den iterativa metoden i utbildning en kultur som främjar en kontinuerlig inlärningscykel.
Sammanfattning om iterativ process
Sedan NASA började använda sig av den iterativa processen på 1960-talet så har metoden spridit sig till nästan alla branscher och är idag en vanlig metod inom de flesta sorters projekt. Metoden syftar till att utveckla och skapa en produkt eller hantera ett projekt steg för steg så att man hela tiden har möjlighet att förbättra och använda sig av feedback från relevanta parter. Den iterativa processen är uppbyggd av iterationer, det vill säga cykler, som upprepas ända till dess att man lyckats skapa en produkt som är i linje med uppdragsgivarens krav och förväntningar.
Slutet på varje cykel blir början på nästa cykel, där man tar med sig sina lärdomar och på så sätt kan förfina och anpassa sin produkt så att den blir ännu bättre.
Den iterativa processen håller kostnaderna nere jämfört med de mer traditionella och linjära metoderna, genom att i ett tidigare skede upptäcka fel och misstag på sin prototyp när de är enklare och billigare att rätta till.