Monitor
TILL TOPPEN

HistoriskBakgrund

Agila projektmetodermetoder - historisk bakgrund

Agila projektmetoder utvecklades som svar på mjukvaruutvecklingens behov att hantera ständigt föränderliga krav och justera ändringar tidigt i projektet, istället för att upptäcka dem på slutet när det kunde vara försent att göra något åt dem.

Detta var fallet fram till ca 1990 talet, då man använde sig av en annan modell, så kallad "vattenfallsmodellen" vars metoder var mer linjära och fasta samt att man fick tillgång till produkten endast när den var färdig.



I februari 2001 samlades 17 mjukvaruutvecklare i USA för att diskutera utmaningarna som fanns med vattenfallsmetoden.

Gruppen bestod av erfarna utvecklare som Ken Schwaber, Jess Sutherland, Martin Fowler och andra, ville hitta ett annorlunda sätt att arbeta på och detta ledde till skapandet av det Agila manifestet, som blev grunderna för de agila metoderna. (Agile Manifesto, 2001)

Det formulerades fyra värderingar och tolv principer som betonar anpassning, samarbete, och att leverera fungerande programvara ofta och i små bitar som skulle vara enklare att hantera.

Vad är agila metoder?
"Agility is about being able to adapt to change and respond to it quickly" (Agile Alliance, 2024)

Agila metoder är ett ramverk som främst används inom mjukvaruutveckling och har blivit alltmer populär även i andra branscher. Agila metoder står främst för flexibilitet, anpassningsbarhet och kontinuerlig förbättring.

Dessa metoder skiljer sig från äldre mer traditionella projektmetoder, som t ex vattenfallsmodellerna, där utvecklingsprocessen delas in i fasta steg.

Istället för att låsa fast alla krav i början av projektet, tillåter agila metoder förändringar längst vägen för att bättre möta kundens behov och hantera oväntade utmaningar. När bör man då arbeta agilt? Agilt arbete används bäst i komplexa projekt där krav förändras snabbt och där experiment och små förändigar gynnar utvecklingen.


De fyra värderingarna i agil projektmetodik
  • Individer och interaktioner- Framför processer och verktyg.
  • Fungerande programvara - Framför dokumentation.
  • Kundsamarbete - Framför kontrakt och förhandlingar.
  • Reagera på förändring - framför att strikt följa en plan.
(Agile Manifesto, 2001)
De tolv principerna för agilt arbete

De tolv principerna i det agila menifestet stödjer de grundläggande värderingarna och ger vägledning hur agilt arbete ska bedrivas i praktiken.

Principerna handlar bland annat om att tillfredställa kunder, välkomna förändringar och leverera fungerande programvara ofta.



Dessa principer är:

  • Vår högsta prioritet är att tillfredsställa kunden genom tidig och kontinuerlig leverans av värdefull mjukvara.
  • Välkomna förändrade krav, även sent i utvecklingen. Agila processer utnyttjar förändringar för kundens konkurrensfördel.
  • Leverera fungerande mjukvara ofta, från ett par veckor till ett par månader, med en preferens för den kortare tidsramen.
  • Affärsfolk och utvecklare måste arbeta tillsammans dagligen under hela projektet.
  • Bygg projekt kring motiverade individer. Ge dem den miljö och det stöd de behöver, och lita på att de gör jobbet.
  • Den mest effektiva och effektiva metoden för att förmedla information till och inom ett utvecklingsteam är ansikte-mot-ansikte-konversation.
  • Fungerande mjukvara är det primära måttet på framsteg.
  • Agila processer främjar hållbar utveckling. Sponsorer, utvecklare och användare bör kunna upprätthålla ett konstant tempo på obestämd tid.
  • Kontinuerlig uppmärksamhet på teknisk excellens och god design ökar smidigheten.
  • Enkelhet- konsten att maximera mängden arbete som inte görs - är avgörande.
  • De bästa arkitekturerna, kraven och designerna växer fram från självorganiserande team.
  • Med jämna mellanrum reflekterar teamet över hur de kan bli mer effektiva och justerar sitt beteende därefter.
(Tolv-principer, Agile Manifesto, 2001)
Vad är Scrum?

Scrum är en populär agil metod som syftar till att förbättra samarbetet i team genom att dela upp arbetet i kortare cykler, som kallas sprintar.

En sprint vara ca 2-4 veckor och under denna tid ska teamet fokusera på att leverera färdigt en produkt eller en del av en produkt(Detta arbetssätt kallas att arbeta iterativt).

Genom att fokusera på sprintar kan team snabbt anpassa smidighetentill förändringar och återkoppling från kunder, vilket möjliggör kontinuerlig förbättring och leverans av värde.

Ken Schwaber, en av grundarna av Scrum, uttryckte detta tydligt:

"Scrum is a framework for developing, delivering, and sustaining complex products."
(The Scrum Guide, 2020)

Några verktyg och ramverk som idag används vid Scrum-arbete är bland annat: Jira, Trello, Azure Devops.

I vårat webbprojekt på TUCs yrkeshögskola har vi använt oss av verkyget Jira som är ett projektledningsverktyg där det erbjuds funktioner som att skapa och hantera arbetarberättelser, backloggar, sprints och mycket mer.

Backlogg, stories och sprints

