Geen uren schrijven maar user stories pokeren met punten.
Uren verantwoorden in de oude wereld
Als bedrijven starten met scrum, is er nog wel eens de neiging om user stories in te schatten in uren. Medewerkers zijn namelijk gewend om hun werkzaamheden in uren uit te drukken. In uren denken is echter ouderwets en het is een typische IT-gedachte om “uren te schrijven”. Dat denken in uren en werken aan langdurige projecten zonder scrum waarbij aan het eind (vaak buiten budget en deadline) pas wordt opgeleverd, is traditionele software-ontwikkeling en noem ik de oude wereld. Werken met scrum vereist een andere denk- en werkwijze. Weg met dat oude denken: niet meer de uren verantwoorden, maar met scrum poker user stories inschatten in punten!
Meerdere factoren meewegen bij pokeren
Werk inschatten gebeurt bij scrum dus niet in tijd/uren maar in punten. De hoeveelheid werk is ook niet het enige dat wordt geschat. Bij het pokeren van user stories, worden er meerdere zaken meegewogen:
- Hoeveelheid werk
Hoe meer werk iets is, des te meer punten er worden gegeven. Maar let op: iets met dubbele punten is níet twee keer zoveel werk als een user story met de helft van dat aantal punten. Dit komt omdat de overige zaken die hier worden genoemd ook meewegen. - Complexiteit
Als iets moeilijker is, worden daar meer punten voor gegeven. De hoeveelheid werk en ervaring met die werkzaamheden, dragen ook bij aan de mate van complexiteit. - Ervaring
Als een development team iets nog nooit heeft gedaan, worden daar meer punten voor gegeven. Je weet immers niet precies wat je tegen gaat komen. Aan de andere kant is een taak die al vaker is gedaan, een volgende keer misschien niet meer evenveel punten waard. Vooral bij een routineklus nemen de punten af. - Afhankelijkheid
Idealiter kan alles door en binnen het scrumteam zelf worden opgepakt en is er zo weinig mogelijk afhankelijkheid van buitenaf. Het kan voorkomen dat een tool pas kan worden opgeleverd zodra de teksten zijn goedgekeurd. Of er is per se een vinkje van een collega op een andere afdeling nodig. Dan is de afhankelijkheid dus groter en neemt het aantal story points toe. - Onzekerheid
Ook de mate van onzekerheid telt mee voor het aantal punten dat een user story krijgt. Dit heeft een verband met ervaring: hoe minder ervaring, hoe meer onzekerheid over wat er bij komt kijken om alles af te ronden.
Een eerste keer pokeren met punten kan door het gebrek aan een referentiekader vrij lastig zijn. Met het team moet je de waarde van punten vaststellen en je kunt bij het pokeren relateren aan andere user stories. Naarmate je dit vaker doet, krijg je daar een beter gevoel bij. Een nieuw teamlid moet zich ook aanpassen en wennen aan de waarde van de punten van dat scrumteam. Punten hebben geen rechtstreekse verbinding met tijd. Het enige dat speelt is dat een taak maximaal een halve dag mag duren, anders is die taak te groot. Dan moet die anders geformuleerd of opgeknipt worden, óf een user story worden.
Stelling:
“een team dat meer story points verbrandt dan een ander team, levert meer waarde“.
Verderop in dit artikel het antwoord.
Fibonacci reeks via app
Het toekennen van punten gebeurt tijdens scrum poker (ook planning poker genoemd) en het pokeren doe je met scrum pokerkaarten. Mijn scrumteam gebruikt hiervoor de app Scrum Poker Cards. Hierbij gebruiken we de Fibonacci reeks. Dat is een bewuste keuze omdat bij de standaard reeks ook een halve punt staat en na 20 komt 40, in plaats van 21 en 34 bij Fibonacci. Die 34 is ook het maximale aantal dat wij aan een user story die is opgenomen in een sprint hebben toegekend. Een forse user story want dat is ongeveer een derde van onze sprint capaciteit.
Beter besef bij alle scrumteamleden dankzij pokeren
Bij refinement en sprintplanning worden de user stories gepokerd. De user stories op de backlog worden toegelicht en vervolgens kennen alle teamleden punten toe. Dit gebeurt doordat iedereen tegelijkertijd een zelfgekozen kaart met getal toont. Door deze werkwijze met pokerkaarten, wordt gestimuleerd dat alle teamleden er zelf over nadenken en voorkom je dat teamleden worden beïnvloed door de eerste persoon die een getal roept. Als er daarin grote verschillen zijn, kunnen degenen met afwijkende punten toelichten waarom ze denken dat het meer of minder punten waard is. Soms komt dit doordat een teamlid iets benoemd waar de overige teamleden niet aan hebben gedacht, in complexiteit of afhankelijkheid bijvoorbeeld. Hierdoor ontstaat er ook besef bij alle teamleden wat er allemaal bij die user story komt kijken. Vervolgens wordt er met deze nieuwe inzichten opnieuw gepokerd en de punten liggen dan waarschijnlijk dichter bij elkaar. Dit kan je herhalen tot het team het eens is over de toe te kennen story points.
Door deze werkwijze met pokerkaarten, wordt gestimuleerd dat alle teamleden er zelf over nadenken en voorkom je dat teamleden worden beïnvloed door de eerste persoon die een getal roept.
De Product Owner pokert niet mee
Of de Scrum Master meepokert, is afhankelijk van hoe hij zijn rol invult en of het development team dit verlangt. Als hij meewerkend is en ook zelf user stories oppakt (of voldoende van de inhoud op de hoogte is), kan hij gerust meepokeren. Dan heeft hij dus eigenlijk ook gedeeltelijk de rol van teamlid. De Product Owner pokert in ieder geval níet mee. Hij heeft er namelijk baat bij dat er zoveel mogelijk user stories en werk wordt opgenomen in de sprint en zou bij wijze van spreken elke user story 1 punt geven…
Velocity bij een stabiel team
Na verloop van tijd kom je achter de teamvelocity. Hoewel velocity letterlijk snelheid betekent, wordt hiermee het aantal story points dat een scrumteam in een sprint aankan bedoeld. Dat weet je niet na twee sprints al, eerder na een sprint of vijf. Voorwaarde hiervoor is wel dat het scrumteam stabiel is, zonder wijzigingen van teamleden en gelijke beschikbaarheid. De velocity zegt dus iets over hoeveel punten een scrumteam aankan onder dezelfde omstandigheden. Dus niet met een developer een week op vakantie, of met een nieuw teamlid erbij die een andere dynamiek veroorzaakt, maar hetzelfde team met dezelfde bezetting. De velocity draagt bij aan de voorspelbaarheid en zegt iets over de prestaties van het scrumteam.
Een stabiel scrumteam presteert steeds beter. Het team wordt beter in staat om de story points in te schatten en het percentage story points dat ook daadwerkelijk wordt verbrand neemt toe.
Bezetting in sprintdagen
Vanwege de stabiliteit en om dezelfde omstandigheden te creëren, bekijken we aan het begin van de sprintplanning eerst naar de beschikbaarheid van het team. Officieel hoort bij scrum iedereen dedicated in het team te zitten, maar door rollen hebben onze teamleden ook werkzaamheden, verantwoordelijkheden en afspraken buiten de sprint (de user stories op ons scrumbord) om. Naast deze taken bij die specifieke rol zijn er bijvoorbeeld ook vrije dagen, cursussen en part-timers.
Per teamlid kijken we naar hoeveel dagen in de sprint het teamlid beschikbaar is voor het scrumteam. Dat tellen we bij elkaar op en zo weten we het aantal sprintdagen dat het scrumteam aan de sprint kan besteden. Vervolgens is het een kwestie van inschatten en logisch nadenken. Het duurt een aantal sprint voordat een team stabiel is en weet hoeveel punten het aankan. Op een gegeven moment weet een team bijvoorbeeld dat er bij 50 sprintdagen ongeveer 100 punten kunnen worden afgerond. Als bij de inventarisatie van de bezetting blijkt dat er bij de komende sprint vanwege vakanties maar 40 sprintdagen beschikbaar zijn, dan kan je er donder op zeggen dat het team geen 120 story points gaat afbranden.
Het antwoord op de stelling
“een team dat meer story points verbrandt dan een ander team, levert meer waarde”:
Onzin! Dit is namelijk echt appels met peren vergelijken. Ieder team heeft een andere perceptie van story points. Wat bij het ene team 3 punten waard is, kan voor een ander team 13 punten tellen. Ieder team heeft zijn eigen perceptie en schaalverdeling. Dat is ook prima, want scrum is slechts een kader. Je kunt dus nooit zeggen dat een team met 120 story points productiever is of meer waarde levert dan een team dat “slechts” 40 punten heeft verbrand.