JoinData migreert code via AI gedreven migratie naar eenduidige standard
JoinData heeft haar IT-infrastructuur de afgelopen jaren sterk vernieuwd en verbeterd, zodoende om haar rol als kritisch IT-platform te kunnen blijven vervullen. Eén klein deel aan legacy code was nog over. Veranderingen en verbeteringen op dit deel duurden hierdoor langer dan gepland, kosten werden steeds minder voorspelbaar en de afhankelijkheid van schaarse externe expertise nam toe. Innovatie kon hierdoor vertragen, terwijl de druk om juist sneller te bewegen alleen maar groter wordt.
Uitdaging
Het migreren van zeven applicaties van Ruby naar .NET
Doelgoep
JoinData (operations- en development team) en gebruikers in de agrarische keten
Resultaat
Een toekomstbestendig platform waar veranderingen sneller en gemakkelijker doorgevoerd worden en waarbij de organisatie minder kwetsbaar is voor schaarse expertise
In de agrarische keten wegen die uitdagingen extra zwaar. Door de toenemende regeldruk en striktere wet- en regelgeving moeten organisaties vaker kunnen aantonen dat hun data klopt en herleidbaar is, waardoor systemen continu beschikbaar moeten zijn. Tegelijk worden IT-systemen steeds vaker geïntegreerd ten behoeve van gegevensuitwisseling, wat vraagt om regelmatige aanpassingen in standaarden en koppelingen.
Voor JoinData werd dit een belangrijke prioriteit. JoinData faciliteert veilige datadeling in de agrarische keten. Via het platform bepalen boeren en telers zelf wie op welke voorwaarden toegang krijgt tot hun bedrijfsdata. Om het platform toekomstbestendiger te maken, migreerde Info Support zeven Ruby-applicaties naar .NET met behulp van AI. Daarmee nam JoinData niet alleen afscheid van de laatste Ruby-componenten, maar consolideerde het ook de technologiestack. Sindsdien draait alles uiterst stabiel en betrouwbaar op dezelfde softwaretaal (.NET). Door afscheid te nemen van een niet-courante technologie minimaliseert JoinData bovendien het risico op een lock-in.
De uitdaging: afhankelijkheid van Ruby-expertise
Achter JoinData draaien meer dan zestig applicaties die verschillende datastromen tussen partijen in de agrarische sector mogelijk maken. Denk aan toepassingen die dataverzoeken verwerken, machtigingen beheren en koppelingen maken tussen systemen van boeren, adviseurs, leveranciers en andere partijen in de keten. Zo kan een melkveehouder via het platform bijvoorbeeld financiële gegevens delen met een accountant of informatie over diergezondheid met een adviseur.
Info Support verzorgt sinds 2024 het beheer van deze applicaties voor JoinData. Het merendeel draaide al op .NET, maar zeven applicaties waren gebouwd in Ruby. Voor wijzigingen was JoinData hierdoor afhankelijk van externe Ruby-specialisten. “Dit maakte ons afhankelijk van externe experts, terwijl we liever zelf de regie en controle over het platform willen houden. Ook waren de onderhoudskosten hierdoor relatief hoog,” zegt Renze van de Kuilen, Team Lead Operations & Support bij JoinData, die nauw betrokken was bij het traject.
“Dit maakte ons afhankelijk van externe experts, terwijl we liever zelf de regie en controle over het platform willen houden. Ook waren de onderhoudskosten hierdoor relatief hoog,”Renze van de Kuilen, Team Lead Operations & Support bij JoinData
De aanpak: migratie versnellen met AI
Om het platform toekomstbestendig te maken, migreerde Info Support de zeven Ruby-applicaties naar .NET met behulp van generatieve AI. AI werd ingezet als hulpmiddel door een eerste versie van de code op te leveren. Info Support-consultants controleerden vervolgens deze uitkomsten, stuurden bij en maakten de juiste keuzes.
AI werd ingezet om het repetitieve en tijdrovende deel van de migratie te versnellen. Hiervoor ontwikkelde Info Support een speciale tool die Ruby-code automatisch omzet naar .NET-code. Daarbij werd ChatGPT via een API aangestuurd. Voor elk Ruby-bestand werd een prompt naar het AI-model gestuurd, dat vervolgens een eerste versie van de nieuwe .NET-code genereerde.
“De sleutel zat in de juiste context meegeven. Door onze prompts en input steeds verder te verfijnen, werd de kwaliteit van de gegenereerde code steeds beter”Bart van Tiel, IT Consultant bij Info Support
Testen, testen, testen
AI zorgde daarmee vooral voor versnelling in het repetitieve werk van de codegeneratie, maar maakte menselijke expertise cruciaal in de laatste fase. Tegelijkertijd bracht dit ook risico’s met zich mee. Zo kan het voorkomen dat AI businesslogica niet helemaal correct interpreteert, dat er inconsistenties ontstaan in de output of codes er in theorie goed uitzien, maar functioneel toch net anders uitpakken.
In een speciale testomgeving konden eindgebruikers, developers en operations-medewerkers van JoinData aan de slag. Het testen gebeurde iteratief: elke nieuwe versie van de applicatie werd direct getest, waarna feedback meteen werd verwerkt en verbeteringen werden doorgevoerd voordat de volgende versie werd uitgebracht. Zo konden fouten snel worden opgespoord en opgelost. Tom Eykholt was ook als IT Consultant bij Info Support betrokken bij het project en deelt zijn ervaring: “AI kan veel werk uit handen nemen, maar je hebt alsnog de kennis nodig om resultaten te kunnen beoordelen.”
Samenwerking: flexibel schakelen voor voortgang
Hoe ervaarde Renze de samenwerking? “Info Support dacht continu mee en schakelde snel. Om focus te houden, pasten we bijvoorbeeld het werkritme aan: in plaats van één à twee losse dagen per week werkten de experts meerdere aaneengesloten dagen op locatie. Daardoor maakten we meer meters en hoefden we niet steeds opnieuw op te starten”, vertelt Renze. “Dat ritme maakte echt het verschil met minder overdrachten, minder contextverlies en snellere besluitvorming.” Om de juiste structuur in het project te waarborgen, werd ook Christiaan Willemsen, IT Consultant bij Info Support, betrokken. Naast zijn rol als consultant vervulde hij de rol van business analist en scrum master. Christiaan ondersteunde bij de planning, stemde prioriteiten af en hield zicht op de voortgang van de werkzaamheden.
“Info Support dacht continu mee en schakelde snel. Om focus te houden, pasten we bijvoorbeeld het werkritme aan: in plaats van één à twee losse dagen per week werkten de experts meerdere aaneengesloten dagen op locatie. Daardoor maakten we meer meters en hoefden we niet steeds opnieuw op te starten”Renze van de Kuilen, Team Lead Operations & Support bij JoinData
Resultaat: ruim 80% kortere doorlooptijden
Inmiddels draaien alle zeven applicaties in .NET. Dat leverde directe voordelen op voor JoinData:
- Doorlooptijd van wijzigingen van 3–4 weken naar 3–4 dagen
- Geen afhankelijkheid meer van externe Ruby-specialisten
- Lagere en beter voorspelbare onderhoudskosten
- Meer ruimte voor het eigen team om zelf door te ontwikkelen
Renze: “Als we nu wijzigingen door willen voeren, heb je binnen drie, vier dagen een nieuwe functionaliteit staan. Dat duurde daarvoor minimaal drie tot vier weken.” Na de livegang heeft Info Support nog diverse optimalisaties doorgevoerd. “Veranderingen zijn nu planbaar, waardoor we sneller kunnen leveren zonder te wachten op schaarse capaciteit.”
Conclusie
De migratie liet zien dat AI veel kan versnellen, maar alleen waarde toevoegt als kwaliteit en controle goed zijn ingericht. De sleutel zat in een stapsgewijze aanpak: eerst één applicatie migreren en testen, daarna gecontroleerd opschalen.
“Het project heeft ons niet alleen geholpen om van de laatste Ruby-componenten afscheid te nemen, maar vooral om weer sneller te kunnen bouwen aan de toekomst van het platform. We kunnen wijzigingen nu zelf oppakken en blijven ondertussen met Info Support verder ontwikkelen en beheren. Het heeft ons rust en tegelijkertijd meer snelheid gegeven. Nu ligt de regie weer bij ons eigen team, wat ons meer ruimte voor innovatie geeft.”Renze van de Kuilen, Team Lead Operations & Support bij JoinData