Gids

Verouderde software moderniseren zonder een grote big-bang herbouw

Het oude systeem waar iedereen over klaagt hoeft niet helemaal te worden afgebroken en vanaf nul opnieuw gebouwd. Er is een rustigere, veiligere weg — en die houdt de onderneming draaiende terwijl u repareert wat echt pijn doet.

Have a nice dayHave a nice day16 min. leestijd
Verouderde software moderniseren zonder een grote big-bang herbouw

Bijna elk gevestigd bedrijf heeft er een: een stuk software waar iedereen stilletjes een hekel aan heeft. Het is traag, het is lelijk, de helft van het team kent een omweg voor de bug die nooit is opgelost, en de ene persoon die het begreep vertrok in 2019. De impuls is altijd dezelfde — alles platgooien en iets nieuws bouwen. En precies die impuls is, vaker wel dan niet, hoe goede bedrijven een jaar en een klein fortuin voor niets verliezen.

Ik heb de grote herbouw vaak genoeg fout zien gaan om er een reflex over te hebben. Een ondernemer laat me zijn krakende ordersysteem of zijn aftandse planningstool zien, zucht, en zegt een variant van “we moeten gewoon het hele ding vervangen.” En misschien doet u dat ooit ook. Maar de volledige herbouw — het oude systeem eruit rukken, er parallel een glanzend nieuw bouwen, en dan een knop omzetten — is een van de meest riskante zetten in heel de softwarewereld. Het is duur, het duurt veel langer dan beloofd, en de hele tijd vliegt u blind, hopend dat het nieuwe ding elk vreemd randgeval dekt dat het oude vijftien jaar lang stilletjes afhandelde.

Het goede nieuws is dat de big-bang herbouw bijna nooit de enige optie is, en zelden de beste. Er is een rustigere manier om te moderniseren — incrementeel, omkeerbaar, en mild voor de onderneming die ondertussen nog steeds geld moet verdienen. Dit is een gids voor die manier: hoe u herkent wat echt gerepareerd moet worden, hoe u de pijnlijke delen vervangt zonder het hele systeem plat te leggen, en hoe u weet wanneer een volledige herbouw werkelijk de juiste keuze is.

Waarom de big-bang herbouw zo verleidelijk is — en zo gevaarlijk

De volledige herbouw is verleidelijk omdat hij een schone lei belooft. Geen legacy-rommel meer, geen compromissen meer, een verse codebase die op de juiste manier is gebouwd met moderne tools. Op een whiteboard ziet het er vanzelfsprekend uit. In werkelijkheid tekent u in om jaren aan opgebouwde bedrijfslogica opnieuw te bouwen — veel ervan niet gedocumenteerd, een deel alleen levend in de hoofden van mensen die vertrokken zijn — terwijl de klok tikt en de rekeningen binnenkomen.

De diepere valkuil is het parallelle-universum-probleem. Gedurende de maanden of jaren die de vervanger kost, heeft u twee systemen: het oude, dat de onderneming nog steeds moet laten draaien, en het nieuwe, dat nog niet klaar is. Elke verandering die het bedrijf nodig heeft, moet twee keer worden gemaakt, anders raakt het nieuwe systeem achter op de werkelijkheid voordat het ooit live gaat. Teams branden op door beide in leven te houden. En omdat niemand mag overstappen totdat het nieuwe systeem alles doet, is er geen vroege winst, geen feedback, geen bewijs dat het werkt — alleen een lang, gespannen wachten op één enorme alles-of-niets-lanceringsdag.

Een herbouw vraagt u de hele onderneming in te zetten op één lanceringsdag, jaren weg, voor een systeem dat nog niemand heeft gebruikt. Dat is geen plan — dat is een gok.
wat ik zeg tegen iedereen die naar de resetknop grijpt

Er bestaat hier een bekende industrie-overlevering, en die is verdiend: het tweede systeem, de grootse herbouw, heeft de neiging drie keer zo lang te duren als geschat en aan te komen met minder functies dan het ding dat het verving. De schatting klopt niet, niet omdat mensen slordig zijn. Hij klopt niet omdat niemand bij de start alle kleine dingen kan zien die het oude systeem stil en goed doet.

Een oude houten brug waarvan verschillende versleten planken één voor één worden vervangen door frisse nieuwe planken terwijl mensen er gewoon overheen blijven lopen, in een warme platte redactionele stijl
Goed moderniseren ziet eruit als één plank tegelijk vervangen — de brug blijft de hele tijd open.

Wat 'legacy' eigenlijk betekent (het gaat niet om leeftijd)

We gooien het woord legacy rond alsof het gewoon oud betekent. Dat is niet zo. Heel wat software die al tien jaar draait is prima — saai, stabiel, betaald, en doet zijn werk. Leeftijd alleen is geen reden om iets aan te raken. De duurste fout in dit hele vakgebied is iets moderniseren dat stilletjes werkte, alleen maar omdat het er gedateerd uitzag.

Software verdient het legacy-label wanneer ze u actief in de weg zit. Wanneer u ze niet veilig kunt veranderen omdat niemand ze helemaal begrijpt. Wanneer ze niet kan koppelen aan de tools waarvan u nu afhankelijk bent. Wanneer één persoon de enige is die ze in leven kan houden. Wanneer ze zo traag of broos is dat uw team er een hele folklore van omwegen omheen heeft gebouwd. Dat is de echte definitie — niet het jaar waarin ze geschreven werd, maar de kosten die ze u vandaag oplegt en het risico dat ze meeneemt naar morgen.

Diagnosticeer voordat u iets aanraakt

Voordat één regel wordt herschreven, heeft u een eerlijke kaart nodig van waar de pijn echt zit. Meestal is het systeem waar iedereen een hekel aan heeft voor 80% prima. De ellende is geconcentreerd op een paar specifieke plekken — één traag scherm, één kapotte koppeling, één workflow die dubbele invoer afdwingt — en die paar plekken veroorzaken bijna alle klachten. Vind ze, en u heeft uw hele project gevonden.

De manier om ze te vinden is niet eerst een technische audit — het is een gesprek. Ga zitten met de mensen die het ding elke dag gebruiken en vraag hen waar het pijn doet. Waar wachten ze? Wat typen ze opnieuw? Wat vermijden ze omdat het pijnlijk is? Waar houden ze een eigen spreadsheet bij om het officiële systeem te omzeilen? Die omwegen zijn goud waard: elk ervan is een precieze röntgenfoto van een probleem dat het oplossen waard is.

  • De schermen en stappen waar mensen het meest over klagen — niet in theorie, maar in hun echte dagelijkse werk.
  • Elke plek waar gegevens twee keer worden ingetypt omdat twee systemen niet met elkaar praten.
  • De koppelingen die kapotgingen, of er nooit waren, en zo handmatig kopiëren-plakken tussen tools afdwingen.
  • Alles wat maar één persoon kan bedienen of repareren — uw single points of failure.
  • De delen die werkelijk prima zijn, zodat u ze kunt beschermen en met rust laten.
  • Wat de onderneming volgend jaar nodig heeft en waar het huidige systeem simpelweg niet in mee kan groeien.

Als u dit eerlijk doet, krimpt het project meestal. De ondernemer die binnenkwam met “vervang alles” loopt buiten met het besef dat hij drie dingen moet repareren. Dat is geen teleurstelling — het is een opluchting. Drie repareerbare dingen is een project dat u dit kwartaal kunt afronden. Een volledige vervanging is een jaar dat u misschien niet overleeft.

De strangler-aanpak: vervang het stuk voor stuk

