Agil: Arbetsmetod med kontinuerlig förbättring vid varje steg av processen

Om man jämnt arbetar på samma sätt så är det lätt hänt att man fastnar i gamla rutiner, och på sätt går miste om viktiga möjligheter att utvecklas och förnya sig själv eller sitt företag. Det kan också vara så att företaget och medarbetarna fungerar bra, men i jämförelse med andra arbetsplatser och organisationer så fortgår arbetet på en rätt medioker nivå.

Det kan till exempel vara så att man alltid levererar resultat och projekt precis i tid men aldrig snabbare, att kunderna och klienterna är nöjda därför att de får vad de beställt men de blir aldrig imponerade, eller att stämningen mellan kollegerna är låg. Om man upplever att företaget har stannat upp och fastnat i en oönskad situation så kan man behöva något för att ta sig ut ur den svackan och vidare för att kunna utvecklas. Man behöver byta ut sina gamla arbetsmetoder mot nya som tillåter arbetat att utvecklas.

Agil

 

När man gör ett aktivt val att förändras så är det viktigt att man väljer en metod som är bra och som därtill kan utvecklas med företaget allt eftersom att det förändras och förbättras. Företag som är i behov av sådana typer av metoder bör använda sig av en så kallad agil metod. En agil metod hjälper ett företag och ett team att arbeta med fokus och uppsyn, att vara anpassningsbart och flexibelt för att snabbt kunna svara på förändringar i miljön.

Agila metoder är ett samlingsbegrepp för en viss typ av metoder inom framför allt projektledning och utveckling av programvara, där behov, krav och lösningar utvecklas genom samarbete och självorganisering med medarbetare från flera olika avdelningar och enheter samtidigt. En kollaborativ och agil metod ser till så att arbetet fortlöper flexibelt och med många användbara infallsvinklar och perspektiv som bidrar till arbetet.

 

Agil arbetsmetod

En agil arbetsmetod brukar beskrivas som en process där en arbetsgrupp hanterar ett projekt genom att dela upp projektet i flera mindre delar, samtidigt som man inkluderar mycket samarbete och kollaboration med både varandra och med externa aktörer. Man lägger en stor mängd fokus på kontinuerlig förbättring vid varje steg av processen. En agil metod börjar generellt sett när en klient, kund eller en arbetsgivare beskriver hur en slutprodukt bör se ut, hur den kommer användas och vilket eller vilka problem som produkten kommer att lösa. På så sätt så tydliggörs vilka förväntningarna är på den arbetsgrupp som ska utveckla produkten i fråga eller som är ansvarig för att ta fram en lösning på ett visst problem. När arbetet sedan tar vid så rör sig arbetsgruppen ofta i en cyklisk process där man går igenom viktiga faser och stadier så som planering, utförande och utvärdering.

Genom att kontinuerligt utvärdera arbetet och leta efter potentiella förbättringar så ser man till att anpassa slutprodukten ända till dess att man nått den version av produkten eller lösningen som kommer kunna möta kundens eller arbetsgivarens behov och krav allra bäst. Som sagt så lägger nära samarbete och teamwork en obligatorisk, stadig och viktig grund för arbetet inom de agila metoderna både när det gäller inom och utanför själva arbetsgruppen.

I praktiken så kan ordet agil både gälla de värderingar och arbetssätt som konceptet involverar, det vill säga exempelvis samarbete och flexibilitet, men det kan också handla om specifika metoder som räknas som agila metoder. Några exempel på sådana metoder är Scrum, Kanban och Extreme Programming (XP). Oavsett så beskriver ordet agil inom världen av projektledning och utveckling av programvara ett arbete som karaktäriseras av ständig utvärdering, förbättring, hög anpassningsförmåga och flexibilitet som syftar till att bemöta kundens behov så exakt som möjligt. Eftersom att den agila metoden är bra på att dela upp projekt i mindre delar som ofta är mer hanterbara så används den här sortens metoder ofta framför allt för mer komplexa projekt där man helt enkelt måste vara adaptiv och nytänkande. Ett av syftena med agil metod är att man ska kunna arbeta så tydligt som möjligt genom hela processen och att det till en vis del ska kunna gå att mäta den framgång som man åstadkommer under processens gång. Därför så använder sig de agila metoderna av sex stycken så kallade ”deliverables” för att följa projektets utveckling och framsteg.

