SOFTWAREONTWIKKELING
19/11/2024 • Kris Vandebroek

Progressive elaboration: De ‘Asteroids’-aanpak voor Agile

Complexiteit vernietigen, één Epic tegelijk

Herinner je je de Atari-klassieker Asteroids nog? Als je het kent, roept het waarschijnlijk heel wat nostalgie op. Voor wie het niet kent: je bevindt je in de ruimte, bestuurt een schip en wordt omringd door gigantische, traag bewegende asteroïden. Klinkt eenvoudig, toch? Maar elke keer dat je er een stuk schiet, spat ze uiteen in kleinere, snellere fragmenten die moeilijker te raken zijn en moeilijker te ontwijken. 

Wanneer je het spel voor het eerst speelt, lijkt het een goed idee om vooral te schieten op de grootste asteroïden. Die vliegen namelijk trager en zijn gemakkelijker te raken. Maar daardoor ben je al snel omringd door een zwerm van kleine rotsen. Je verliest de controle en... 💥 BOOM! Game over.

Klinkt herkenbaar? Dit scenario lijkt sterk op situaties waarbij we de controle verliezen bij complexe projecten. 

Er is een betere manier! Er is een strategie die werkt in software development en die ook werkt in Asteroids. In software development noemen we het Progressive Elaboration.

Grote problemen opsplitsen: De Asteroids-aanpak in Agile

Wil je een high score halen in Asteroids, dan focus je best op één grote asteroïde. Systematisch probeer je die op te splitsen in kleinere brokstukken tot ze helemaal weg zijn. Dit zorgt ervoor dat je op elk moment in controle blijft, doordat je het aantal asteroïden dat rond jou vliegt, tot een minimum beperkt. En die andere grote asteroïden? Die kan je gemakkelijk in de gaten houden en ontwijken.

Wanneer die eerste grote asteroïde volledig geëlimineerd is, kan je jouw vizier zetten op de volgende.

Hetzelfde geldt voor grote, complexe uitdagingen in softwareontwikkeling. Als je meerdere Epics (een groot en complex probleem) tegelijk probeert op te lossen, resulteert dat vaak in chaos doordat het team heel veel informatie en details in hun hoofd moet vasthouden (Cognitive Load). 

Door gebruik te maken van Progressive Elaboration kan je jouw focus toespitsen op die ene Epic die de meeste waarde zal brengen. Die kan je opsplitsen in beheersbare stukjes (Features of User Stories) en prioriteren. Vervolgens kan je de analyse dieper doen op het stukje met de hoogste prioriteit. Op deze manier blijft alles beheersbaar en vermijd je het ‘Game Over’-gevoel wanneer een project uit de hand loopt.

Progressive Elaboration toepassen: 3 technieken

Hier zijn drie methoden om de Asteroids-aanpak te gebruiken en complexiteit terug te dringen, terwijl je blijft focussen op het leveren van waarde:

1. User Story Mapping

Gebruik deze methode (reference card) als je een nieuw product of een uitgebreide end-to-end (E2E) service lanceert.

Stap 1: Breng de processtappen van de eindgebruiker in kaart.
Definieer elke stap in de klantreis en identificeer alle betrokken persona’s.

Stap 2: Maak een lijst van functionaliteiten.
Noteer voor elke stap de belangrijkste problemen en mogelijke functies.

Stap 3: Kies een kleine, logische set.
Wat is de meest minimale set van functies die nodig zijn om een stap te zetten naar het end-to-end proces van de gebruiker. We willen waarde leveren, inzichten bieden of risico’s verkleinen.

Stap 4: Opdelen in kleinere delen.
Identificeer de eerste ‘asteroïden’ om op te focussen. Splits ze op tot op User Story-niveau.

Stap 5: Ontwikkel iterarief.
Ontwikkel per User Story. Tegelijk kan je het grote geheel door middel van de User Story Map in de gaten houden.

2. Upstream Kanban

Deze techniek is vooral nuttig wanneer je een bestaand product wilt verbeteren of uitbreiden.

Het Upstream Kanban bord visualiseert alle “Asteroids” die op jouw team afkomen. Op elk moment in de tijd is er een ruime keuze aan functionaliteiten die we kunnen bouwen. Dit zijn onze “Options”. Die moet je prioriteren volgens waarde en dit wordt getoond door de volgorde op het bord. Wanneer het team de capaciteit heeft om de volgende asteroïde aan te passen, gaat deze naar “Discovery”. Hier gaan we de Progressive Elaboration techniek toepassen. We proberen de vraag op in kleinere delen. Deze prioriteren we en als de delen klein genoeg zijn, kunnen we de effectieve oplevering ervan doen (detailanalyse en ontwikkeling).

Stap 1: Visualiseer ‘asteroïden’ op een Kanban-bord.
Maak een lijst van opties die je wilt onderzoeken.

Stap 2: Prioriteer op waarde.
Sorteer op basis van potentiële uitkomsten of waarde.

Stap 3: Pak items op wanneer er capaciteit is.
Trek een optie in de Discovery-fase om te analyseren en op te splitsen.

Stap 4: Stuur door naar ontwikkeling.
Zodra een item helder gedefinieerd is, kan het door naar de ontwikkelingsfase.

3. Mindmapping

Deze techniek is flexibel en werkt goed, zelfs voor kleinere taken zoals het schrijven van een blogpost.

Stap 1: Gebruik een mindmap-tool of -papier. Schrijf het grote probleem op en splits het op in kleinere onderdelen. Prioriteer deze.

Stap 2: Werk gefocust. Pak telkens één item aan en herhaal het proces totdat je duidelijke, uitvoerbare taken hebt.

Stap 3: Houd het grote geheel in zicht. De mindmap helpt je om het einddoel voor ogen te houden terwijl je de uitvoerbare taken uitvoert.

Houd complexiteit onder controle en lever waarde

Door bovenstaande technieken toe te passen, voorkom je dat projecten ontsporen. Je beheerst de complexiteit en levert stapsgewijs waarde – net zoals het verbrijzelen van asteroïden voordat ze je schip overweldigen.

Wat is jouw volgende grote ‘asteroid’? En hoe kan je deze technieken gebruiken om je projecten beheersbaar te maken en meer waarde te leveren?

Benieuwd naar meer? 🎁 Wij bieden 5 gratis brainstormsessies aan met een Agile Coach.

En als je nood hebt aan een pauze, speel hier een remake van het originele Asteroids-game!