Er is een patroon om dit veilig te doen, en het heeft een wat grimmige maar gedenkwaardige naam: de strangler-aanpak, naar de wurgvijg — een liaan die rond een boom groeit en geleidelijk diens structuur overneemt totdat uiteindelijk de nieuwe groei op eigen benen staat en de oude stam verdwenen is. Toegepast op software is het idee prachtig praktisch: u vervangt het oude systeem niet in één heroïsche ruil. U laat het nieuwe eromheen groeien, stuk voor stuk, totdat er van het oude niets meer over is dat iemand nodig heeft.

In de praktijk werkt het zo. U kiest één pijnlijk stuk — bijvoorbeeld de facturatiemodule waar iedereen een hekel aan heeft. U bouwt een moderne vervanging voor alleen dat stuk. U leidt de facturatie naar de nieuwe module terwijl al het andere ongemoeid op het oude systeem blijft draaien. U houdt het een tijdje in de gaten. Als het solide is, valt dat deel van het oude systeem stil, en gaat u naar het volgende stuk. Het oude systeem krimpt geleidelijk, als een kaars, in plaats van in één keer omver te worden gegooid.

Een diagram dat toont hoe een grote grijze legacy-softwarekist geleidelijk wordt vervangen door kleinere heldere moderne modules, verbonden via een routeringslaag, sectie voor sectie, in een nette redactionele infographic-stijl
Elke nieuwe module neemt één taak over; het oude systeem krimpt totdat er niets belangrijks meer in zit.

Wat dit zoveel veiliger maakt dan een herbouw, is dat elke stap klein, live en omkeerbaar is. U vliegt nooit blind. Elk nieuw stuk gaat snel in echt gebruik, dus u komt snel te weten of het echt werkt. Als er iets misgaat, heeft u maar één module geriskeerd, niet de hele onderneming — en u kunt meestal terugvallen op de oude weg terwijl u het repareert. U boekt winst onderweg in plaats van één angstaanjagende lancering aan het eind. En de onderneming blijft de hele tijd gewoon draaien.

Hoe het ritme er werkelijk uitziet

  1. 1
    Kies het pijnlijkste, meest op zichzelf staande stuk
    U wilt veel pijn en schone randen — een module die flink pijn doet en geen vingers in al het andere heeft. Dat is uw eerste doelwit.
  2. 2
    Zet een dunne laag voor het oude systeem
    Een kleine routeringslaag beslist welke verzoeken naar het oude systeem gaan en welke naar het nieuwe stuk. Dit is de naad die al het andere mogelijk maakt.
  3. 3
    Bouw en lanceer alleen dat ene stuk
    Vervang één module, breng hem in echte handen, en leid alleen dat plakje werk ernaartoe. Weken, geen jaren — en de rest van het systeem bewoog nooit.
  4. 4
    Stabiliseer, ga dan naar het volgende stuk
    Zodra de nieuwe module vertrouwd is, gaat het bijbehorende deel van het oude systeem slapen. Herhaal met het volgende pijnlijke stuk, lerend terwijl u gaat.
  5. 5
    Trek het oude systeem terug als het leeg is
    Uiteindelijk doet het legacy-systeem niets meer waar iemand op steunt. Pas dan schakelt u het uit — geruisloos, zonder drama, omdat alles wat belangrijk was al verhuisd is.

Merk op wat hieraan anders is dan aan de herbouw: er is geen enkele lanceringsdag om te vrezen. Er is geen parallel universum om te onderhouden. Het nieuwe systeem staat vanaf week drie in productie, verdient zijn brood en leert u dingen, in plaats van in een lab te wachten op een lancering die almaar uitloopt.

Soms hoeft u het niet eens te vervangen

Voordat u überhaupt iets vervangt, is het de moeite waard u af te vragen of het oude systeem vervangen moet worden of gewoon moet stoppen een eiland te zijn. Een verrassend aantal “we hebben een nieuw systeem nodig”-problemen zijn in werkelijkheid “onze systemen praten niet met elkaar”-problemen. De oude software doet haar werk prima — ze zit alleen in een silo en dwingt mensen gegevens met de hand heen en weer te slepen.

