Kickstart je project met een Walking Skeleton

Dirk Techniek

Yes, een nieuw project! Je weet wat er gebouwd moet worden en ziet het eindresultaat al helemaal voor je. Maar wacht even, hoe weet je of de applicatie ook echt gaat werken? De oplossing: begin met een ‘Walking Skeleton’. Maar wat is dat eigenlijk en waarom bouw je dat?

Wat is een ‘Walking Skeleton’?

Eigenlijk heel simpel: de allersimpelste versie van het product die alle onderdelen raakt en verbindt. Dus nog veel minder dan een ‘minimal viable product’ (MVP) of een ‘minimal lovable product’ (MLP). Het is dus geen prototype of proof of concept. Een Walking Skeleton wordt ook wel een ‘spanning application’ of een ‘Tracer Bullet’ genoemd.

Als je dat skelet van de applicatie eenmaal hebt, kun je vervolgens steeds stukjes toevoegen. Zeg maar de spieren en het vet. Daarbij let je erop dat je eerst de stukken toevoegt die de meeste meerwaarde hebben. Dit past natuurlijk heel goed bij agile werken, waarbij je in iteraties telkens iets toevoegt aan het product.

Waarom een ‘Walking Skeleton’?

Als je al vroeg in een project een Walking Skeleton ontwikkelt dan krijg je snel werkende en testbare software. De focus ligt hierbij op de infrastructuur en minimale functionaliteit, niet op de ‘nice to haves’. Dit betekent dat eventuele problemen die zich kunnen voordoen al in een vroeg stadium aangepakt kunnen worden.

Voor een opdrachtgever is het voordeel dat er in korte tijd dus een werkende applicatie staat, die echt van voor tot achter werkt. Nadat je de belangrijkste risico’s gedekt hebt kan de opdrachtgever bepalen aan welke onderdelen eerst verder moet worden gewerkt. Deze methode komt erg goed van pas als een applicatie uit één grote flow bestaat door verschillende modules heen. Als je per module aan de slag zou gaan, dan zou je de applicatie pas na de laatste module werkend zien en weet je dan pas zeker of alles netjes op elkaar aansluit.

Met de bouw van een Walking Skeleton zie je al na een paar weken of alles ook gaat werken zoals je had bedacht. Groot bijkomend voordeel: je kan de applicatie dan ook veel eerder aan bijvoorbeeld potentiële klanten demonstreren!

Wat zijn de voordelen voor het development team?

Ook voor het team is het prettig om op deze manier te werken. Zo kun je snel aan de slag met concrete functionaliteit. Hierdoor zie je ook of het ontwikkelproces goed loopt en hoe de samenwerking met de opdrachtgever is.

Als het skelet eenmaal staat is er nog een ander voordeel: het is veel makkelijker om verschillende developers aan verschillende delen van de applicatie te laten werken. Je weet namelijk al dat de onderdelen goed op elkaar aansluiten. Daarvoor is dus minder afstemming nodig.

OK, klinkt tof allemaal, maar hoe werkt dat nou in de praktijk?

Barend, developer bij Infi, vertelt: “We werken momenteel voor een nieuw project aan een Walking Skeleton. Bij de bouw van deze applicatie is het extra waardevol om hiermee te beginnen omdat er een afhankelijkheid van een externe module is. Als het niet zou lukken om met die module te koppelen, dan heeft doorontwikkeling geen zin meer. Ook zien we in een vroeg stadium waar de risico’s zitten, voordat we veel tijd steken in de andere onderdelen.”

Met deze informatie kunnen we de kosten voor het doorontwikkelen van het product veel beter inschatten.

Barend vervolgt: “Maar ook bij het verder uitwerken van de workflow werkt dit goed. De workflow van deze applicatie heeft meerdere varianten, dus het is logisch om eerst één zo’n variant helemaal werkend te maken met alle gewenste functionaliteit. Daarna kan je wellicht de vormgeving in orde maken, zodat de opdrachtgever met de echte applicatie de markt op kan in plaats van met prototypes en mock-ups. En daarna… nou ja, dat bekijk je dan – als je zover bent!”

Meer weten?

Meer weten over Walking Skeletons, agile werken, of gewoon eens van gedachten wisselen over een nieuw idee? Neem dan contact op met onze projectmanager Dirk via 030-232 5888 of dirk@infi.nl.

Een afspraak maken bij ons op kantoor of wil je even iemand spreken? Stuur ons een mail of geef een belletje.