Codemigratie: hoe verouderde software een nieuw leven krijgt
Stel je een bibliotheek voor die decennia geleden is ingericht volgens een systeem dat niemand meer helemaal begrijpt: de catalogiseerders zijn met pensioen, de taal op de kaartjes is verouderd, maar de boeken zelf bevatten nog steeds onmisbare informatie. Niemand durft de boel weg te gooien, want de bibliotheek draait er al vijftig jaar op. De oplossing is niet om alles in de prullenbak te gooien, maar om de inhoud over te zetten naar een nieuw, begrijpelijk systeem zonder dat er informatie verloren gaat. Dat is in essentie wat codemigratie is, maar dan met software in plaats van boeken.
Codemigratie is het proces waarbij bestaande computerprogramma's worden omgezet naar een nieuwere programmeertaal, een ander platform of een modernere architectuur, terwijl de functionaliteit behouden blijft. Veel bedrijven en overheden draaien nog op software die dertig tot zestig jaar geleden is geschreven, vaak in talen als COBOL of Fortran. Die systemen werken meestal prima, maar vinden steeds minder mensen die ze kunnen onderhouden, en ze passen slecht bij moderne eisen zoals cloudgebruik of koppelingen met apps. Codemigratie probeert dat probleem op te lossen, met hulp van steeds slimmere automatiseringstools en kunstmatige intelligentie.
Wat is het precies?
In de kern bestaat codemigratie uit een aantal stappen die, afhankelijk van de omvang van het project, maanden tot jaren kunnen duren. De eerste stap is analyse: engineers (en tegenwoordig ook AI-systemen) brengen in kaart wat de oude code precies doet. Dat klinkt eenvoudiger dan het is, want oude bedrijfssystemen bevatten vaak ongedocumenteerde uitzonderingen, noodoplossingen en bedrijfsregels die nergens anders zijn opgeschreven dan in de code zelf.
Daarna volgt het eigenlijke vertalen van de code. Dit kan op verschillende manieren. Bij een "rehost" verhuist de software naar nieuwe hardware zonder dat de programmeertaal verandert, vergelijkbaar met het overzetten van een huis naar een andere plek zonder te verbouwen. Bij een "refactor" of "rewrite" wordt de code daadwerkelijk herschreven in een nieuwe taal, bijvoorbeeld van COBOL naar Java. Dat laatste is veel ingrijpender, omdat de logica van het programma vaak niet één-op-één overgezet kan worden.
Hier komt kunstmatige intelligentie steeds vaker aan te pas. Grote taalmodellen, vergelijkbaar met de technologie achter ChatGPT, kunnen worden getraind om stukken oude code te lezen en er equivalente code in een moderne taal van te maken. Bedrijven als Amazon en IBM bieden inmiddels diensten aan die dit proces grotendeels automatiseren, al blijft menselijke controle noodzakelijk omdat de AI fouten kan maken of context kan missen.
De laatste stap is testen. Omdat de nieuwe code exact hetzelfde moet doen als de oude, wordt er intensief vergeleken: dezelfde invoer moet in beide systemen dezelfde uitvoer opleveren. Pas als dat na uitgebreide tests klopt, wordt het oude systeem definitief uitgezet.
Wat wil men ermee bereiken?
De drijfveer achter codemigratie is zelden puur technisch enthousiasme; het gaat vooral om risico's en kosten. Veel verouderde systemen draaien op programmeertalen waarvoor steeds minder opgeleide ontwikkelaars te vinden zijn. Wie nog COBOL kan programmeren, is vaak al met pensioen of bijna met pensioen, terwijl banken, verzekeraars en overheidsdiensten voor miljarden aan code op dit soort systemen laten draaien.
Daarnaast zijn oude systemen lastig te koppelen aan moderne technologie zoals cloudplatforms, mobiele apps of data-analysetools. Een bank die haar klanten een moderne app wil aanbieden, moet op de achtergrond nog steeds met een mainframe uit de jaren tachtig communiceren als die migratie niet heeft plaatsgevonden.
Tot slot spelen kosten en veiligheid een rol. Oude hardware is duur om te onderhouden en moeilijker te beveiligen tegen hedendaagse cyberdreigingen. Door te migreren naar moderne, goed onderhouden platforms hopen organisaties zowel geld te besparen als veiliger te worden.
Voorbeelden uit de praktijk
De Commonwealth Bank of Australia begon in 2012 aan een van de bekendste grootschalige codemigraties ter wereld: het omzetten van een kernbankensysteem van COBOL naar moderne platforms. Het project duurde ongeveer vijf jaar en wordt in de sector nog vaak aangehaald als voorbeeld van hoe complex en kostbaar zo'n operatie kan zijn, ook als die uiteindelijk succesvol wordt afgerond.
In 2022 introduceerde Amazon Web Services (AWS) de dienst "AWS Mainframe Modernization", die bedrijven moet helpen om mainframe-applicaties te migreren naar de cloud, met geautomatiseerde hulpmiddelen voor het vertalen van COBOL-code.
IBM lanceerde in 2023 "watsonx Code Assistant for Z", een AI-tool specifiek gericht op het helpen vertalen van COBOL-code op IBM Z-mainframes naar Java. IBM claimde dat de tool de tijd die nodig is om code te begrijpen en te migreren aanzienlijk kan verkorten, al blijft volgens het bedrijf zelf menselijke validatie noodzakelijk.
Amazon kondigde in 2023 en 2024 functies aan in zijn AI-codeerassistent (eerst CodeWhisperer, later opgegaan in Amazon Q Developer) die geautomatiseerd verouderde Java-versies binnen bedrijven kunnen upgraden. Amazon meldde dat het dit intern al had toegepast op duizenden eigen applicaties en daarmee naar eigen zeggen duizenden jaren aan ontwikkelaarswerk had bespaard, een claim die overigens vooral van Amazon zelf komt en niet onafhankelijk is geverifieerd.
Een minder succesvol maar veelzeggend voorbeeld deed zich voor tijdens de coronapandemie in 2020, toen verschillende Amerikaanse staten, waaronder New Jersey, moeite hadden om hun werkloosheidsuitkeringssystemen snel genoeg aan te passen omdat deze nog op decennia oude COBOL-code draaiden. Dit voorbeeld maakte in de Verenigde Staten breed duidelijk hoe urgent het migratievraagstuk voor overheidssystemen is.
Hoe ver is de techniek?
Codemigratie zelf is geen nieuw vakgebied; bedrijven doen dit al decennia, vaak met gespecialiseerde consultancybureaus en handmatig werk. Wat wél nieuw is, is de inzet van AI om grote delen van het vertaalproces te automatiseren. Dat is nog volop in ontwikkeling.
De huidige generatie AI-tools is goed in staat om relatief overzichtelijke stukken code te vertalen en te verklaren, maar loopt tegen grenzen aan bij zeer complexe, onderling verweven bedrijfslogica die typerend is voor oude mainframesystemen. Onderzoekers en bedrijven zijn het erover eens dat volledige automatisering zonder menselijke controle op dit moment niet verantwoord is: AI-modellen kunnen subtiele fouten maken die in een financieel systeem grote gevolgen kunnen hebben.
Ook is er geen onafhankelijke, brede benchmark die precies meet hoeveel sneller of goedkoper AI-ondersteunde migratie is ten opzichte van traditionele methoden. De meeste cijfers die nu circuleren, zoals Amazons besparingsclaims, zijn afkomstig van de bedrijven die de tools zelf verkopen, wat reden is voor enige voorzichtigheid bij het interpreteren ervan.
Grote, langlopende migratieprojecten zoals dat van de Commonwealth Bank laten bovendien zien dat zelfs met goede planning dit soort trajecten vaak langer duurt en duurder uitvalt dan vooraf ingeschat, iets wat ook voor toekomstige, meer geautomatiseerde projecten een reëel risico blijft.
Wie werken eraan?
Grote clouddienstverleners staan voorop in de ontwikkeling van migratietools: naast AWS en IBM bieden ook Microsoft (via Azure) en Google Cloud diensten aan die bedrijven helpen bij het moderniseren van verouderde applicaties. Daarnaast zijn er gespecialiseerde bedrijven die zich al decennia richten op mainframe-modernisering, zoals Micro Focus (onderdeel van OpenText) en verschillende consultancybureaus zoals Accenture en Infosys, die grootschalige migratieprojecten voor overheden en banken uitvoeren.
Op onderzoeksgebied houden universitaire groepen en instituten die zich bezighouden met software engineering, zoals het Software Engineering Institute aan Carnegie Mellon University, zich bezig met methoden om legacy-systemen te documenteren en te moderniseren. Ook techbedrijven als Google en Meta publiceren via hun eigen engineeringblogs en in vakbladen van de ACM (Association for Computing Machinery) over interne tools waarmee zij op zeer grote schaal code binnen hun eigen bedrijf automatisch aanpassen en migreren.
Overheden spelen vooral een rol als opdrachtgever: in de Verenigde Staten en verschillende Europese landen, waaronder Nederland, lopen al langere tijd programma's om verouderde overheidssystemen (bijvoorbeeld bij belastingdiensten en uitkeringsinstanties) stap voor stap te vervangen, vaak onder politieke druk vanwege storingen of veiligheidsrisico's.