In die gevallen is de goedkoopste, snelste oplossing geen nieuw systeem. Het is een brug. U omhult de oude software met een verbinding — een koppeling waarmee ze automatisch gegevens uitwisselt met uw andere tools — en een moderne laag erbovenop voor de delen die mensen echt aanraken. De gedateerde motor blijft eronder zoemen; het team krijgt een nette oppervlakte en een einde aan het kopiëren-plakken. Niet glamoureus, maar vaak het hoogste rendement per euro van de hele onderneming.

AanpakRisicoTijd tot waardeWanneer het past
Integreren / koppelenLaagDagen–wekenHet systeem werkt maar leeft in een silo
Nieuwe interface op oude motorLaagWekenDe logica is prima, de UX is de pijn
Stuk voor stuk vervangenMiddelWeken per stukSpecifieke modules houden u tegen
Volledige herbouwHoogMaanden+Het fundament kan u werkelijk niet vooruit dragen
Vier manieren om te moderniseren, van lichtste touch tot zwaarste. Begin bovenaan en daal pas af als het moet.

Wanneer een volledige herbouw werkelijk de juiste keuze is

Ik heb deze hele gids besteed aan u de grote herbouw uit het hoofd praten, dus laat ik eerlijk zijn: soms is hij echt het antwoord. Er zijn fundamenten zo verrot dat geen hoeveelheid patchen, overbruggen of stuk-voor-stuk vervangen ze zal redden, en doen alsof het anders is stelt enkel het onvermijdelijke uit terwijl u geld uitgeeft aan het overeind houden van een lijk.

De eerlijke tekenen zijn specifiek. De technologie waarop het systeem is gebouwd is dood of stervende — geen ondersteuning, geen beveiligingsupdates, niemand meer over die ermee kan werken. De onderneming is zo fundamenteel veranderd dat het oude model totaal niet meer aansluit op de werkelijkheid. Of het systeem is zo verstrengeld dat zelfs kleine wijzigingen routinematig dingen op ongerelateerde plekken kapotmaken, wat meestal betekent dat er om te beginnen geen schone naden zijn voor een strangler-aanpak. Als er twee of drie van die dingen tegelijk waar zijn, houdt incrementeel werk op de veiligere keuze te zijn.

En hier is de stille beloning van het eerst doen van het incrementele werk, zelfs als u uiteindelijk toch herbouwt: tegen de tijd dat u daar bent, begrijpt u het systeem veel beter dan aan de start. Elke module die u verving leerde u iets dat de oorspronkelijke makers nooit opschreven. Een herbouw die door die kennis is gevoed, is een compleet ander, veel veiliger beest dan een die op dag-één-optimisme werd gelanceerd.

Een ontspannen MKB-ondernemer en een ontwikkelaar die samen aan een bureau een eenvoudig plan doornemen, een rustige en zelfverzekerde sfeer, in een warme platte redactionele stijl
De beste modernisatieplannen voelen met opzet saai aan — kleine stappen, altijd een weg terug, de onderneming nooit in gevaar.

Het deel dat niemand noemt: het draait vooral om mensen

Hier is iets dat de technische gidsen overslaan. Het moeilijkste aan het moderniseren van oude software zijn meestal niet de code — het zijn de mensen die er jaren aan hebben gewend. Ze kennen haar eigenaardigheden. Ze hebben spiergeheugen voor haar vreemde sneltoetsen. Een nieuwe module die objectief beter is, kan de eerste twee weken toch slechter aanvoelen, simpelweg omdat ze onbekend is. Als u dat negeert, kan zelfs een perfecte technische migratie mislukken.

