Holdopdelt og produktorienteret SCRUM-simulering med LEGO-klodser udgave for små og mellemstore virksomheder Kan tilpasses andre iterationsbaserede metoder. Original version fra februar 2009 skrevet af Alexey Krivitsky Seneste version 2.0, oktober 2011 [email protected] Oversættelse til dansk af Jakob Frandsen, Janurary 2012. Dette dokuments distribution er underlagt Creative Commons Attribution 3.0 Unported License 1 FORORD HVORFOR LEGO? PÅSKØNNELSER NUVÆRENDE VERSION RETTIGHEDER WEBSITE OG OVERSÆTTELSESPROJEKT SPILLET VARIGHED, GRUPPESTØRRELSER, MATERIALER ROLLER Produktejer Scrum Masters Holdmedlemmer Testere - valgfri rolle Tillad ikke tilskuere HVAD DU SKAL LÆGGE MÆRKE TIL Adfærd Kommunikationstil Når processen knækker SPILLETS GANG FORBEREDELSE: Holddannelse FORBEREDELSE: Projektdefinition FORBEREDELSE: Opbyggelsen af backloggen FORBEREDELSE: Estimering Den hurtige teknik - “sortering i svømmebaner” Planning poker med flere hold SPILLET: Iterationsplanlægning SPILLET: Iterationerne SPILLET: Iterationsevaluering SPILLET: Iterationernes cyklus EFTER SPILLET: Slutevaluering VARIATIONER Uventede påvirkninger Enterprise Scrum Lad os høre om dine erfaringer TAK! 2 FORORD HVORFOR LEGO? Gennem de sidste par år har jeg været træner på mange SCRUM-kurser, en del af dem certificerede. Disse kurser har altid gjort brug af SCRUM-simuleringer, men jeg har altid følt at de kunne være bedre. SCRUM-simuleringer skal efter min mening føles som spil, og skal som minimum indeholde: 1. ÅBNE BACKLOGS DER FORDRER IDÉER fremfor DETALJEREDE INSTRUKTIONER Vi starter spillet med en åben backlog. Det er ment som en invitation til samarbejde mellem kunden og holdene. Man kan som træner vælge af have backloggen fyldt ud fra starten, men i så fald bør man undgå at det er præcise “kommandoer”. Pointen er nemlig at vi med øvelserne vil demonstrere et helt andet forhold mellem kunde og produktionsholdet end deltagerne måske er vant til. 2. REFLEKTERENDE PRODUKTUDVIKLING fremfor EN PRÆCIST SPECIFICERET OPGAVELISTE Vi skal lave produktudvikling, ikke micromanagement. Derfor skal backloggen indeholde visioner, der viser retningen for det endelige produkt i stedet for fuldt udspecificerede opgaver. 3. HOLD, DER SAMARBEJDER OM EN FÆLLES MÅL fremfor KONKURRENCE OM HVEM DER FÅR FLEST POINTS. Spillet fungerer for op til omkring 20-25 personer, der selvfølgelig holdopdeles. Det vil normalt være naturligt for holdene at konkurrere mod hinanden, så det er vigtigt at nævne at det er meningen at deltagerne skal samarbejde på tværs af holdene. 4. MENINGSFYLDTE OG BRUGBARE MÅLERESULTATER fremfor TAL FOR TALLENES SKYLD Når trænerne beder deltagerne om at rapportere målinger er det vigtigt at holdet kan se meningen hermed, så der bliver skabt en ansvarsfølelse. Holdet skal eje processen. 3 5. LØBENDE FORBEDRINGER fremfor ALT ELLER INTET Efter hver iteration lærer deltagerne mere og mere. Derfor er det vigtigt at spillet tilrettelægges så holdene kan bruge deres erfaringer til at forbedre processen undervejs. PÅSKØNNELSER Tidligt i 2009 hjalp Mykola Gurov mig til at se LEGOs potentiale som et “API”1 for simulering af produktudvikling. Senere samme år skabte jeg den første version af spillet kaldet “Udvidet SCRUM simulering med LEGO” efter diskussioner med William Wake, Jurgen De Smet, Yves Hanoulle og Xavier Quesada Allue. Siden den første udgivelse på Scrum Alliances hjemmeside har jeg modtaget mange emails med positive tilkendegivelser for mit arbejde. Jeg vil gerne takke alle dem, der har bidraget med input og erfaringer med simulationer: Gerry Kirk, Tim Yevgrashyn, Steve Rogalsky, Andriy Yevtushenko, Geoff Watts, Laurent Godé, Radu Davidescu, Martine Devos, Jo Newcombe Cook, Jakob Frandsen, Martin Muntzing, Ola Ellnestam, Dusan Kocurek, Danny (Danko) Kovatch, Gustavo Quiroz, Jukka Lindström, Eduardo Bregaida og Nathaniel Cadwell. En særlig tak til Robin Dymond og Sergey Dmitriev for at lade mig afprøve spillet på deres Certified Scrum Master kurser. NUVÆRENDE VERSION Siden førsteudgaven blev udgivet i 2009 har masser af trænere anvendt spillet. Deres feedback og observationer har gjort mig i stand til at udgive denne forbedrede version. RETTIGHEDER Distributionen af dette dokument er underlagt Creative Commons Attribution 3.0 Unported License Alle kan videredistribuere, rette, ændre og bygge videre på dette værk, selv til kommercielle formål, så længe de kreditterer den oprindelige forfatter. Dette er den mest imødekommende licens der kan tilbydes og anbefales 1Læs mere om “API” her: http://en.wikipedia.org/wiki/Application_programming_interface 4 for maksimal udbredelse af licenserede materialer. WEBSITE OG OVERSÆTTELSESPROJEKT Vi besluttede os for at skabe et sted, hvor andre med interesse for at bruge LEGO i deres SCRUM-undervisning kunne tage hen og bidrage med deres erfaringer og selv finde inspiration: www.lego4scrum.com - Deltag i fællesskabet og hjælp os med at sprede ordet. Et af vores løbende projekter er at oversætte dette dokument til andre sprog. På hjemmesiden kan du se, hvilke sprog dokumentet findes på allerede og få oplysninger om, hvordan du kan hjælpe med at oversætte til nye sprog. På forhånd tak for din interesse og hjælp. SPILLET VARIGHED, HOLDSTØRRELSER, MATERIALER Her vises et “standard”-eksempel, som du kan tilpasse efter dine egne og deltagernes behov. Tidsforbrug: 100-120 minutter ● 100 minutter - ved brug af hurtige holdestimeringsteknikker ● 120 minutter - ved brug af planning poker eller andre estimeringsværktøjer Størrelse på grupperne: 4-25 deltagere ● Det optimale er 2-3 hold med 4-6 personer på hvert hold (ialt 8-18 deltagere) ● Kan udvides med Scrum Masters LEGO-æsker: Ca. en LEGO-æske per hold med 4-6 deltagere ● Jeg anbefaler at bruge “Basic Brick Set #6177”2 ● Det passer meget godt med fire æsker for 20 deltagere Andet udstyr ● Post-its, flip-over ark, tusser, gerne tavler ● Planning poker kortsæt (evt. hjemmelavede) Fysisk opstilling: et bord per 4-6 personers hold ● Ekstra plads (et bord eller gulvplads) til at stille det samlede produkt 2 Besøg online LEGO-butik: http://shop.lego.com/en-US/LEGO-Basic-Bricks-Deluxe-6177 5 ROLLER Produktejer Som træner påtager jeg mig rollen “produktejer”. Målet er at illustrere, hvordan produktejeren opfører sig, og hvad de typisk forventer sig af holdene. Scrum Masters Dette spil kan spilles uden dedikerede Scrum Masters, men af og til inviterer jeg andre instruktører med i spillene for at agere som Scrum Masters. Alternativt kan hvert hold udnævne en Scrum Master. Fordelen ved at have erfarne Scrum Mastere med er at de konstant vil være fokuserede på process, hvilket giver plads til at produktejeren kan være fokuseret på sin egen rolle, og hele spillet glider mere naturligt. Holdmedlemmer Alle andre deltagere er “menige” holdmedlemmer. Testere - valgfri rolle Hvis du synes kan du tilknytte testere til holdene. Det vil i så fald være deres ansvar at hjælpe deres hold med at dokumentere aftaler om krav og design, så de kan lave kvalitetskontrol. Problemet ved at have dedikerede testere, som jeg har oplevet det, er at testerne i stedet for at bygge LEGO bruger deres tid til at overvåge kvalitet. Siden målet med spillet er at lære ved at “få hænderne beskidte” mener jeg det er vigtigt at få alle engageret i selve byggeprocessen. Ingen tilskuere! Spillet er så sjovt at spille at tilskuere efter min mening vil spilde deres tid. Hvis du har andre erfaringer hører jeg meget gerne fra dig. HVAD DU SKAL LÆGGE MÆRKE TIL 6 Adfærd Jeg har lagt mærke til at deltagerne tager deres arbejdsvaner med ind i legen, og især under pres ser jeg en tendens til at falde tilbage til at bruge “gammelkendte” metoder og adfærd. Dette spil er bevidst designet til at sætte deltagerne under pres, netop for at udstille dårlige vaner der kan blokere for indlæringen af Agile metoder. Mit mål som træner er at udstille disse dårlige vaner så alle kan se, hvad de skal være opmærksomme på og undgå. Kommunikationstil Vær opmærksom på “ledere”, “diktatorer”, “højtråbere” og lignende. Det er godt input til efterfølgende evalueringer og personlig coaching. Når processen knækker Hold godt øje med de dele af processen som holdene ikke klarer så godt. Et eksempel kan være under diskussionen om krav, hvor holdene måske ikke stiller nok afklarende spørgsmål. De problemer du identificerer her kan meget vel være problemer, som deltagerne også vil få i et rigtigt projekt. De skal konkretiseres og fremlægges i evalueringen efter spillet. SPILLETS GANG Simulationen er delt op i tre dele; forberedelse, spillet og efterspillet. Forberedelse: ● Holddannelse ● Projektdefinition ● Opbyggelse af backloggen ● Estimering Spillet: ● Iterationsplanlægning ● Selve iterationsafviklingen ● Iterationsevaluering Efter spillet: 7 ● Slutevaluering FORBEREDELSE: Holddannelse Tager 5 minutter. Denne aktivitet kunne også sagtens være en del af spillet. Selvorganisering klares nemt ved blot at bede deltagerne organisere sig i grupper af 46 personer og sørge for at hver gruppe har plads til at arbejde. Dette er god opvarmning fordi der ofte skal ryddes lidt op og flyttes borde omkring. FORBEREDELSE: Projektdefinition Dette vil tage 10 minutter. Du har nu været igang i 5 minutter. Som produktejer har jeg brug for at kommunikere følgende: 1. 2. 3. 4. 5. Alle hold skal samarbejde om et enkelt produkt. De er altså ikke konkurrenter, men arbejder for den samme kunde. Holdene skal bygge en by med en række bestemte detaljer. De primære byggeklodser er LEGO, selvom andre materialer også gerne må bruges. Jeg (produktejeren) er den primære beslutningstager - det er min by.. Jeg står til rådighed for spørgsmål og feedback gennem udviklingsprocessen. Hele denne aktivitet kan eventuelt køres som “collaborative chartering”. Målet er at få holdene til at anvende SCRUM gennem byggeprocessen. Udfordringen er at kombinere disse to roller: en produktejer (der ikke ejer selve processen) og en underviser (der har interesse i at SCRUM bliver anvendt). Jeg har prøvet at løse denne udfordring på to forskellige måder: 1. 2. 8 Brug kasketter - forklar SCRUM til holdene Undervejs i undervisningen gør jeg det helt klart, hvilken kasket jeg har på - om jeg er produktejer eller underviser - så ingen på noget tidspunkt er forvirrede over hvilken rolle jeg spiller. Foregiv at være en “grøn” produktejer – lad holdene overbevise dig om at bruge SCRUM For det meste spiller jeg en produktejer, der ikke ved meget om Agile og SCRUM. Efter at have præsenteret min vision for byen beder jeg om hjælp fra holdene om at designe en passende process. Personligt kan jeg bedst lide den sidste tilgang fordi den lader deltagerne artikulere Agile værdier og derved forstærker indlæringen. FORBEREDELSE: Opbyggelsen af backloggen Dette vil tage 15 minutter. Du har nu været igang i 15 minutter. Når projektet er blevet defineret og der er enighed om processen er det på tide at gå i detaljer med byen. Som regel har jeg forberedt en række post-its, som jeg har hængt op på en tavle eller et flip-over ark. På disse post-its kan der stå: ● En-etages bygning (flere af disse, een per post-it) ● To-etages bygning (flere) ● Butik ● Skole ● Kirke ● Hospital ● Børnehave ● Busstoppested ● Vejkryds (kan tegnes) ● Park (kan tegnes) ● Flod (kan tegnes) ● Bro Nogle af disse elementer kan eventuelt tegnes på et stort ark papir (f.eks. fra en flipover), og de tilsvarende LEGO-elementer kan bygges ovenpå. Det er en god mulighed for at være kreativ og bygge noget underholdende fremfor en simpel by. F.eks. byggede vi engang en “IT-by” (inspireret af “Silicon Valley”). I den inkluderede vi selvfølgelig specielle bygninger som f.eks. et auditorium med en iPad som “storskærm”, åbne områder, en sikker bygning til webservere og et monument over en berømt IT entreprenør - det var sjovt! Imens jeg præsenterer backloggen fortæller jeg kort om hvordan jeg synes hvert element skal se ud, og forsøger at udsætte diskussioner til senere. FORBEREDELSE: Estimering 9 Dette vil tage omkring 20 minutter. Du har nu været igang i 30 minutter. Estimering - på mange måder den sværeste del af øvelsen. Her kan jeg vælge at: 1. 2. 3. Droppe estimering helt (som agile guruer faktisk anbefaler) Gøre det hurtigt og simpelt Bruge tid på øvelser med planning poker RT @RonJeffries: "Hvert år hører vi om en ny estimeringsteknik. Den rigtige Agile tilgang vil være slet ikke at estimere." - @agilemanager [YES!] Alt efter hvor meget tid, der er til rådighed vælger jeg enten den simple teknik eller planning poker. Den hurtige teknik - sortering i “svømmebaner” Jeg lærte om denne teknik fra www.theagilepirate.net. Min anvendelse er dog knap så sofistikeret. Se tegningen nedenfor. Baseret på “triangulation concept”3 og svømmebanerne (swimlane sizing4) optegner vi ganske enkelt kolonner med baner og tildeler hver bane forskellige opgavestørrelser (1, 2, 3, 5, 8, 13, osv. hvis du foretrækker Fibonacci - lidt matematik er altid godt). Herefter sætter deltagerne opgaverne (user stories) over i de kolonner der passer til deres størrelser. Dette gøres i grupper eller i plenum og kan evt. gøres i stilhed. 3 “Triangulation and other concepts for Agile estimation and planning”, af Mike Cohn http:// www.mountaingoatsoftware.com/presentations/85-an-introduction-to-agile-estimating-and-planning 4 Swimlane Sizing – Complete & Fast Backlog Estimation http://theagilepirate.net/archives/109 10 Figur 1: Svømmebanerne for estimering Hvis der er for mange deltagere til at alle kan være foran tavlen så beder jeg hvert hold sende to deltagere op af gangen indtil alle har haft mulighed for at komme til. Når alle opgaver er estimerede spørger jeg alle om det er “godt nok” til at starte med, og om de er klar til at lave noget rigtigt arbejde nu. Planning poker med flere hold At bruge planning poker5 med flere hold kræver at alle deltagere på tværs af holdene først bliver enige om en grundstørrelse. Det er simpelt: vælg en opgave, som er lille og enkel, men ikke helt triviel og beslut at det er en 2’er. Som regel bliver alle hurtigt enige om at bygningen i een etage passer godt her. Alternativt kan man lave t-shirt estimater6 (XS, S, M, L, XL) og derefter beslutte at alle “S” opgaverne er 2’ere og så fortsætte med poker. Her er nogle tips, der hjælper mig til at få planning poker til at fungere: ● Forbered en tavle med svømmebanerne (se skitsen ovenfor) 5 Planning Poker is found by James Grening in 2002 and popularized by Mike Cohn: http://en.wikipedia.org/wiki/Planning_poker 6 T-shirt sizing http://blogs.msdn.com/b/oldnewthing/archive/2009/05/12/9605143.aspx 11 ● ● ● ● ● Bed deltagerne estimere opgaverne een efter een ved at trække dem over i svømmebanerne. Bed deltagerne skrive noter på hver opgave efterhånden som de modtager detaljer og afklaringer fra produktejeren (det kan jo være et andet hold, der ender med at bygge den opgave). Aktivt opfordre til og påskønne når deltagere stiller afklarende spørgsmål som hjælper til at bestemme størrelsen på opgaverne. Når en opgave er estimeret skal den op på tavlen/væggen, så de andre hold kan drage nytte af den nye information. Når alle opgaverne er estimeret inviterer jeg alle til at komme op for at dobbelttjekke tavlen og evt. ændre det de synes er nødvendigt (det er der sjældent behov for oplever jeg). ● Hvis deltagerne ikke kender så meget til planning poker i forvejen kan det være en god idé at tage en prøverunde først så du er sikker på at de bruger den rigtige teknik. Som regel beder jeg dem gætte på følgende: “Hvad koster et stort glas Guinness i Storbritannien?” Dette tvinger deltagerne til at diskutere hvilke point de skal bruge, hvor glasset bliver købt samt hvornår – alt sammen god opvarmning før de skal til at estimere de “rigtige” opgaver. Det viser sig i øvrigt at begge teknikker, både svømmebanerne og planning poker giver tilstrækkeligt med præcision for planlægning af udgivelser (releases). Denne påstand er bevist hundredevis af gange med burn down charts. SPILLET: Iterationsplanlægning Du er nu 50 minutter inde i spillet. (Og intet er bygget endnu! Er det et udtryk for at estimering er spild af tid?) Nu hvor opgaverne er estimeret flyttes de tilbage til backloggen. Det er vigtigt at gøre iterationsplanlægningen meget synlig og derfor bygger vi en speciel tavle/væg, hvor alle kan overskue planlægningen af alle iterationer. 12 Figur 2: Planlægningstavle for flere hold - før planlægning af iteration #1 Figur 3: Planlægningstavle for flere hold - midt i iteration #2 13 Selve planlægningen tidsafgrænses til tre minutter, hvor alle hold trækker opgaver ind i kassen for deres hold. Når de tre minutter er gået spørger jeg om alle er tilstrækkeligt ukomfortable med planen til at vi kan begynde! SPILLET: Iterationerne Tager 7 minutter hver. 7-minutters iterationer anbefales da det giver nok tid til at samarbejde om konstruktionen af nogle bygninger, men ikke nok tid til at færdigpolere dem. Gennem iterationen viser vi et stopur på en storskærm for at lægge pres på holdene: Figur 4: Stopur fra www.online-stopwatch.com - ure i andre former kan også findes og bruges offline. SPILLET: Iterationsevaluering Tager 5 minutter. Når tiden er gået sikrer jeg at deltagerne stopper helt med at bygge og spørger derefter krævende: “hvor er min by?” Efter den første iteration oplever jeg ofte at ingen har tænkt på at samle færdige bygninger på f.eks. et centralt placeret bord, dvs. overvejet hvordan resultatet skal organiseres og demonstreres indenfor tidsgrænsen - lyder det bekendt? Efter den første iteration begynder holdene, kloge af skade, typisk at samle byen løbende. 14 Jeg får tit at vide at jeg er den mest venlige produktejer de har arbejdet sammen med. Alligevel ender det som regel med at intet er accepteret efter første iteration fordi når jeg ser byen “kommer jeg pludselig i tanke om at”: ● ● ● ● ● Jeg kan lide symmetri “Alt i samme farve” betyder faktisk “kun een farve per bygning, men forskellige farver for hver bygning.” Bygningerne er for små, for store eller for forskellige. Vinduerne for hver etage skal være på en lige linie <find selv på flere grunde> Ikke-færdige opgaver sættes tilbage til backloggen fra planlægningsvæggen. Man kan vælge at re-estimere udestående opgaver, selvom det er sjældent vi retter i estimaterne. Når opgaver er blevet løst tilfredsstillende, og dermed accepteret, opdaterer produktejeren burndown-chart’et og annoncerer klart og tydeligt at der kun er tre iterationer ialt og at det nu ser ud som om at det ikke bliver muligt at fuldføre alle opgaverne. Brug eventuelt et par minutter på at overveje “hvordan kan vi gøre næste iteration bedre?”. SPILLET: Iterationernes cyklus Den første iteration er næsten altid en katastrofe, så uden at spilde for meget tid på at diskutere hvor galt det gik går vi igang med planlægningen af næste iteration. Jeg har erfaret at man med tre iterationer bygger cirka 80% af backloggen i en rimelig kvalitet, så den fulde cyklus ser omtrent sådan ud: 1. Iteration #1 a. Planlægning – 3 minutter b. Selve iterationen – 7 minutter c. Evaluering – 5 minutter 2. Iteration #2 a. Planlægning – 3 minutter b. Selve iterationen – 7 minutter c. Evaluering – 5 minutter 3. Iteration #3 a. Planlægning – 3 minutter b. Selve iterationen – 7 minutter c. Evaluering – 5 minutter Ialt: 45 minutter 15 Eftersom forberedelserne tager cirka en time og iterationerne tager 45 minutter, er der omkring 15 minutter tilbage til en generel evaluering. Hele spillet tager fra start til slut 120 minutter. Med øvelse og assistance fra hjælpetrænere, der agerer som Scrum Mastere, kan spilletiden nedbringes lidt. EFTER SPILLET: Slutevaluering Det kan være en god idé at afsætte tid til en kort pause efter at den tredje iteration er evalueret, så alle kan køle lidt ned og samle sig inden vi begynder slutevalueringen (fik jeg sagt at spillet er designet til at være udmattende? Og ikke kun for deltagerne...) Når alle er tilbage i en cirkel faciliteres en diskussion om disse åbne spørgsmål: ● Hvad observerede deltagerne? ● Hvordan føles det at være en del af et SCRUM-hold? ● Hvordan var det at have korte iterationer? ● Hvor præcise var estimaterne? (forudsat at der blev vedligeholdt et burndownchart) ● Hvad ville vi have gjort anderledes fra starten hvis vi fik mulighed for at spille spillet forfra? ● Hvad var produktejerens job? ● Hvordan føles det at skulle lave så meget om efter den første iteration? ● Hvad lavede Scrum Masterne? ● Hvad vil du gøre anderledes hvis du ved at produktejeren er fraværende i løbet af iterationerne? ● Hvordan gik det med kommunikationen mellem holdene? Var der situationer, hvor et hold afhang af et andet? Hvordan blev problemerne løst? ● Hvad har deltagerne lært? VARIATIONER Uventede påvirkninger Nogle af mine venner (Askhat Urazbaev og Nikita Filippov) har designet et lignende spil, som tilføjer uventede påvirkninger til holdstørrelserne og kompleksiteten. Efter iterationsplanlægningen og lige inden hver iteration begynder kaster man ganske enkelt en terning, som enten ændrer estimaterne på en opgave eller gør et af holdmedlemmerne “syge” for en iteration, men stadig kræver at holdet fuldfører iterationen efter planen. Pointen ved at tilføje disse tilfældige ydre påvirkninger er at samarbejde bliver 16 essentielt for at kunne balancere opgaverne. Enterprise Scrum Det lykkedes mig at opskalere simulationen med LEGO til omkring 100 deltagere i 12 hold, der byggede fire byer samtidigt. Det krævede tonsvis af LEGO, men det var en god måde at demonstrere SCRUM på enterprise niveau. Erfaringer og detaljer herfra gav mig nok stof til en helt ny artikel. Lad os høre om dine erfaringer Vi hører meget gerne fra dig om dine egne erfaringer - historier fra kurser og eventuelt dine egne variationer af spillet. Find os på www.lego4scrum.com og send emails med dine idéer til [email protected]. 17 TAK! Jeg ønsker dig masser af gode projekter - fyldt med leg! Alexey Krivitsky www.lego4scrum.com 18
© Copyright 2024