De 6 agila ”deliverables”

De sex stycken ”deliverables” inom de agila metoderna är:

  1. Målsättning och vision för produkten: Här skriver man ner en tydlig sammanfattning av de målsättningar som finns för produkten och visionen bakom.
  2. Metodkarta för produkten: I kartan ritar man ut alla de steg och krav som man måste genomgå och genomföra för att kunna uppnå produktens vision.
  3. Lista över projektets delar: I den här listan så skriver man ner allt det som behöver göras för att kunna slutföra projektet. Listan bör ordnas enligt hur hög prioritet de olika sakerna har och man bör se till så att man verkligen inkluderar allting som ingår i projektet.
  4. Tidslinje och plan: I tidsplanen för projektet så anger man när man kommer att vara klar och kunna leverera de olika delprodukterna och projektets slutprodukt.
  5. Sprints: Sprint är det namn på de mindre delarna som projektgruppen delar upp sitt projekt i. Varje sprint består således av en viss mängd uppgifter och arbete som måste slutföras innan man kan gå vidare till nästa sprint. I det här steget skriver man ner allt det som ingår i varje sprint, vilket inkluderar krav på produkten, mål och uppgifter. Varje sprint brukar löpa under cirka en till fyra veckors tid, och generellt så är varje sprint rätt kort och dessutom upprepande. Varje sprint bör resultera i ett utkast, prototyp eller en arbetsversion av den slutgiltiga produkten.
  6. Utveckling av produkten: Det här är arbetsprodukten och dess funktionalitet som presenteras för de externa aktörerna i slutet av varje sprint, och som potentiellt sett skulle kunna erbjudas till klienten.

Historian bakom de agila metoderna

Det som ledde fram till skapandet av de agila metoderna och filosofin bakom dem var en teknologisk kris på 1990-talet. När det kommer till tech-branschen och framför allt utvecklingen av programvara så brukar man ibland hänvisa till 90-talet som en väldigt seg och svår period för den här industrin. Branschen hade svårt att arbeta och utvecklas tillräckligt snabbt och effektivt för att kunna möta kundernas behov och efterfrågan i tid. Ofta tog det företagen flera år att svara på kundens behov, från det att ett behov uppstod på marknaden tills att en produkt eller applikation hade skapats för att möta det behovet. Det berodde framför allt på att utvecklingen av nya produkter, om det så var fysiska projektet eller mjukvaror och applikationer, följde en linjär metod istället för den cykliska agila metoden.

I praktiken så innebar det att utvecklingen av nya produkter skedde steg för steg och det var endast den slutgiltiga produkten som presenterades för kunderna. Det ledde i sin tur till att det fanns väldigt lite utrymme för flexibilitet och förbättring, eftersom att man inte kunde få någon feedback under arbetets gång. Därför var det vanligt att när produkten väl var färdig så hade kundernas behov och krav, och även de system som mjukvaran skulle appliceras inom, hunnit förändras. Ledarna inom mjukvaru-branschen började inse att man slösade både tid och pengar och man började efterfråga en ny, uppdaterad metod. År 2001 samlades 17 stycken nyckelpersoner inom branschen för att tillsammans ta fram en ny metod för att utveckla programvara. Resultatet var det så kallade Agila manifestet, som består av värderingar och principer vilka var tänkta att vägleda det fortsatta arbetet av utvecklingen av mjukvara.

Det agila manifestet