De incrementele aanpak helpt ook hier, bijna per ongeluk. Omdat verandering stuk voor stuk aankomt, nemen mensen ze geleidelijk op in plaats van te worden gevraagd alles op één maandagochtend opnieuw te leren. Betrek de dagelijkse gebruikers vroeg. Laat hen de vervanging mee vormgeven voordat ze klaar is. Het team dat hielp het nieuwe facturatiescherm te ontwerpen zal het verdedigen; het team waar het op werd gedropt zal het verafschuwen, zelfs als het identiek is. Modernisering is een verandermanagementproject in een softwarekostuum.

Heeft u een systeem dat iedereen steeds dreigt te vervangen?

Voordat u zich vastlegt op een herbouw, is één eerlijk gesprek over wat echt gerepareerd moet worden de moeite waard. Wij helpen u in kaart te brengen waar de pijn werkelijk zit en de lichtste weg te vinden die het oplost — vaak een stuk kleiner dan u zou verwachten.

Bekijk hoe wij maatwerksoftware aanpakken

Veelgestelde vragen

Is het goedkoper om oude software te herbouwen of te moderniseren?
Incrementeel moderniseren is in de praktijk bijna altijd goedkoper, omdat een volledige herbouw doorgaans flink uitloopt — hij moet jaren aan niet-gedocumenteerde bedrijfslogica opnieuw bouwen voordat hij ook maar enige waarde levert. Het systeem stuk voor stuk vervangen, of het simpelweg koppelen en verfrissen, geeft u resultaten in weken en laat u stoppen met uitgeven op het moment dat de pijn weg is. Een herbouw wint qua kosten alleen wanneer het fundament zo kapot is dat het patchen ervan meer zou kosten dan opnieuw beginnen.
Wat is de strangler-aanpak in gewone taal?
Het is een manier om een oud systeem geleidelijk te vervangen in plaats van in één keer. U bouwt een moderne versie van één pijnlijk stuk, leidt alleen dat werk ernaartoe, en laat al het andere op het oude systeem draaien. Als dat stuk solide is, gaat u naar het volgende. Na verloop van tijd doet het oude systeem steeds minder, totdat het leeg is en u het kunt uitschakelen — zonder enge enkele lanceringsdag onderweg.
Kunnen we de onderneming blijven draaien tijdens het moderniseren?
Ja — dat is juist het hele punt van het incrementeel doen. Omdat u één klein stuk tegelijk vervangt en het oude systeem eronder live houdt, gaan de normale werkzaamheden de hele tijd door. Elke verandering is klein genoeg om in echt gebruik te testen en, indien nodig, terug te draaien. U bereikt nooit een moment waarop de onderneming afhankelijk is van een ongeteste alles-of-niets-overstap.
Hoe weten we welke delen we eerst moeten moderniseren?
Praat met de mensen die het systeem elke dag gebruiken en zoek naar hun omwegen — de eigen spreadsheets, het handmatige kopiëren-plakken, het “dat stukje doe ik gewoon met de hand.” Elke omweg markeert een echte, kostbare leemte. Rangschik ze naar hoe vaak ze bijten, en de top van die lijst is waar u begint. Meestal is het een handvol specifieke plekken, niet het hele systeem.
Wanneer is een volledige herbouw werkelijk de juiste keuze?
Wanneer de onderliggende technologie dood of niet meer ondersteund is, wanneer de onderneming zo veranderd is dat het oude model helemaal niet meer past, of wanneer het systeem zo verstrengeld is dat zelfs kleine wijzigingen ongerelateerde dingen kapotmaken — wat ook betekent dat er geen schone naden zijn om het stuk voor stuk te vervangen. Als er twee of drie van die dingen samen waar zijn, wordt een zorgvuldige, geleidelijke herbouw de veiligere optie. Ook dan houdt u het oude systeem draaiende en verhuist u gebruikers in kleine groepen, nooit in één grote sprong.
Have a nice day
Have a nice day
Redactie

Have a nice day is een softwarestudio die kleine en middelgrote bedrijven helpt digitaliseren — automatisering, AI en maatwerksoftware die werkt in de dagelijkse praktijk, niet alleen op slides.

Passende diensten