Agila manifestet: Ett arbetssätt anpassat för den föränderliga värld

Inom alla branscher är programvaruutveckling en stor del i företagens affärsplaner för att utveckla företagen framåt. När man utvecklar programvaror finns det ett antal systemutvecklingsmetoder som kan användas.

Programvaruutveckling handlar om att systematiskt tillämpa en disciplinera och mätbar metod för att utveckla användandet och underhållandet av en programvara.

Agila manifestet

Själva begreppet programvaruutveckling omfattar den kunskap, de verktyg och de metoder som krävs för att definiera specifikationer, design, programmering osv., för underhållning av en programvara.

Programvaruutveckling bedrivs med en programvaruutvecklingsmetodik. Det är en struktur som antas för en utvecklingsprocess. I en konstant föränderlig värld är det svårt för företag att driva projekt över lång tid eftersom omvärldens krav och förväntningar ständigt ändras.

Det agila manifestet är ett arbetssätt anpassat för denna föränderliga värld.

 

Vad är agila manifestet?

Agila metoder är de värderingar, attityder och principer som beskriver hur arbete bör organiseras i en dynamisk värld. Det agila manifestet formulerades år 2001 av en grupp mjukvarutvecklare. Det agila manifestet består av fyra teser som en reaktion mot trögrörliga och komplexa planeringsmetoder. Det upplevdes som slöseri på tiden och bortkastat arbete att lägga mycket energi på att planera när vägen dit var okänd och under konstant förändring.

 

De tidigare planeringsmetoderna tog inte heller någon hänsyn till det faktum att programvaran utvecklas under processens gång.  Manifestets syfte var att skapa ett ramverk att förhålla sig till och öka förmågan att utveckla det som faktiskt är efterfrågat och minimera onödigt arbete.

 

Agila metoder

  • Att arbeta med agila metoder innebär ett arbete i korta intervaller med täta leveranser och kontinuerlig feedback. Detta arbetssätt ger upphov till snabb reaktion på förändringar och gör det möjligt att snabbt kunna fånga upp ny information under projektets gång. Besluten ska allra helst tas så sent som möjligt eftersom den insamlade kunskapen då är större.
  • Angående beslut bör de tas av de som är närmast informationen, varför beslutsfattande ska vara decentraliserat till självorganiserade grupper. All forskning tyder på att team och medarbetare arbetar som allra bäst när de har stor möjlighet att påverka och känner engagemang över uppgifterna. Ansvaret delas mellan medlemmarna i gruppen.
  • Världen är i ständig förändring och agila metoder syftar till att utveckla en strukturerad förmåga att skapa och svara på förändringar i denna värld. Det handlar om att ha en fortsatt bra balans mellan flexibilitet och stabilitet. För att det ska vara möjlighet att vara flexibel måste det finnas struktur i företaget. Det måste vara en arbetsmiljö som tillåter flexibilitet och reglerade utsvävningar.
  • Agilametoders popularitet beror på att omvärlden förändras i en allt snabbare takt och att flexibilitet har blivit en stor och viktig konkurrensfördel för många företag.
  • Agila metoder handlar egentligen om flexibilitet, man eftersträvar en ändamålsenlig och användarcentrerad utveckling genom ett nära samarbete under hela utvecklingstiden med möjlighet till ändringar. Mål och visioner formuleras tidigt för att undvika att man arbetar med hårda och detaljerade tekniska krav. Att använda sig av agila metoder innebär att man använder sig av ett mer humant synsätt, man anser att det är människor och kommunikation som är verktygen för att lösa problemen under utvecklingsarbetet.
  • Man vill också minimera risken för att system ska befinna sig i halvfärdiga lägen och inte ge någon nytta. Det agilaarbetssättet skapar bättre underlag inför besluten att tillföra fler resurser till projekt.

 

Vad innebär agila manifestet?

Som redogjort innebär agila metoder att man arbetar interaktivt med många små delleveranser i regelbundet korta intervaller. Arbetssättet kännetecknas av flexibilitet och understryker snabbhet, informellt samarbete, täta kundkontakter och möjlighet till ändring under arbetets gång. Kravspecifikationen bör därför revideras under arbetets gång eftersom behov, önskemål och andra förutsättningar kan ändras med tiden. År 2001 publicerades manifestet för agil systemutveckling. Manifestet publicerades av programmerare som reagerade med motstånd mot detaljerade kravspecifikationer, omfattande dokumentation och byråkratiserande metoder som var resultatet av en traditionell projektmodell kallad vattenfallsmetoden. Gruppen har efter det utvecklat verktyg och andra hjälpmedel.

Agila manifestet består av fyra grundläggande värden och tolv stödjande principer som leder den agila strategin för mjukvaruutveckling. De fyra grundläggande värdena handlar om att hitta bättre sätt att utveckla programvara genom att utveckla sig själva och genom att hjälpa andra. I arbetet värdesätter man:

  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.

1.     Individer och interaktioner framför processer och verktyg

Det första värdet i det agila manifestet handlar om att värdera människor mer än processer och verktyg eftersom det är människorna som driver affärsprocessen. Om det är processen eller verktygen som driver utveckling är teamet mindre mottagligt för förändringar och det kommer göra det mindre sannolikt att kundens behov blir bemött. Kommunikationen utgör skillnaden mellan processen och individerna. Mellan individer så är kommunikationen flytande och sker när behov uppstår. Vid en process är kommunikationen schemalagd och kräver specifikt och planerat innehåll.

 

2.     Fungerande programvara framför omfattande dokumentation

Tidigare gick enorma mängder tid åt att dokumentera utvecklingen och slutlig leverans av produkten. Tekniska specifikationer, tekniska krav, testplaner, dokumentationsplaner och godkännanden krävdes tidigare för varje release vilket sinkade varje leverans. Kravlistan var omfattande och orsakade i stället långa förseningar i utvecklingen. De agila metoderna utesluter inte dokumentation men effektiviserar arbetssättet vilket ger utvecklaren det som behövs för att göra arbetet utan att fastna i onödiga detaljer. Agila dokumentkrav som användarberättelser är tillräckliga för att en mjukvaruutvecklare ska kunna börja bygga en ny funktion. Agila metoder värdesätter dokumentation, men värdesätter flexibelt arbete mer.

3.     Kundsamarbete framför kontraktsförhandling

Den perioden då kunden och produktchefen utarbetar detaljerna i en leverans är den tiden som kallas för förhandling. Om man inte använder sig av agila metoder är det vanligt att man använder sig av arbetssättet Waterfall. Detta arbetssätt innebär att kunden är inblandad i utvecklingsprocessen innan utvecklingen har börjat och när processen är klar. Kunden är inte inblandad under processen i detta arbetssätt. De agila metoderna syftar till att kunden ska vara engagerad och samarbeta under hela utvecklingsprocessen. Om kunden är delaktig under hela processen kommer det att göra det lättare för utvecklingsgruppen att tillgodose kundens behov. Agila metoder kan inkludera kunden med jämna mellanrum för att demonstrera utvecklingen. Men ett projekt kan lika gärna ha en slutanvändare som en daglig del av teamet och närvara vid alla möten, så att produkten uppfyller kundens behov.

 

4.     Anpassning till förändring framför att följa en plan

Traditionell mjukvaruutveckling menade att förändringar var kostsamma, varför man då ville undvika dem. Avsikten var att utveckla detaljerade, genomarbetade planer, med en definierad uppsättning funktioner som var beroende av varandra. Beroendet innebar att för att kunna leverera, var varje del tvungen att vara klara i en viss ordning för att teamet skulle kunna gå vidare. Agila metoder syftar till att flytta prioriteringar så att arbetet blir mer flexibelt. Det agila synsättet vill att förändringar alltid ska förbättra och ge projekt ytterligare värde. Agila metoder kan beskrivas som en process eller förmåga där mänskliga agenter bestämmer en systemutvecklingsmetod för en specifik projektsituation genom responsiva förändringar i och dynamiska samspel mellan sammanhang, avsikter och metodfragment. Agila metoder gör att man kan ändra processen och få den att passa gruppen snarare än tvärtom.

 