Det agila manifestet är en deklaration av fyra stycken grundvärderingar och 12 stycken principer som lägger grunden för de agila metoderna. Manifestet syftar till att belysa bättre sätt att framför allt utveckla programvara på, genom att erbjuda en tydlig och mätbar struktur och metod som uppmanar till iterativa processer, samarbete och kontinuerlig förbättring.

De fyra grundprinciperna

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

De tolv principerna

Syftet med de tolv principerna är att närmre beskriva hur de fyra stycken grundvärderingarna ska tolkas och appliceras i det dagliga arbetet när man använder sig av de agila metoderna. De tolv principerna är:

  1. Kundens tillfredsställelse är prioritet nummer ett och den säkerställs genom tidig och kontinuerlig leverans av programvaran. När man arbetar iterativt så innebär det att kunden får en chans att ge feedback på produkten, vilket gör att man kan förbättra den under arbetets gång.
  2. Man välkomnar kundens förändrade behov och krav, även om ändringarna sker sent under arbetets gång. Inom de agila metoderna så är kundens förändrade åsikter och kontinuerliga feedback betraktade som en fördel, eftersom att det i slutändan gör produkten mer konkurrenskraftig.
  3. Man bör leverera fungerande programvara ofta och regelbundet. Den version av slutprodukten som levereras till kunden med jämna mellanrum under processens och utvecklingens gång bör alltid vara fullt fungerande så att den i praktiken kan ge ett värde till kunden när de utvärderar den.
  4. Det måste finnas en etablerad relation och samarbete mellan utvecklarna och de verksamhetskunniga inom branschen under hela arbetets gång. När man har en daglig kommunikation så kan man snabbare besvara varandras frågor och tillsammans nå effektiva lösningar när problem dyker upp.
  5. Man bör stötta, lita på och motivera de som är involverade i processen. Miljön i arbetsgruppen är viktig för att individerna ska trivas och göra ett bra jobb.
  6. Kommunikation ansikte mot ansikte är alltid att föredra. Det gäller både inom själva arbetsgruppen och kommunikationen med yttre aktörer så som exempelvis kunden.
  7. Det bästa och tydligaste sättet att mäta sin framgång på är genom en fungerande programvara. Programvaran är det enda som kunden kan basera sin feedback på.
  8. Agila processer syftar till att stötta en uthållig och jämn utvecklingstakt, som kan pågå under en obegränsad tid. Det gäller när det kommer till utvecklare och sponsorer såväl som till samarbetspartners, kunder och användare.
  9. Att vara uppmärksam på tekniska detaljer och design förbättrar och förstärker den agila anpassningsförmågan. Om man gör rätt från början så riskerar man inte att slarvigt arbete kommer i kapp en längre fram i processen.
  10. Enkelhet är nyckeln.
  11. Arbetsgrupper som är självorganiserande tenderar att vara bättre på att låta bättre arkitektur och strukturer växa fram, samt krav och designs. När man själv är den som ofta utvärderar sitt arbete så är det lättare att utvecklas.
  12. Arbetsgruppen bör med jämna mellanrum reflektera över hur man kan bli mer effektiva och göra de förändringar som krävs för det.

Agila metoder

Att börja använda sig av agil metoder kan i princip vem som helst göra men det är inte bara till att hoppa rakt in i det. Utan istället så måste man först välja den metod som passar ens arbete bäst, och det finns några olika metoder att välja mellan. Scrum och Kanban är de två vanligaste metoderna men det finns också ett gäng mindre vanliga metoder som faller inom kategorin agil. Nedan följer en beskrivning av Scrum.

Scrum

Scrum är en vanlig metod för utveckling av mjukvara och programvara som använder sig av idéerna bakom det agila ramverket och manifestet. Scrum skapades av Jeff Sutherland och Ken Schwaber, två personer som också var två av de 17 individer som tog fram det agila manifestet 2001. Scrum består av fem stycken delar och värderingar, nämligen engagemang, mod, fokus, öppenhet och respekt. Målet och syftet med Scrum är att utveckla, leverera och bibehålla arbetet för att skapa komplexa produkter genom framför allt samarbete, ansvar och den iterativa processen som är så typisk för en agil metod. Det som skiljer Scrum från de resterande agila metoderna är de roller, uppgifter/aktiviteter och artefakter/deliverables som metoden byggs upp av:

Rollerna i scrum

  • Produktägare: Prouktägaren är den person som representerar de olika aktörerna och som är kundens röst i processen.
  • Utvecklingsteamet: Utvecklingsteamet består av de individer som skapar och levererar produkten i fråga, det vill säga utvecklare, programmerare, designers med flera.
  • Scrum-ledare: En så kallad Scrum Master som säkerställer att samtliga inblandade personer förstår Scrum och att arbetet går rätt till och att man följer metoden.

 

Uppgifter/aktiviteter i Scrum

  • Sprint: En sprint är en iterativ tidsperiod och alla sprints har ett eget mål. Vanligtvis är en sprint inte längre än en kalendermånad och de återkommer igenom hela utvecklingsprocessen.
  • Sprint-planering: Här möts hela arbetsgruppen som ingår i Scrum. Det sker i början av varje Sprint, eftersom att man då planerar den sprint som är på intåg.
  • Daglig Scrum: Vid samma tidpunkt varje dag av en sprint så håller man ett 15 minuter långt möte där man går igenom vad man lyckades åstadkomma dagen innan samt vad förväntningarna är på den kommande dagen.
  • Sprint-recension: Detta är ett informellt möte som man hålls i slutet av varje sprint, och där arbetsgruppen presenterar de framsteg som man har gjort. Man diskuterar därefter eventuell feedback.
  • Sprint-backspegel: Detta är också ett möte, där arbetsgruppen träffas för att reflektera kring det arbete man gjort hittills och de framsteg som man gjorde i den föregående sprinten. Man kommer också fram till möjliga förbättringar som man kan implementera i nästa sprint.

 

Artefakter/deliverables i scrum

  • Anteckningar om produkten: Det här sköts av produktägaren, och det är upp till den personen att skriva ner allt det som är nödvändigt för att skapa en så bra produkt som möjligt. De olika kraven skrivs ner i ordning efter hur högt prioriterat kravet är, och dessa inkluderar funktioner, egenskaper, förbättringar och andra ändringar på produkten som kan behövas göras längre fram.
  • Anteckningar för sprinten: Det här är lista över alla de uppgifter som måste skötas under nästa sprint. Ibland så får den här listan sällskap av en så kallad Scrum-tavla som man använder för att visualisera de framsteg som man lyckas åstadkomma i den nuvarande sprinten, samt de ändringar som man kan behöva göra. Tavlan har således ett format som följer strukturen ”att göra, görs nu, avklarat”.
  • Scrum är den mest kända Agila metoden och därför så finns det mycket stödmaterial på till exempel internet att ta hjälp av om man skulle ha svårt för att implementera metoden på egen hand. En annan positiv aspekt med scrum är att metoden hjälper en att dela upp ett stort och komplext mål i flera mindre delmål. På så sätt blir arbetet mer överskådligt och hanterbart.

 

Slutsats

Agila metoder används framför allt inom utveckling av program- och mjukvara av olika slag men idag är agila metoder också vanliga inom till exempel projektledning. En agil metod utgör effektiva sätt för arbetsgrupper att börja arbeta mer flexibelt och anpassningsbart, och där iterativa och icke-linjära processer samt samarbete inom gruppen och med externa aktörer är centrala aspekter. Målet med de agila metoderna är att ta fram en så bra produkt som möjligt, genom att lyssna på kunden och kontinuerligt ta emot ny feedback som kan hjälpa en att förbättras och utvecklas. Den vanligaste agila metoden heter Scrum, vilken bygger på att man delar upp arbetat i mindre så kallade sprints som hjälper en att beta av arbetet en del i taget.