Fortsätt till huvudinnehåll

Som man mäter får man svar

Hur mäter man egentligen hur effektiv en verksamhet är? Det är ingen lätt fråga, och många aldrig så välmenta försök har gått snett.

De flesta som utvecklar mjukvara håller idag med om att det inte är så lyckat att använda antal rader kod som ett mått på hur mycket man åstadkommit. Ett team som anses effektivare om de skriver många rader programkod löper stor risk att börja driva mot uppsvälld klipp-och-klistra kod, särskilt om någon skulle få för sig att koppla ett ekonomiskt incitament till modellen.

Vår bransch är inte ensam om att ha problem med att styra med mätmål. Svenska polisen har blivit omskriven för hur fokuset på antalet gjorda utblåsningstest leder till att man maximerar antalet test, men minimerar antalet stoppade rattfyllerister.

Risken när man väljer att mäta, följa upp och belöna en specifik sak är alltså att man får precis det man ber om: ett totalt fokus på den och bara den saken. 

Dagens scrumtips är därför: var försiktig med vad du mäter, du kan få det.

Kommentarer

Anonym sa…
Eller ännu bättre: "var försiktig med hur du TOLKAR dina mätresultat".

Misstaget som görs om och om igen är att tro att måttrymden har en god och en ond ände. T ex att många rader kod är bättre än få rader kod. Eller att få ärenden i buggarkivet är bättre än många ärenden i buggarkivet. Eller att många timmar spenderade på arbetsplatsen (gärna under obekväma arbetstider som kvällar och helger) är bättre än färre timmar spenderade på arbetsplatsen.

Vad är då alternativen? Ja det finns ytterligare två DÅLIGA alternativ:

1) Att vända på skalan: få rader kod är bättre än många etc.
2) Att inte mäta alls.

Men det finns också ett bra alternativ: Mät kontinuerligt flera saker utan att explicit värdera de i samband med att de mäts. Inga grattismejl med CC till alla VP när någon saknar tilldelade ärenden i buggarkivet och inga hjältesagor om killen som praktiskt taget bor på arbetsplatsen.

Vad ska man ha mätdata till? Två bra saker:

1) Samkör mätningarna och försök i efterhand hitta korrelationer. T ex: när kodtäckningen ökade så minskade antalet nya ärenden. Det är i så fall fakta om just vårt projekt, vår produkt, vårt team och vårt företag. Inte någon generell sanning som vi har hört på stan.
2) Analysera vilka mätdata som förändrades samtidigt som vi upplevde att det började gå signifikant bättre eller sämre för projektet.

Använd mått som är ENKLA, gärna automatiska, att samla in som kodrader eller kodtäckning. Det finns också många mått på kodkomplexitet som t ex cyklomatisk komplexitet, Ca, Ce, PDC m.m. Och det kan även vara mer processorienterade mått som t ex hur många möten vi har, hur långa iterationer vi har eller antal stories vi väljer att planera in i en iteration. Samband mellan sådana här olika kategorier kan hjälpa oss mycket i vår självförbättringsprocess.
Tobias Fors sa…
Hej Staffan! Tack för dessa givande tips!

Populära inlägg i den här bloggen

Pragmatisk eller dogmatisk? Progmatisk!

Scrum är ett enkelt ramverk. Några få regler bildar tillsammans ett system av aktiviteter som kan användas för att styra komplext arbete. Att ta bort en väsentlig del ur ett fungerande system påverkar alltid systemet som helhet. Tar man till exempel bort återblickarna ur Scrum minskar sannolikheten för framgång omedelbart. Man får lika stora problem, om inte större, om man försöker applicera Scrum dogmatiskt. Den som aldrig kan tänka sig att kompromissa kommer inte att ha någon framgång när det gäller att driva förändring. Har du själv jobbat med någon som aldrig kan kompromissa förstår du varför. Så hur ska man göra? Följa Scrum dogmatiskt för att inte förstöra arbetsmetodens effektivitet, eller vara pragmatisk för att inte alienera sig från andra människor? Jag föreslår en kompromiss. Låt oss kalla den en progmatisk hållning . Den progmatiska hållningen fungerar så här. Vi är å ena sidan aldrig rädda för att tänka själva och göra förändringar i Scrum, men å andra sidan gör...

Hur lång ska en sprint vara?

Jag fick en fråga på mailen som löd: "Fick frågan av min chef varför vi har 3 veckors sprintlängd. Vet inte riktigt vad jag ska svara, det bara blev så. Vad säger du?" En sprint i scrum är en synonym för iteration. Det som utmärker scrums sprintar är att vi vill att de ska vara väldigt fokuserade och att de ska sluta i klar, potentiellt levererbar, produkt. Potentiellt levererbar betyder att om vi ville  så kunde vi skeppa ut produkten med ganska lite efterarbete. Tydlig och regelbunden feedback krävs för att styra utvecklingsarbete. Längre sprintar betyder att det blir längre tid mellan större avstämningar av nuläget, vilket ökar risken att vi drar iväg i fel riktning, eller att omvärlden ändrar sig så mycket under sprinten att det vi bygger hinner bli irrelevant. Ibland kan det kännas som om man lägger för mycket tid på planerings- och uppföljningsworkshops, vilket leder till idén att göra sprintarna längre. Jag vill hellre börja med att undersöka om arbetsmötena k...

Introduktion till story points

Estimering med storlekspoäng är en sån där sak som somliga älskar och andra tycker är totalt förvirrande. Jag gillar det lugna sköna tempot i den här korta snutten om story points från Rally Software.