Principerna bakom det agila manifestet

Principerna bakom manifestet är det så kallade styrdokumentet. De agila metoderna fokuserar på olika delar av mjukvaruutvecklingens livscykel. En del fokuserar på metoder som extrem programmering medan andra hanterar mjukvaruprojekt. Principerna bakom metoderna är:

1.     Vår högsta prioritet är att tillfredsställa beställarens önskemål genom tidig och kontinuerlig leverans av värdefull programvara.

Genom att arbeta i korta intervaller och leverera en produkt som går att utvärdera och faktiskt fungerar, kan kundens åsikter vägas in och snabbt prioriteras. Detta gör att kundens åsikter under processens gång faktiskt leder till förändring som motsvarar kundens önskemål. Alla parter blir således nöjda.

2.     Välkomna förändrade krav, även sent under utvecklingen. Agila metoder utnyttjar förändring till kundens konkurrensfördel.

Korta intervaller av arbete ger möjlighet till snabb utvärdering och möjlighet att ändra innan det blir för sent. Det innebär att kravförändringsprocessen är inbyggd i den agila metoden, vilket gör att onödiga kontakter som leder till byråkrati kan undvikas. Små och effektiva förändringar skapar dessutom över en längre tid en experimenterande kultur vilket kan leda till stora framgångar.

3.     Leverera fungerande programvara ofta, med ett par veckors till ett par månaders mellanrum, ju oftare desto bättre.

Den produkt som levereras i slutet av varje intervall ska fungera för att det ska vara av värde för kunden. Att den fungerar betyder nödvändigtvis inte att det är samma sak som att produkten är färdig, utan snarare att den är utvecklad och gjord bättre än sist. Denna förändring ska kunna fungera och gå att utvärdera. Detta ska också göras ofta med jämna mellanrum.

4.     Verksamhetskunniga och utvecklare måste arbeta tillsammans dagligen under hela projektet.

Genom daglig kommunikation får frågor snabba svar vilket driver utvecklingen snabbt framåt. Det innebär också att kunskapsöverföring kan ske snabbt och förändringar kan diskuteras i utvecklingsteam och ledargrupp utan att behöva gå igenom en hel dokumentationsprocess.

5.     Bygg projekt kring motiverade individer. Ge dem den miljö och det stöd de behöver, och lita på att de får jobbet gjort.

Motivation skapas bevisligen genom ansvar och förtroende. Om teamet får möjlighet att arbeta i den IT-miljö de vill och på det sättet de vill kommer de onekligen att leverera en bra produkt. Tillit skapar incitament hos människor.

6.     Kommunikation ansikte mot ansikte är det bästa och effektivaste sättet att förmedla information, både till och inom utvecklingsteamet.

Feedback går fortast och tas emot bäst när man pratar direkt till varandra. Det är viktigt att kommunikationen görs pedagogiskt och motiverande snare än att man klankar ner på varandra. Feedback ska skapa incitament och lyfta individer.

7.     Fungerande programvara är främsta måttet på framsteg.

Produkten är det mätbara resultatet för kunden. Genom att arbeta agilt så kommer produkten att uppdateras enligt tidigare utvärdering och fungera efter varje intervall. Det är denna utveckling som är framsteg och det är också vad kunden ser.

8.     Agila metoder verkar för uthållighet. Sponsorer, utvecklare och användare skall kunna hålla jämn utvecklingstakt under obegränsad tid.

Att arbeta med agila metoder innebär att man ser till att teamet har välplanerade arbetsintervaller. Genom att ha välplanerade tidsperioder av arbete hålls utvecklingstakten jämn. Det gör att övertid och stressmoment kan undvikas eller hållas till ett minimum. En välplanerad intervall innebär också att kunden har stenkoll på när nästa release är och vad den innehåller. Kunden vet att teamet inte tar på sig mer än vad de faktiskt klarar av.

9.     Kontinuerlig uppmärksamhet på förstklassig teknik och bra design stärker anpassningsförmågan.

