Een programmeertaal uit de jaren tachtig legt vernieuwing Belastingdienst lam
De IT’ers van de Belastingdienst zetten momenteel alles op alles om de stokoude programmeertaal Cool:Gen uit te faseren, omdat deze de continuïteit van de dienstverlening bedreigt. Vanwege die operatie zijn er te weinig IT’ers beschikbaar voor de beloofde stelselwijziging, die daardoor forse vertraging oploopt.
Staatssecretaris Idsinga van Financiën schrijft in een brief aan de Tweede Kamer dat het uitfaseren van Cool:Gen noodzakelijk is om de continuïteit van de IT-systemen van de Belastingdienst te waarborgen en daarmee de belastinginning veilig te stellen. Het aantal IT’ers dat expertise heeft met deze verouderde programmeertaal, daterend uit de jaren 80, wordt namelijk steeds schaarser.
Het opschalen van het aantal IT’ers bij de Belastingdienst is geen optie, omdat kennis van Cool:Gen momenteel zeer beperkt beschikbaar is. Het doorvoeren van wetswijzigingen in de bestaande systemen is bovendien erg complex. Uit de brief blijkt verder dat de uitfasering van Cool:Gen vertraging blijft oplopen.
Beloofde stelselwijziging verder vertraagt
De totale uitfasering van Cool:Gen is – zoals eerder beloofd – niet eind 2026, maar pas eind 2027 gerealiseerd. Door de herstelwerkzaamheden lopen stelselwijzigingen in de computersystemen van de Belastingdienst ook vertraging op. Deze worden nu, in plaats van in 2028, pas in 2029 afgerond. Het gaat daarbij om spaarders en beleggers die te veel betaalde rendementsbelasting terug moeten krijgen.
Groot aantal IT’ers vertrokken
De Belastingdienst heeft al jaren moeite om IT’ers aan te trekken die verouderde programmeertalen zoals Cool:Gen en Cobol beheersen. Onverwacht zag de fiscus een groot aantal IT’ers vertrekken. Het doel voor 2023 was om 2200 tot 2400 nieuwe werknemers te vinden, maar de uitstroom was met bijna 900 fte’s hoger dan verwacht. De verwachtingen om de extra beleidsopgaven van de Belastingdienst, zoals modernisering en verbetering van de informatievoorziening, te realiseren, zijn daarom naar beneden bijgesteld.
Meer stokoude programmeertalen
Naast Cool:Gen werkt de Belastingdienst ook aan de vervanging van systemen die geprogrammeerd zijn met de halve eeuw programmeertaal Cobol, waarmee maar liefst 18% van de 900 systemen van de Belastingdienst is geprogrammeerd en 70% van alle financiële transacties wordt afgehandeld via Cobol-processen. Ook de kennis over Cobol bij de Belastingdienst neemt in rap tempo af. Studenten kiezen steeds minder vaak voor deze programmeertaal, terwijl de Belastingdienst in de komende jaren alleen al zo’n 1000 jaren aan werkervaring met Cobol moet vervangen. Bovendien zijn er wereldwijd nog maar drie grote aanbieders die Cobol-systemen leveren, waardoor het risico op een vendor lock-in toeneemt.
Lees ook:
Wat een prachtige kans om dan ook meteen modern te gaan werken! Cool:Gen, eerder bekend als CA Gen, is een modelgedreven ontwikkelingsomgeving die zich richt op het creëren van systeemmodellen via een grafische interface, waarna deze modellen automatisch worden omgezet in uitvoerbare code. Dit verhoogt de ontwikkelproductiviteit door componentenhergebruik en procesautomatisering. Cool:Gen staat bekend om zijn platformonafhankelijkheid, omdat het code kan genereren voor diverse systemen zoals mainframes, client/server, en webomgevingen. Door een hoge abstractie te bieden, konden ontwikkelaars zich concentreren op business logica zonder zich te verdiepen in specifieke programmeertechnieken. COBOL, wat staat voor Common Business Oriented Language, is een procedurele programmeertaal die wordt gebruikt voor zakelijke en financiële toepassingen. Deze taal legt eerder de nadruk op leesbaarheid en is speciaal ontworpen voor business-toepassingen. Veel legacy systemen, vooral in de bank- en overheidssector, draaien op COBOL vanwege de betrouwbaarheid en het langdurige gebruik sinds de laatste decennia van de vorige eeuw. COBOL-code wordt vaak direct en op laag niveau geschreven, met specifieke instructies over hoe gegevens moeten worden verwerkt. Dit vereist dus diepgaande kennis van wat je wilt bereiken.
Er zijn echter minstens twee manieren waarop je ouwe meuk kunt ontleden en ombouwen naar een modernere taal (en dan meteen de laatste inzichten mee nemen die sindsdien ontstaan zijn)
Zo is er de Normalized Systems Theory (NST); een ruim bewezen methodologie voor het ontwerpen van modulaire systemen die gemakkelijk kunnen worden onderhouden en uitgebreid. De theorie introduceert ontwerpprincipes zoals separation of concerns en versioning, ter vermijding van abrasie in softwarearchitectuur bij veranderingen. NST streeft naar systemen waarbij wijzigingen in één module niet onvoorziene effecten hebben op andere delen, wat bijdraagt aan onderhoudbaarheid en schaalbaarheid. Het is allang bekend (ook bij de Belastingdienst) dat je NST uitstekend kunt gebruiken om systemen als COBOL en Cool:Gen te moderniseren door ze te herstructureren naar modulair opgebouwde applicaties. Daarna kun je de functionaliteit weer in andere talen genereren.
Ook met AI is het inmiddels mogelijk om legacy systemen om te bouwen. Door automatisering van codeconversie kunnen patronen in oude systemen worden herkend en worden omgezet naar moderne, modulaire architecturen. Machine learning kan bijdragen aan het optimaliseren van bedrijfsprocessen door patroonherkenning, waardoor organisaties verbeteringen kunnen doorvoeren zonder zware investeringen. Verder ondersteunt AI data-analyse voor betere besluitvorming binnen het kader van NST, wat gerichte en effectieve strategische veranderingen mogelijk maakt.
Kortom, de combinatie van NST en AI kan prima helpen om legacy systemen te transformeren tot flexibele en duurzame informatietechnologische oplossingen, die wel toekomstbestendig zijn en voortaan eenvoudiger aan te passen zijn aan nieuwe eisen.
Het verdelen van gegevensverwerking tussen een Cool:Gen applicatie en een COBOL applicatie vereist in de eerste plaats een plan voor communicatiestromen en integratie. Allereest bepaal je de Interface: wele gegevensverwerking vindt plaats in de Cool:Gen applicatie en welke in de COBOL applicatie? Als je dat weet, kun je de interfaces definiëren die nodig zijn voor gegevensuitwisseling tussen de systemen. Dit kan via bestanden, database, of real-time messaging. Daarvoor kun je API’s gebruiken, of bestandsuitwisseling als het gegevensformaat niet compatibel is. Er zullen duidelijke contracten gedefinieerd moeten worden voor de dataformaten en voor de protocollen voor uitwisseling.
Misschien is nog wat middleware nodig, zoals MQ of specifieke API-koppelingen om real-time integratie te beheren. Het automatiseren van de verwerking is in elk geval een reguliere taak of service die draait op het platform waar de COBOL applicatie wordt uitgevoerd. Het is te doen.
Er is wereldwijd een enorme markt voor ‘computertaal-archeologie’ en renovatie. Soms heb je hele moderne middelen nodig om hele oude dingen te decompileren en op te frissen.
https://medialibrary.uantwerpen.be/oldcontent/container1244/files/TEW%20-%20Actueel/BUS/Presentatie%20BUS%2020131105.pdf
Ik was ooit werkzaam bij het bedrijf dat Cool:Gen verkocht. Toch wel belangrijk om te melden dat Cool:Gen in de jaren 80 de tijd ver vooruit was. Naast Cobol kon je namelijk, ook client- en server side JAVA genereren. Je had zelfs de keuze en dat vonden bedrijven toen heel belangrijk. Dat kan overigens nog steeds, en JAVA, daar is toch redelijk veel kennis van?
Maar ook voor het gebruik van Cool:Gen moet je een specialist zijn, net als voor iedere andere complexe IT oplossing. Te lang blijven hangen aan legacy zorgt uiteindelijk voor veel problemen. Bij veel overheidsbedrijven is lang neerbuigend gedaan over de technologie die er al was (Legacy) en rende men hijgerig achter alles aan wat nieuw was. Personeel dat legacy ondersteunde kon wel weg want al dat “nieuwe” met de nieuwe lichting ITers die daar bij hoorden ging de problemen wel oplossen.
Ik hoop dat we hiervan geleerd hebben. Maar ik zie nog steeds dat belangrijke strategische beslissingen genomen worden op basis van technologie: “We moeten micro-services, we moeten cloud, we moeten agile, we moeten ombouwen naar een ander platform (dat ook ooit leacy zal worden)”.
Een goede IT strategie is gebaseerd op de gegevens die je in je bezit hebt, en niet op systemen en applicaties. Maak je gegevens beschikbaar voor alles en iedereen die ze nodig heeft en nieuwe initiatieven zijn plotseling niet zo complex meer. Renoveren is mooi, maar het leidt af van het werkelijke probleem, de beschikbaarheid van de gegevens die de fundering zijn van de organisatie.