Backlogg är listan som teamet får av kunden/produktägaren med hur de vill ha produkten och vad som ska finnas med i form av user stories. User Storiesär önskemål som har först fram till produktägaren som ska leda till slutprodukten. Dessa önskemål kan baseras på undersökningar av vad marknaden till ha, eller specifika önskemål som har uttryckts av kunder till produktägaren. Dessa blir då till user stories t ex "Som användare vill jag lätt kunna navigera på hemsidan". Då tar teamet denna user storie och tänker på hur de kan framföra detta önskemål på webbplatsen.

Ofta är det en full lista av user stories i en backlogg och teamet delar då upp arbetet och bryter ner varje user storie i mindre delar.

Den mindre delen ska arbetas på under en sprint(ca 2-4 veckor), med dagliga möten(dailys) och avstämningar under arbetets gång.

Varje sprint startar med en sprintplanering där produktägaren visar vilka stories som ska prioriteras och teamet lägger in de user stories för sitt arbete till den kommande sprinten.

De bryter ner allt till vad som behöver göras till varje user story och delar upp uppgifterna mellan varandra. Vid slutet av varje sprint hålls en demo där alla visar upp vad de har arbetat på och man ser till helheten och säkerställer att denna del av produkten är färdig. Uppgifter som inte hinner bli klara flyttas då till nästa sprint.

Roller i Scrum

Scrum fungerar som ett ramverk med definierade roller:



  • Produktägaren ansvarar för att förmedla visionen och målen för produkten. De ser till att alla funktioner är tydliga och prioriterade.
  • Produktägaren hanterar även projektets backlogg och plockar ut vad som behöver prioriteras och tilldelar det till utvecklingsteamet.
  • Produktägare fungerar även som en brygga mellan Scrum.teamet och kunderna, användare och företagsledningen och säkerställer att produktens utveckling ligger i linje med kundernas behov. Produktägaren godkänner även arbetet som teamet levererar i slutet av varje sprint.
  • Scrum master ser till att processen följs korrekt. Denna behöver vara väldigt strukturerad och är ansvarig för att strukturera upp mötena i teamet.
  • De organiserar och leder de dagliga stand-ups, sprintplanering och sprintgranskning. De fungerar även som en coach för teamet och ska hjälpa teamet att arbeta strukturerat och effektivt.
  • Scrum master ska hjälpa teamet att bli självorganiserande och har ansvar för att mötena ska hålla sin mötestid och ta upp de saker som står på agendan.
  • Utvecklare ansvarar för att planera, koda, testa och leverera det som har bestämts under sprintplaneringen.
  • Teamet är självorganiserat och själva besluta hur de ska utföra och dela upp sitt arbete.
  • Teamet ser till att leveranserna innehåller hög kvalitet genom att ofta utföra testning av sin kod. Utvecklarna bryter ner userstories till konkreta uppgifter och följer arbetets framsteg under sprinten.
Traditionella vs agila projektmetoder
  • Som tidigare nämnt är vattenfallsmodellen en traditionell modell som har använts inom mjukvaruutvecklings projekt sedan 1970- talet och är en mer fast och linjär arbetsprocess till skillnad från agila projektmetoder som är mer flexibla.
  • I vattenfallsmodellen behöver varje fas i projektet avslutas innan man går vidare till nästa. Uppgifterna delas upp inom teamet, alla får en del tilldelad till sig och förväntas arbeta på den tills det steget är färdig.
  • Avstämningarna hålls i slutet av varje fas för att säkerställa att alla krav för den aktuella processen har uppfyllts innan det är dags att gå vidare till nästa steg. Man fortsätter framåt och går inte tillbaka till stegen när de är slutförda.
  • Vid agilt arbetssätt har teamet och produktchefen/kunden en kontinuerlig kommunikation och förändringar i projektet är tillåtna, eftersom det är enkelt att gå tillbaka till dem då varje uppgift har brutits ner till små hanterbara delar som lättare går att lösa.
  • På det sättet kan den agila metoden vara effektiv då kommunikation sker regelbundet med både teamet och kunden(som är med i stegen som tas) och då är det enklare att kunden får det som denne tänkt sig i början och blir nöjd. Det är även fördelaktigt att dela upp stegen i mindre delar då det blir enklare att ändra på om något behöver förändras.
  • Å andra sidan kräver den agila metoden självstyrda, erfarna team så att de regelbundna mötena är effektiva, endast tar upp det som behöver göras/har gjorts på ett strukturerat vis. Enligt min åsikt finns det en risk att den agila metoden kan vara utmanande för nya oerfarna grupper då mötena lätt kan bli ostrukturerade, ineffektiva och bli för alltför många och långa, vilket blir väldigt ineffektivt, tidskrävande och individerna kan då istället känna sig överväldigade som resultat.
  • Nya grupper kan möjligtvis gynnas av en mer strukturerad och fast metod, som vattenfallsmodellen. Däremot är jag för att arbetet kontrolleras och avstäms tidigare än när allt är helt klart, för att se till att allt är rätt efter varje, och att mötena hålls effektiva och korta, men att varje person mest arbetar på sin del tills den är färdig tills var och en samlar på sig mer erfarenhet.
  • Båda modellerna har klart sina för och nackdelar och det ideala hade varit en kombination av de båda där man både bryter ner stegen i mindre delar, men samtidigt har en mer tydlig struktur och inte lika många möten.