Eftersom arbete man slarvar med eller inte gör rätt från början förr eller senare kommer komma tillbaka och drabba arbetet så fokuserar agila metoder på göra rätt från grunden. Det är smartare att följa alla regler i avgränsade områden än att slarva. Man kan då i ett senare skede fokusera på att faktiskt utveckla produkten snabbt och slippa göra om och göra rätt.

10.  Enkelhet – konsten att maximera mängden arbete som inte görs – är grundläggande.

Genom att konstant prioritera vad som är viktigast för den kommande tidsintervallen av arbete kommer utvecklingsteamet enbart att leverera värde för produkten. Genom att smalna av gruppens fokus kommer mycket onödigt arbete att undvikas. Här kommer automatisering av repeterande uppgifter in naturligt.

11.  Bäst arkitektur, krav och design växer fram med självorganiserande team.

Eftersom teamet får möjlighet att själva utvärdera sina metoder och sitt arbetssätt ofta kommer varje team att hitta det bästa sättet att arbeta med krav, utveckling och leverans. Detta utvecklas över tid och gör att intervallerna blir utvecklade och effektiva. Detta kommer att ske naturligt om gruppen får möjlighet till det.

12.  Med jämna mellanrum reflekterar teamet över hur det kan bli mer effektivt och justerar sitt beteende därefter.

Det bästa resultatet från självorganiserade team är att de ständigt utvecklas eftersom de har sina regelbundna utvärderingar. Förbättringar sker ofta och i små steg. Små störande problem kan tas bort på en gång och undvikas i framtiden.

 

Att arbeta agilt

De agila metoderna följer inte processdeadlines på samma sätt som andra processer. Arbetssättet minimerar emellertid risk och producerar en bättre slutprodukt på kort tid trots andra tillvägagångssätt.

De agila metoderna som utgår från det agila manifestet handlar i det hela om att

  • främja regelbunden kommunikation på alla nivåer genom att flytta belutsmandat längre ut i organisationen. Det är svårt att planera och förutsäga vad en framgångsrik slutprodukt är innan arbetet ens är påbörjat.
  • För att leverera en bra slutprodukt är det avgörande med inkluderande arbete med utvärdering i varje steg.
  • Förändringar är välkomna genom hela processen.

För att implementera agila processer i praktiken finns det olika ramverk som hjälper till. Exempel på några sådana ramverk är Scrum, Kanban 0ch DevOps.

I ett projekt sätter man en projektbudget och en deadline samtidigt som man analyserar hur lång tid arbetet kommer att ta, hur mycket personal som krävs samt hur utfallet kommer bli. I realiteten är det omöjligt att veta hur det kommer att bli, utan det enda som går att veta är att inget kommer bli exakt som planerat. De agila metoderna tar denna ovisshet och bygger på att man ska arbeta utifrån den. Man arbetar under korta tidsintervaller på mindre än fyra veckor innan man utvärderar. Om man är på rätt spår så fortsätter man på samma sätt med samma cykel igen. Man arbetar på detta sätt i stället för att detaljbestämma allt från början och binda sig till ett arbetssätt. Om man gör det finns risken att man bundit sig till ett arbetssätt som kan bli svårt att ändra.

 

Sammanfattning

Det agila manifestet syftar till att inte hänga upp sitt arbetssätt på onödiga processer. Det handlar egentligen om att omfördela resurserna på ett sätt som effektiviserar och gör arbetet mer hållbart över en längre period. Eftersom världen ändras tillkommer nya data, nya krav och andra förutsättningar vilket påverkar genomförandet av en produkt. Kundens krav kanske ändras vilket gör att det inte går att ha en allt för bestämd plan. Genom att använda sig av agila metoder använder man ett betydligt mer dynamiskt arbetssätt som definitivt kommer leda till framgång och en bättre miljö för personalen. Arbetssättet påverkar inte bara själva utvecklingsgruppen utan även alla intressenter, varför det är viktigt att alla har en klar bild av vad det innebär att arbeta agilt.