Ordet agilt

Wikipedias förklarar ordet agilt såhär: "Agile är engelska och betyder smidig, vig, lättrörlig, jämför agility. En grundtanke i agila metoder är att arbetet bedrivs inkrementellt och iterativt vilket innebär att fungerande delleveranser av funktionalitet sker regelbundet enligt ett schema och att planer och metoder löpande utvärderas och förbättras."
https://sv.wikipedia.org/wiki/Agil_systemutveckling. Det är alltså ett samlingsord för flera olika metodiker som ofta har sin grund i Scrum. Målet är att tillåta flexibla projektteam så att snabba och kontinuerliga förbättringar kan göras på mjukvara.

Och det låter ju bra, men vad betyder det? Agil utveckling handlar om att man jobbar mot ett gemensamt mål och vision men där den exakta lösningen på hur det ska göras inte är givet från början. Ofta innefattar det att det team som ska jobba i projektet alla är självgående och tar stort eget ansvar för att utifrån sina kunskaper bidra med bästa möjliga input för att få bästa möjliga resultat.

Hur skiljer det sig från vattenfallsprojekt?

I vattenfallsprojekt kommer olika faser i projektet i sekvens medan det i ett agilt projekt finns mycket mer överlappande moment. Redan i den första utforskande fasen i ett webbprojekt finns utvecklarna med för att kunna ta fram prototyper på det man har tänkt sig ska göras.

I agila projekt brukar man dela upp projektet i sprintar, eller cykler på 2-4 veckor, där varje sprint kan handla om att utforska, designa, utveckla och testa. I slutet av en sådan sprint, eller cykel, ska projektteamet ha någonting handgripligt att visa för att kunna få feedback inför nästa sprint kring eventuella förbättringar eller justeringar i prioriteringar. 

Den största positiva skillnaden brukar därför förklaras med att man får snabba feedbackloopar. Dvs. projektteamet kan snabbt få feedback på det fortlöpande arbetet och justera det efterhand, till skillnad från i ett vattenfallsprojekt där feedback inte är lika inbyggt i modellen.

Komponenter i agila projekt

Agila projekt hinnehåller flera komponenter. Nedan förklarar jag några av de vanligaste komponenterna för att du lättare ska kunna orientera dig i den agila projektmetodiken:

  • Backlog är en lista, i något projektverktyg, i en excel eller på en vägg med de funktioner som är tilltänkta att finnas med i det som byggs. Backloglistan visualiserar därför progress och prioriteringar.
  • Sprint backlog är några utvalda funktioner från backlogen för denna sprint. 
  • Dailys är korta (oftast max 15 minuter), dagliga, stående möten med alla i projektteamet för att lyfta det som precis har gjorts, det som ska göras och om det finns några hinder.
  • Levererbart inkrement (shippable increments) är det resultat som ska komma ut från varje sprint. Helst ska det vara möjligt att visa upp för projektteamet och intressenter för att på så sätt samla in feedback.
  • Retrospective är det möte projektteamet har för att ta sig tid till att se tillbaka på den senaste sprinten. Det är viktig tid avsatt för att lära sig av eventuella misstag och göra det man gör bra ännu bättre.

 

Vilka är utmaningarna?

  • Det måste finnas ett dedikerat projektteam som alla har möjlighet att deltaga helhjärtat i projektet för att kunna ta tillvara det agila på bästa sätt.
  • Som beställare/kund behöver man förstå att utvecklingen görs inkrementellt och att våga prioritera vilka funktioner som är viktigast för att testa dessa.
  • Snabba iterationer och därmed snabba förändringar kräver en flexibel projektgrupp och en beställare som förstår att och kan försvara dessa. Det kan handla om att ledningen vill veta exakt hur någonting ska fungera vid lansering, någonting man inte kan svara på i agila projekt eftersom man prövar sig fram till den bästa lösningen. (Till skillnad på att försöka gissa den bästa lösningen och sedan hålla fast vid den oavsett vad.)

Fördelarna med agila webbprojekt?

1. Snabbare feedback från beställaren och kunderna. Genom att iterera fram lösningarna och ha greppbara demos så kan projektteamet göra justeringar längs vägen för att säkerställa att man bygger rätt saker innan lösningen är helt färdig.

2. Högre produktivitet genom att projektteamet lär sig av sig själva och andra i varje iterativ process.

3. Minskad kostnad och risk i och med att man inte riskerar att bygga någonting som 6 månader senare är helt fel. Med en agil metod kan man ta in förändringar i behov från omvärlden under projektets gång.

4. Högre arbetsmoral i teamet - både genom att man hela tiden kan visa och se sin framgång men också genom att teamet själva får ta ansvar för de lösningar som de får fram i varje sprint.

5. Ökat samarbete både inom teamet som jobbar i projektet men också med omvärlden (intressenterna). Den agila metoden ger projektet möjlighet och tillfällen att samarbeta genom att sätta upp ramarna för projektet utan att prata om hur någonting ska lösas. 

Agil webbutveckling summerat

Webbutveckling är mycket mer än att bara bygga en webbplats. Utveckling inkluderar att förstå affärssidan av logiken och utvecklare behöver därför hela tiden ta sig an nya tekniker och idéer som kan möta dessa behov. I ett agilt webbprojektteam finns därför stora möjligheter för alla i teamet att lära av varandra och på bästa sätt ta tillvara allas unika och gemensamma kunskaper för att skapa största möjliga affärsvärde av den lösning man tar fram!