Vad betyder egentligen att jobba agilt?

maj 15, 2013|Tips och strategier|0 comments

Agil är ett ord man stöter på i många olika sammanhang numera. Det finns i allt från HR-kretsar till innehållsstrategi för en webbplats. Men vad betyder ordet egentligen och vad är ursprunget?

Hund på en plankaOrdet agil betyder lättrörlig och är besläktat med det engelska ordet agility. Om du har hund har du säkert hört talas om agility som hundsporten där hunden tar sig igenom en hinderbana. Och det är inte så långt ifrån agil webbutveckling som man kan tro. Agility handlar nämligen om förmågan att snabbt anpassa sig till förändring. Tänk dig när hunden lyckas balansera på en planka som tippar över när hunden springer över den. Precis så jobbar man med agil webbutveckling, man anpassar sig till förändrade krav under projektet.

Agil systemutveckling introduceras som koncept 2001 då ett gäng amerikaner publicerade ett manifest för hur man ska jobba med systemutveckling som konsult:

Vi finner bättre sätt att utveckla programvara genom att utveckla själva och hjälpa andra att utveckla. Genom detta arbete har vi kommit att värdesätta:

Individer och interaktioner framför processer och verktyg.
Fungerande programvara framför omfattande dokumentation.
Kundsamarbete framför kontraktsförhandling.
Anpassning till förändring framför att följa en plan.

Det vill säga, medan det finns värde i punkterna till höger, värdesätter vi punkterna till vänster mer.

Agil systemutveckling var en reaktion mot den traditionella vattenfallsmodellen inom projektmetodiken. Vattenfallsmodellen är en systemutvecklingsprocess där utvecklingen flödar som ett vattenfall nedåt genom olika faser: förberedelse, etablering, analys, design, konstruktion, test, produktionssättning och underhåll. Nackdelen med vattenfallsmodellen är bland annat att de krav man ställer i början av projektet kanske visar sig vara helt fel i slutet av projektet. Resultatet kan bli att man bygger en webbplats med funktioner som inga användare egentligen efterfrågar.

När man pratar om agilt arbetssätt brukar man även prata om ord som inkrementellt och iterativt. Svåra ord kan jag tycka för något som är väldigt självklart. Inkrementellt betyder att man utvecklar små delar som man lägger till slutprodukten under hela processen. Iterativt betyder att man jobbar i cykler för att förbättra exempelvis en funktion genom prototyp, test, analys och förbättring i så många cykler som krävs för att funktionen ska bli så bra som beställaren vill.

Fördelen med ett agilt arbetssätt tycker jag främst är att man är öppen för förändrade krav under utvecklingens gång. Ofta så ger förstudien inte alla svar och man kan komma på förbättringar under arbetets gång som gör produkten bättre, vilket man hade missat med en traditionell vattenfallsmetodik där allt specificerats i början av projektet.

Nackdelen med ett agilt arbetssätt är svårigheten att bedöma och planera tidsåtgång för den färdiga produkten. Med ständigt nya krav ökar också utvecklingstiden. Det gäller att ha förmågan att kunna prioritera vilka funktioner som är lämpliga att förädla och vilka funktioner som bara kan specificeras. Risken är annars att projektet drar ut på tiden och att alla funktioner inte blir färdiga till den skarpa lanseringen.

Agila projektmetoder som Scrum löser detta genom att introducera sprintplanering som ett viktigt styrmedel för att tämja den oändliga förbättringsivern som ett agilt tankesätt för med sig. Om du inte är bekant med Scrum kan jag rekommendera denna video som förklarar Scrum på under 10 minuter:

Share this Post: