De magie van Agile forecasting

Gepubliceerd: 8 januari 2020

Jeffrey Mulder

Product Owner

Als Product Owner in een Agile/Scrum omgeving heb je over het algemeen niet veel zekerheden om mee te werken. Desondanks verwachten klanten vaak wel een inschatting van de projectkosten en de benodigde ontwikkeltijd. Laat ik het maar gelijk zeggen: er is geen sluitende methode voor het plannen van een Agile/Scrum project. Echter is het goede nieuws dat er wel practices bestaan die jouw planning enige richting kunnen geven, 'de magie van Agile forecasting'.

bron: www.dilbert.com
bron: www.dilbert.com

Limbo

Je herkent wellicht de situatie dat je een kosten-/urenschatting moet afgeven voor een nieuw project. De meeste wensen zijn niet meer dan een globale epic en de velocity van het ontwikkelteam is nog onbekend. Wellicht weet je überhaupt nog niet welk team aan jouw product gaat werken. In het slechtste geval bevat het project nieuwe technieken, waardoor jouw schattingen nog verder onder druk komen te staan. De aanpak die ik in het verleden heb gehanteerd was om de epics door het team te laten ‘ballparken’ (globaal sizen). Vervolgens deelde ik het aantal storypoints door de verwachte sprintvelocity o.b.v. de resultaten die het team in een ander project had behaald. Tot slot hield ik rekening met een uitloop/marge van ongeveer 25% et violá! Deze methode is niet bepaald nauwkeurig en het duurt dan ook niet lang voordat de eerste onverwachte taken boven komen drijven en de planning onder druk komt te staan. Dat moet beter kunnen!

Cone of Uncertainty

Het feit dat het schatten van tijd en uren in het begin van een project bijzonder moeilijk is wordt geïllustreerd in de ‘Cone of Uncertainty’ (CoU). De waterval-variant van de CoU demonstreert dat bij de start van een project schattingen tot wel 4x te groot of te klein (0.25x) kunnen zijn. Naarmate verschillende projectfases worden afgerond worden de verschillen tussen de schattingen t.o.v. de behaalde resultaten steeds kleiner.

Cone of uncerntainy
Cone of uncerntainy

De Agile-variant van ditzelfde model geeft hetzelfde beeld, maar dan met het verstrijken van de sprints. In elke sprint worden alle waterval-fases circulair doorlopen. Naarmate er meer sprints worden opgeleverd doet het ontwikkelteam steeds meer ervaring op en raken teamleden steeds verder op elkaar ingespeeld. Hierdoor worden de schattingen nauwkeuriger en sprint resultaten steeds voorspelbaarder.

Cone of Uncertainy
Cone of Uncertainy

Een conclusie die uit het model kan worden getrokken is dat het bijzonder interessant kan zijn om bij aanvang van een project eerst een voorbereidende ‘Sprint 0’ aan te bieden aan de klant. In deze sprint kunnen complexe onderdelen worden onderzocht en voorbereid, waardoor er team gerichter kan schatten en tevens al de nodige ervaring opdoet met het project en elkaar. De CoU toont aan dat de afwijkingsmarges vervolgens dalen van 4x (0.25) naar 3x (0.33). Wanneer de sprint resultaten verder stabiliseren kan je als Product Owner de stap maken naar Forecasting.

Forecasting

Zoals je wellicht al weet kan je de velocity van het ontwikkelteam visueel maken in een ‘Burndown chart’. In deze grafiek wordt het aantal storypoints dat niet volledig is opgeleverd op een tijdlijn gezet. Met deze grafiek kan het team de voortgang van een sprint monitoren. Een burndown-chart kan er als volgt uit zien:

Burndown chart
Burndown chart

Pro-tips

Als je merkt dat de lijn in jouw burn-down chart niet in beweging komt dan kunnen er twee dingen aan de hand zijn:

  • Items worden niet afgerond. Het ontwikkelteam zou altijd een focus moeten hebben op afronding.
  • De items in de sprint zijn te groot. Splits de grote taak op in kleinere sub-taken, welke wel nog steeds afzonderlijk opgeleverd kunnen worden.

Wanneer de velocity van het ontwikkelteam enigszins is gestabiliseerd (zie CoU) kan jij als PO jouw grote goochelshow starten! Tromgeroffel... Je draait de Burndown grafiek om en zet de burn-up grafieken van alle afgeronde sprints achter elkaar! Trek vervolgens één rechte lijn langs de bovenkant van de grafiek en één langs de onderkant. Let the forecasting magicshow begin.

Forecasting Truc 1

Bepalen op welke datum feature X wordt opgeleverd:

  • Tel de storypoints op van de gewenste feature en alle features die daarbij en daarvoor worden opgeleverd.
  • Trek een horizontale lijn op de hoogte van het aantal storypoints dat je hebt berekend.
  • De groene lijn geeft aan op welke datum de feature in het meest positieve geval wordt opgeleverd.
  • De rode lijn toont hetzelfde voor het meest negatieve scenario.

Forecasting Truc 2

Fixed scope forecast
Fixed scope forecast

Bepalen welke features er zijn opgeleverd op datum X:

  • Zet alle epics, stories en taken (inclusief de reeds opgeleverde) van onder naar boven op een stapel kijkend naar het aantal storypoints.
  • Trek een verticale lijn ter hoogte van de gekozen datum.
  • De groene lijn geeft aan welke features in het meest positieve geval worden opgeleverd.
  • De rode lijn toont hetzelfde voor het meest negatieve scenario.
Fixed time forecast
Fixed time forecast

Forecasting Truc 3

Bepaal of een bepaalde feature op een bepaalde datum opgeleverd kan worden. Doe dit door truc’s 1 en 2 te combineren. In het voorbeeld kan je zien dat het niet realistisch is om feature ‘C’ op de gekozen datum op te willen leveren.

Fixed time & scope forecast
Fixed time & scope forecast

The road to… ?

Wanneer je de forecasting-modellen elke sprint bijwerkt dan heb je steeds een aantal handige overzichten om te gebruiken in het planningsoverleg met jouw klant. Met het ‘Fixed time forecast’ model kan je heel goed spelen met de planning door te schuiven met de datum of door de blokken in de kolom met epics/features van volgorde te veranderen. Pro-tip De forecasting-modellen tonen scenario’s aan de hand van positieve en negatieve resultaten. Het kan echter zijn dat een in de soep gelopen sprint jouw modellen volledig in de war gooit. Laat de sprint dan vooral weg uit het model. Ik wil je heel veel succes wensen bij het visualiseren van jouw planningsuitdaging. Laat vooral een comment achter met jouw ervaringen!

Opmerkingen

  • 9 januari 2020

    Martijn

    Heldere uitleg en enorm volledig! Heel waardevol.

Laat een bericht achter
Aantal tekens:0 / 500

Beveiligd met reCAPTCHA.PrivacyVoorwaarden