In het kort: wie een migratie elk kwartaal doorschuift, kiest ongemerkt voor bevriezen. Klopt het ontwerp nog en is er een route, dan is migreren met AI-agents geen weken werk meer. Mijn Vue 2-frontend: zonder agents op vijf weken gerekend, met Claude Code in vijf werkdagen, binnen mijn abonnement.
Voor wie? Tech leads en CTO's met een verouderde frontend of .NET-stack die al een paar kwartalen op de planning staat.
"Die migratie? Daar hebben we nu geen tijd voor." Elke kwartaalplanning dezelfde zin. Iedereen aan tafel weet dat hij komt. En iedereen kent de buikpijn van code waar je liever niet meer aan komt.
Er liggen features klaar waar klanten om vragen. Aan het eind van een migratie heb je ongeveer dezelfde applicatie. Probeer dat maar eens te verkopen. Dus schuift de migratie op, weer een kwartaal.
Waarom schuift een migratie elk kwartaal door?
Een migratie is het moeilijkste werk om op de planning te krijgen. Je investeert weken en levert daarna een applicatie op die er voor de klant hetzelfde uitziet. Ondertussen ligt het feature-werk stil. Het enige zichtbare verschil is het risico dat er onderweg iets omvalt.
Daarom wint de feature het elke keer van de migratie. Niemand neemt dat besluit bewust; het gebeurt doordat de rekensom steeds dezelfde uitkomst geeft.
Weken werk zonder nieuwe functionaliteit, wel risico. Dat is geen luiheid van teams. Het is een eerlijke afweging met verouderde getallen.
Wat is de derde optie die niemand kiest?
Normaal gesproken zijn er twee opties voor legacy: herbouwen of migreren. De derde staat in geen enkel plan, toch kiest bijna iedereen hem: bevriezen. Je raakt de code niet meer aan, behalve voor wat niet anders kan. Elk kwartaal uitstel maakt de sprong groter.
Bij mijn eigen SaaS zat ik ook op dat punt. De .NET-backend hield ik stap voor stap bij. De Vue 2-frontend was zeven jaar oud. Vue 2 is sinds eind 2023 end-of-life[1].
Steeds meer npm-packages kon ik niet meer bijwerken, omdat ze aan diezelfde Vue 2 hingen. Ik hoefde de migratie alleen aan mezelf te verkopen. Lukte ook niet. Jarenlang.
Herbouwen of migreren: wat is het verschil?
Allebei kun je eindigen op de nieuwste stack. Het verschil zit in de route. Bij migreren blijft de werkende code de specificatie en verander je hem in stappen. Wie herbouwt, begint blanco en moet eerst opschrijven wat het oude precies doet.
Dat laatste staat meestal nergens. De kennis zit in de code zelf, in een commit uit 2017 en in de hoofden van mensen die allang weg zijn. Hoe je die kennis met AI terughaalt voordat je iets aanraakt, beschreef ik in de repo waar niemand meer in durft.
Bij een rewrite moet dat werk eerst helemaal af zijn. Bij een migratie doe je het per stap.
Wanneer kies je wat?
Herbouwen wint als de route doodloopt: een library zonder opvolger, een framework zonder migratiepad. Dan is er niets om in stappen naartoe te werken. Ook herbouwen gaat met agents sneller dan vroeger, dus de keuze is minder dramatisch dan hij ooit was.
Een lange route schrikt me inmiddels minder af. Elke stap is werk dat agents goed doen: mechanisch, herhalend, over tientallen bestanden tegelijk. Na elke stap controleer je of alles nog werkt.
Wat je niet wilt, is een route met een gat erin. Dat zie je pas als je hem vooraf uittekent.
Wat veranderde er met agents?
Bij mij was er niks kapot en liep de route niet dood. Vue 2 heeft een opvolger. Voor de packages die vastzaten was er steeds een alternatief, al moest ik soms code aanpassen of een stukje UI-logica zelf bijbouwen.
Migreren dus. Ook dat was weken werk: ruim honderd componenten, stuk voor stuk, want de stap naar Vue 3 is geen versienummer ophogen[2].
Wat migreren ineens haalbaar maakte, waren agents. Claude Code deed het herstructureerwerk, per onderwerp in een eigen branch en parallel in worktrees. Testagents klikten telkens de kritieke flows door. Ik bepaalde de aanpak en reviewde elke stap.
Zonder agents had ik hier vijf weken voor gerekend. Het stond er in vijf werkdagen.
Binnen die dagen hield ik tijd over voor ander werk. Extra kosten: geen, het paste in mijn Claude Code Max-abonnement.
Inmiddels live. Twee klanten mailden over een kleinigheid, verder niets. Nu kan ik weer doorbouwen, zonder dat enorme technical-debt-gevoel. De technische details van die migratie laat ik hier bewust weg; dit stuk gaat over de keuze.
Wat betekent dit voor jouw legacy?
"Geen tijd" was twee jaar geleden een eerlijk antwoord. Nu kunnen agents die tijd ineens inkorten. De rekensom die de migratie elk kwartaal verloor, heeft andere getallen gekregen. Alleen weet niemand dat totdat iemand hem opnieuw maakt.
Pak daarom de migratie die bij jullie het langst doorschuift en beantwoord twee vragen:
- Klopt het ontwerp nog?
- Is er een route zonder gat?
Twee keer ja, dan is het werk voor een agent onder toezicht, in stappen die je elk kunt controleren. Geen kwartaalproject meer.
Welke migratie schuift bij jullie al jarenlang door?