jump to navigation

Lean, Scrum, Agile, XP – en sammanfattning 2010/05/03

Posted by mourelatos in Agile/Scrum.
trackback

Lean handlar om att ta fram en process baserad på värderingar och principer.

De rätta värderingarna och principerna leder fram till den bästa processen
som i sin tur leder fram till den bästa produkten.
Typiska principer handlar om att jobba långsiktigt, minimera risk och
vara effektiv genom att undvika göra onödiga saker, synliggöra problem
och ständigt förbättra sin process (kaizen).
En av principerna är att leverera snabbt. Begreppet ledtid (eng. cycle
time eller lead time) betyder hur lång tid det tar från det att en kund kommer
med ett önskemål, till dess att hon fått det levererat (och är beredd att
betala för det). För att kunna optimera ledtiden kikar vi bland annat på
vilka flaskhalsar och köer som finns i arbetsflödena i en organisation. Allt
som hindrar eller försvårar detta flöde är slöseri (waste). Ett enkelt sätt att
hitta de flaskhalsar vi har är att kika på var vi har saker på hög, var är våra
köer? Efter en kö finns alltid en flaskhals.
Efter en kö finns alltid en flaskhals.
Var någonstans ligger halvfärdiga saker på hög? Ligger de i bugghanteringssystem,
orderhanteringssystem, otestad mjukvara eller i kravspecifikationer?
Vilken flaskhals är det som kommer direkt efter denna hög?
Lean handlar om att eliminera flaskhalsar och skapa ett jämnt och effektivt
flöde. Ett flöde som därigenom på kortast möjliga tid och med
minsta möjliga resursåtgång levererar det kunden vill ha.

Scrum är den mest kända och använda agila metoden.

Scrum är en minimal metod som gör det väldigt tydligt vem som prioriterar
och bestämmer vad som ska göras (kallas produktägare), samt vilka
som tidsuppskattar och bestämmer hur det ska göras (utvecklingsteamet).
Produktägaren samlar det som han vill ska göras i en prioriterad backlog
(att-göra-lista).
Scrum bedriver allt arbete i cykler som kallas sprintar. En sprint är en
fast, på förhand bestämd, tidsperiod på vanligtvis två, tre eller fyra veckor.
Under dessa veckor är två parallella processer igång.
Den ena processen fokuserar på att utveckla de viktigaste funktionerna.
Den börjar med ett sprintplaneringsmöte där man diskuterar och planerar
vilka funktioner som ska utvecklas de kommande två veckorna. Man
tar de högst prioriterade sakerna i backloggen. Sedan diskuterar och bryter
man ned dessa tills alla i teamet förstår vad som förväntas byggas.
Sprinten avslutas med en demonstration där man visar upp fungerande,
färdigtestad mjukvara för produktägaren och andra intressenter. Under
demonstrationen uppmanas alla att ge åsikter på det de får demonstrerat
och föreslå förbättringar.
Den andra processen handlar om hur man förbättrar sitt sätt att arbeta.
Utgångspunkten för denna process är de regelbundna återblicksmöten (Retrospective)
man har i slutet på varje sprint, där produktägaren tillsammans
med teamet diskuterar hur de ska arbeta bättre tillsammans under kommande
sprint. Förbättringarna följs upp i slutet av nästkommande sprint.

Den från början mest kända Agila metoden heter eXtreme Programming,

och brukar förkortas XP. Den fick tidigt stöd tack vare konkreta tips om
hur programmering kunde förbättras, sett som hantverk, och hur man
effektivt arbetar tillsammans i team. Dessutom såg många XP som en välbehövlig
protest mot de tunga processer, exempelvis RUP, som påstod sig
vara iterativa men som oftast havererade till smärtsamma vattenfallsprocesser.
Tillspetsat kan man säga att den utgår från bra saker och drar dem till sin
extrem. Exempelvis:
• Eftersom kodgranskning är bra låt oss göra det hela tiden. Det kallas
par-programmering.
• Eftersom automatiserade tester är bra, låt oss skriva dem först och designa
för testbarhet. Det kallas Test Driven Development.
• Eftersom det är bra om fler än den ursprungliga programmeraren förstår
koden, låt oss ha gemensamt ansvar för den. Det kallas Collective
Code Ownership.
• Och så vidare.
Till skillnad från Scrum talar XP om hur arbetsflödet inom ett team bör se ut.
Detta arbetsflöde har ett starkt fokus på kvalitet och samarbete kring kod

Sammanfattning
Lean är ett synsätt eller en kultur som ska genomsyra allt arbete. Fokus
ligger på att så resurseffektivt som möjligt uppnå maximalt kundvärde
genom att ständigt ifrågasätta varje steg i processen.
Agile är en samling värderingar där förmåga till anpassning och träffsäkerhet
är främsta ledorden. Det kräver i sin tur ett nära samarbete.
Scrum är en projektstyrningsmetod som på ett enkelt sätt lägger grunden
för att kunna jobba lättrörligt och odla kulturen av Lean.
XP är en utvecklingsmetod och en samling tekniker som får ett mjukvaruteam
att jobba effektivt ihop för att producera kod med hög kvalitet.
Gemensamt för Lean, Agile, Scrum och XP är att alla är framtagna
utifrån erfarenheter snarare än teoretiska skrivbordsprodukter, genom att
studera vad som är typiskt för grupper som fungerar bra och de som fungerar
mindre bra.
Metoderna går utmärkt att kombinera (med visst överlapp). Till exempel
kan man analysera hela orderkedjan med hjälp av Lean, använda
Scrum-team för själva utvecklingen, och inom dessa team använda
eXtreme Programming för att leverera med hög kvalitet.

Advertisements

Comments»

No comments yet — be the first.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: