Een engineer die de hele nacht doorwerkt. Net voor de deadline klaar. Hij typt de laatste regel code, plugt de stekker erin en drukt op Enter. Alles werkt in een keer. Applaus! Dit is hoe het gaat in films. In de echte wereld is dat het moment dat je erachter komt dat je toch nog wat specificaties vergeten was.
Alles in een klap omgooien (big bang aanpak) klinkt vaak als de snelste of meest efficiente route. Maar in werkelijkheid is stapsgewijs bijna altijd de betere strategie.
Waarom is dat zo?
- Je werkt altijd vanuit een werkend geheel. Na elke stap heb je een systeem dat draait. Bij big bang heb je pas op het allerlaatst iets dat werkt. En als het dan niet werkt, moet je alsnog stap voor stap terugwerken totdat het wel weer werkt.
- Je kunt veel eerder uitrollen en testen. Een subsysteem vervangen is een overzichtelijke klus. Je krijgt eerder feedback, eerder resultaat.
- Als er iets misgaat weet je precies waar je moet kijken. Je bent immers slechts op een klein gebied aan het werk. Bij big bang kan de fout overal zitten. Hardware, software of in de communicatie daartussen.
- Je kunt tussentijds bijsturen. Gaandeweg veranderen eisen, je krijgt nieuwe inzichten. Bij een stapsgewijze aanpak pas je je zo aan. Bij Big bang zit je veel meer vast aan het oorspronkelijke plan.
Een stapsgewijze aanpak vraagt iets van je: je moet oud en nieuw naast elkaar laten bestaan. Tijdelijke interfaces bouwen, rekening houden met backwards compatibility en accepteren dat je tijdelijk een hybride systeem hebt. Tijdelijk kan natuurlijk permanent worden als je niet uitkijkt. Dit kost moeite en planning, maar die moeite is wel voorspelbaar.
Heb jij weleens een big bang migratie meegemaakt? Ik ben benieuwd hoe dat afliep.