torsdag den 27. september 2007

Detailplaner og scrum

I denne uge havde jeg den store fornøjelse at deltage i JAOO konferencen. Det er svært at finde et foredrag på konferencen, hvor man ikke går der derfra med noget at tænke over.

Et af de mange foredrag som jeg hørte, var om scrum (jeg tror at det var Hubert Smiths Planning in Large Companies), og der var der på en af slidene et billede af tavlen fra et sprintplanlægningsmøde. Tavlen var relativt velordnet, med store sedler i en farve til de stories som teamet havde taget ind i sprintet - og under hver story-seddel, en søjle med fine sedler i en anden farve, med de aktiviteter som teamet havde fundet frem til. Så langt, så godt.

Men så var det, at alle deltagere i teamet, ud for hver seddel, havde noteret, hvor lang tid de regnede med at skulle bruge på de enkelte opgaver i dage - og disse tider var, med initialer, overført til sedlerne. Det undrede mig, for i det scrumteam, hvor jeg p.t. deltager, er vi gået væk fra have tider og initialer på opgaverne. Jeg var ikke den eneste som undrede mig, for et af spørgsmålene fra salen var netop til disse tider.

Svaret var, at det var et forsøg på at sikre, at der var en nogenlunde ensartet belastning på alle deltagere i teamet - eller med andre ord en slags ressource leveling. Det er klart at man bør undgå en al for stor forskel imellem opgavernes karakter og teamets kompetencer, så intentionen er god nok (vi har også været præcis der).

Der var flere grunde til, at vi gik væk fra det:
  • Når opgaverne allerede er estimeret på storyniveau, så tilføjer det umiddelbart ikke nævneværdig værdi at nedbryde dette estimat på delopgaver. Der kan være en fordel i at kunne måle fremdriften, men det introducerer et administrativt overhead. Hvad værre er, så åbner det en breche overfor andre om, hvorvidt det giver vil give mening at gøre en story halvt eller 3/4-dele færdig for at kunne klemme en anden story ind - and it ain't over 'til the fat lady sings!
  • Hvis man under sprintplanlægningen allerede fordeler opgaver på folk, så er der en kedelig tendens til, at denne plan hænger ved - det bliver med andre ord også de folk, som kommer til at lave opgaverne. Man kan sige, at forskellen på papiret ikke er stor, men rent mentalt så er man ikke et team længere, hvis der på forhånd er dine og mine opgaver - den største fordel ved at team går fløjten, hvis opgaverne ikke er "vores opgaver"!
Efter min mening, så er der også andre udfordringer ved at forsøge på at lave ressource leveling, som nok ikke umiddelbart ødelægger sprintet, men som man alligevel skal have for øje:
  • Man kan nemt i forsøget på millimeterretfærdighed komme til at overse de dynamiske effekter. Det kan godt være, at der er ligeligt med opgaver til alle, men hjælper ikke noget, hvis der er nogle, som kun har opgaver som naturligt ligger først ... eller til sidst. I et godt team vil teamet arbejde udenom udfordringen, men værdien af forsøget på ressource leveling er gået fløjten.
  • Den anden fælde er, at man begynder at tilpasse opgavesammensætningen til teamet kompetencer og ikke omvendt. Teamet skal kunne levere det som giver værdi, og ikke det som det tilfældigvis er bedst til. Det tager selvfølgelig tid at få et godt team op at stå, så for en tid kan det give mening at lade opgaverne tilpasse sig teamet i nogen udstrækning - og på samme måde er det jo ideelt, hvis teamet kan opsøge opgaver, som passer til kompetanceprofilen. Det er bare vigtigt, at der ikke bliver byttet om på årsag og virkning.
Nu kunne man så sikkert godt forledes til at tro, at jeg taler for, at man helt skal ignorere, i hvor høj grad de enkelte deltager kan byde ind i et sprint - eller for at man helt ignorerer opgavesammensætningen. Det gør jeg så langt fra. Det er et vigtigt input til planlægningen at vide, hvordan teamet er sammensat - og det er naivt at ignorere effekten af f.eks. ferier og uddannelse.

Det som er vigtigt er, at teamet kan tro på at planen er realistisk, og hvis det indebærer, at teamet under sprintplanlægning vurderer på delopgaver og mulige ressourcer til dette, så er det helt fint med mig. Det som jeg hæver en solid pegefinger overfor er, dels at give det mere vægt end som input til en "mavefornemmelse" og dels at tage detailplanen med ud fra sprintplanlægningsmødet. Detailplaner er nok nyttige, men også yderst farlige, og skal derfor holdes i meget kort snor - ellers risikerer man at ødelægge mere end man gavner.

3 kommentarer:

Anonym sagde ...

Hej Bjarne

Jeg blev meget begejstret over at læse dit blogindlæg. Sjovt for vi har gjort os mange identiske overvejelser.

Jeg har helt enig i din analyse omkring resource leveling. Jeg ser det ligesom dig - nemlig at vi HAR været DER. Hvad der bekymrer/undrer mig er, at Hubert Smith åbenbart med succes gennemfører sprint planning meetings, hvor han praktiserer at gennemføre resource leveling på det niveau, som han viste i sine slides. Jeg bliver bekymret delvist fordi, at han er scrum trainer (læs: han burde da vide bedre!?). Og jeg undres, idet vi jo har oplevet, at det IKKE er en god måde at gøre det på!?

Dette leder frem til tanker omkring kulturelle forskelle på tværs af lande, kontinenter og firmaer. Jeg begynder mere og mere at fornemme, at der er i gang med at manifestere sig en slags skandinavisk scrumbevidsthed. En erfaringsbase som bygger på en mere eller mindre identisk kulturel og social baggrund og bevidsthed. Her adskiller skandinavere sig klart fra f.eks. amerikanere...

Jeg er spændt på fortsat at deltage i de nyligt etablere scrumnetværk, som er startet her i Danmark. Tror at det vil give fornyet indsigt og forståelse ;-)

Jeg vil straks bookmarke din blog og abonnere på dit blog feed ;-) Det ender sq med, at alle i projektet har deres egen blog. Jeg må også hellere komme i gang med "bloggeriet"...

NB. I øvrigt nogle VILDT flotte billeder, som du tager. Hvor er du dygtig!

Anonym sagde ...

Der er vel i og for sig ikke noget galt i resource leveling, hvis detailplanerne bare bliver holdt i kort snor, som Bjarne skriver?

Hvis tallene og initialerne bliver fjernet lige så snart, man har fået lavet et overslag, om de enkelte deltagere har nok at lave i det kommende sprint, og om de enkelte opgavers længde passer nogenlunde med længden af de user stories, som er taget med.
Inden mødet slutter rækker teamet stadig nogle fingre i vejret - hvor man vel og mærke lader sin mavefornemmelse og ikke hukommelsen om tallene være beslutningsgrundlaget for, hvor mange fingre, der kommer i vejret, så er risikoen vel ikke, at man bliver talrytter, vel ikke så stor?

Så vidt jeg husker (jeg sov vist ikke på det tidspunkt), nævnte Hubert Smith heller ikke noget om, at de beholdt detailplanen med timetallene, når de var færdige med mødet.

Unknown sagde ...

Det som fangede mit øje, var ikke så meget, at de havde skrevet initialer og tid ved siden af sedlerne på tavlen - det var mere, at nogen havde gjort sig det besvær at overføre informationen til sedlerne. Der er derfor gode odds for, at planen forlader lokalet. Vi kan dog ikke ud fra sammenhængen sige noget om, hvorvidt den havner på et scrumboard eller i bunden af en skrivebordsskuffe.

Det kan være OK, hvis planen kun er teamets arbejdsredskab i at få lagt en god plan - jeg vil dog stadig advare imod, at det nemt kan udarte sig til "dig vs. mig"-tænkning fremfor "os"-tænkning, specielt for utrænede teams ... og det også selvom planen ikke forlader rummet.