ArtikelenMigratie

Van Aion naar C#: wat AI wel en niet versnelt bij een migratie

Software die draait op een taal die bijna niemand meer schrijft, is een risico dat elk jaar groter wordt. Aan de hand van een overstap van Aion naar C# laten we zien hoe we zo'n migratie aanpakken, en waar AI het werk echt sneller maakt.

Door Tactyx, geschreven door de twee developers die ook het werk doen
22 september 2026 · 5 min lezen

Er draait meer oude software in Nederland dan je zou denken. Niet in een museum, maar gewoon in productie. Systemen die elke dag premies berekenen, aanvragen beoordelen of orders controleren. Ze doen hun werk nog prima. Het probleem zit ergens anders: steeds minder mensen kunnen ze onderhouden.

Aion is daar een goed voorbeeld van. Het is een taal en ontwikkelomgeving voor regelgebaseerde systemen, tegenwoordig bekend als CA Aion Business Rules Expert en onderdeel van Broadcom. Je legt er bedrijfsregels in vast, en een inferentie-engine bepaalt welke regels wanneer van toepassing zijn. Door de jaren heen is er veel bedrijfskritische logica in gebouwd. Die logica is waardevol. De kennis om haar aan te passen wordt schaars.

Waarom je hier niet mee moet wachten

Zolang een systeem draait, voelt een migratie als een kostenpost zonder direct resultaat. Toch loopt het risico elk jaar op. De mensen die het systeem kennen gaan met pensioen of zijn al weg. Nieuwe koppelingen met moderne systemen worden steeds lastiger. En elke wetswijziging die in de regels moet landen, kost meer tijd en meer zenuwen dan de vorige.

Het moment om te migreren is dus niet als het systeem omvalt. Het is als er nog iemand is die kan vertellen waarom een regel er staat.

Wat een migratie eigenlijk is

Veel mensen zien een migratie als vertalen: de oude code erin, nieuwe code eruit. Dat is het makkelijke deel. Het lastige deel is bewijzen dat het nieuwe systeem op dezelfde invoer dezelfde uitkomst geeft. Voor elke klant, elke uitzondering, elke afronding.

Bij regelgebaseerde systemen komt daar nog iets bij. In Aion staat de volgorde van uitvoeren niet altijd expliciet in de code. De engine bepaalt die. Wie dat een op een naar C# vertaalt, krijgt code die er goed uitziet en toch net anders rekent. Daarom begint een goede migratie niet bij de code, maar bij het gedrag.

Een module is klaar als het nieuwe systeem op dezelfde invoer dezelfde uitkomst geeft. Niet als de code compileert.

Waar AI het verschil maakt

We werken met AI, en bij een migratie merk je dat het meest. Het oude werk bestond voor een groot deel uit lezen. Duizenden regels code doorploegen, uitzoeken wat met wat samenhangt, documentatie reconstrueren die er nooit was. Daar is AI goed in.

  • Lezen en ontleden. AI maakt per module een samenvatting: welke regels er zijn, welke gegevens ze gebruiken, waar ze van afhangen. Dat geeft binnen dagen een kaart van een systeem waar je vroeger weken voor nodig had.
  • Een eerste vertaling. Op basis van een patroon dat wij vastleggen, zet AI Aion-regels om naar C#. Steeds op dezelfde manier, zodat de code voorspelbaar en leesbaar blijft.
  • Testgevallen. Uit de regels en uit echte invoer van het huidige systeem stelt AI testgevallen op, inclusief de randgevallen die mensen vaak overslaan.
  • Leesbare regels. Als bijproduct krijg je beschrijvingen van de bedrijfsregels in gewone taal. Voor veel organisaties is dat de eerste keer in jaren dat iemand buiten IT kan nalezen wat het systeem precies doet.

Waar AI ophoudt

AI levert snel iets op dat er overtuigend uitziet. Juist daarom is controle geen formaliteit. Een vertaling die bijna klopt is gevaarlijker dan een die duidelijk fout is.

  • Architectuur. Hoe je regelgedrag in C# onderbrengt, is een ontwerpkeuze. Gebruik je een rules engine, of schrijf je de regels uit als gewone code met een vaste volgorde? Dat bepaalt of het systeem over vijf jaar nog te onderhouden is. Die keuze maken wij, niet een model.
  • Kleine verschillen. Afronding, datums, lege waarden en tekstvergelijkingen gedragen zich per taal net anders. Dat soort verschillen zie je alleen als je er gericht naar zoekt.
  • Betekenis. Waarom staat een uitzondering er? Soms is het een oude bug waar processen omheen zijn gebouwd. Die moet je dan juist behouden. Dat weet je alleen door te vragen.

Bij een migratie als deze is bijna alles bedrijfslogica. Dus lezen we bijna alles zelf na, naast de review door AI. En de tests beslissen, niet het gevoel dat het wel goed zit.

Zo pakken we Aion naar C# aan

  1. Inventaris. We brengen alle regels, klassen en koppelingen in kaart. AI maakt het eerste overzicht per module, een van ons controleert het en vult aan met wat we uit gesprekken leren.
  2. Het gedrag vastleggen. We verzamelen echte invoer en uitkomsten van het huidige systeem. Dat wordt de referentie waar alles tegen getest wordt.
  3. De doelarchitectuur. We bepalen hoe regels in C# landen: leesbaar, testbaar en met logging, zodat je later kunt nagaan waarom een uitkomst is wat hij is.
  4. Migreren per module. Elke module is een eigen taak. AI maakt een eerste vertaling, wij herschrijven waar nodig en de tests vergelijken de uitkomsten met het oude systeem.
  5. Naast elkaar draaien. Het nieuwe systeem rekent mee met het oude. Elk verschil wordt een taak in de rij, tot er geen verschillen meer zijn.
  6. Overstappen. Module voor module gaat het oude systeem uit. Er is geen grote nacht waarin alles tegelijk moet werken.

Wat het oplevert

De winst zit vooral aan het begin. Het lezen en de eerste vertaling kosten nu een fractie van de tijd, waardoor wij onze uren besteden aan wat er echt toe doet: de architectuur, de randgevallen en de controle. Je krijgt code in een taal die elke .NET-ontwikkelaar kan lezen, tests die bewijzen dat het klopt, en bedrijfsregels die eindelijk weer beschreven zijn.

En omdat we in kleine stappen werken, is er geen moment waarop alles op het spel staat. Je ziet elke week wat er af is.

Is dit iets voor jou?

Aion is maar één voorbeeld. Dezelfde aanpak werkt voor andere talen en platformen die langzaam uit beeld raken. Heb je een systeem waarvan je weet dat het ooit over moet, maar waar niemand aan durft te beginnen? Begin dan klein. Migreer één module als prototype. Binnen een week zie je hoe de vertaling eruitziet en hoe de vergelijking met het oude systeem werkt. Daarna beslis je of je verder wilt.

Geschreven door de twee developers van Tactyx. Vragen over dit onderwerp? Mail hallo@tactyx.nl.

Vertel wat je wilt laten bouwen.

Vijftien minuten is genoeg om te bepalen of dit past. Geen salesverhaal, wel een eerlijke inschatting van doorlooptijd en kosten.