Daisy Geurts van de Algemene Rekenkamer ging bij het iBestuur Congres 2019 in op de potentieel problematische kanten van legacy-applicaties. Egbert Prins vertelde in dezelfde sessie over zijn ervaringen bij Sociale Verzekeringsbank (SVB). Doorontwikkeling van legacysystemen bleek daar een succesvol en duurzaam vervolg na een mislukt grootschalig vernieuwingsproject.
“Cobol is een relatief simpele taal die relatief veel lijkt op de natuurlijke taal.” Beeld: Shutterstock
De Algemene Rekenkamer heeft in het kader van het Verantwoordingsonderzoek 2018 onderzoek gedaan naar de sturing op continuïteit en vernieuwing van ICT. De aanpak van problematische legacy of verouderde systemen, die duur in onderhoud en lastig aanpasbaar zijn, was één van de thema’s in dat onderzoek.
Een van de conclusies uit het onderzoek is dat – op zijn minst in de verantwoording – de verhouding tussen continuïteit en vernieuwing behoorlijk scheef is: De focus ligt zozeer op de grote ICT-projecten dat het beheer van het bestaande applicatielandschap de afgelopen jaren onderbelicht is gebleven. Terwijl daar toch het leeuwendeel van de totale ICT-kosten mee is gemoeid. Daisy Geurts van de Rekenkamer: “Een van onze conclusies was dat vernieuwing vaak belangrijker wordt gevonden dan het moderniseren van de legacy. Daardoor worden de onderhoudskosten steeds hoger. Het gevaar daarvan is dat er steeds minder budget over blijft voor het verduurzamen van die legacy en voor vernieuwing.” Als voorbeeld noemt ze de Belastingdienst, waar volgens haar al jaren een legacyprobleem bestaat en waar op termijn zelfs gevaar voor verstoringen in de productieketen bestaat. De wendbaarheid van de dienst staat daardoor onder druk, aldus Geurts.
Risico’s
Waar de Rekenkamer naar heeft gekeken is naar de risico’s van het gebruik van legacy, dat Geurts definieert als ‘oude software die nog steeds in gebruik is’. Potentiële risico’s zijn volgens haar dat oud kan leiden tot falen, tot het niet kunnen borgen van de continuïteit, tot slechte aanpasbaarheid en hoge kosten van onderhoud. Een ander gevaar is dat er onvoldoende deskundigheid in de organisatie of daarbuiten overblijft om de systemen te onderhouden en aan te passen. Een deelnemer aan de sessie merkt op dat dit niet alleen voor oude Cobol-programmatuur en mainframe-applicaties. Veel leveranciers van nieuwere generaties software zijn al weer verdwenen, of applicaties worden niet meer ondersteund of geactualiseerd.
Geurts: Legacy wordt vaak geassocieerd met saai, of zelfs iets voor losers. Iets waar je zo snel mogelijk van af moet. Maar is dat ook zo? Waar wij vooral naar hebben gekeken is hoe de ICT presteert in relatie tot een normenkader dat aansluit bij de PDCA-cyclus.” (PDCA staat voor Plan-Do-Can-Act). Dan gaat het om kwesties als: bestaat er in de organisatie een goed inzicht in het ICT-landschap; bestaat er plan om verouderde systemen aan te passen en risico’s te beheersen; zijn die plannen in uitvoering en leiden de resultaten tot verbetering.” Als dat allemaal het geval is, is er sprake van een duurzaam ICT-landschap, of dat nu in Cobol is geschreven of niet.
SVB
Over ‘duurzame IT’ gesproken. Dat vinden ze bij de SVB ook een veel betere term dat ‘legacy’, vertelt afdelingsmanager Egbert Prins van de Sociale Verzekeringsbank. Deze SVB verzorgt onder meer de uitkeringen van de AOW en Kinderbijslag; jaarlijks wordt er zo’n 45 miljard euro uitbetaald. De regelingen bestaan al lang en het kernsysteem AA is een mainframe-toepassing, grotendeels geschreven in Cobol.
In 2014 brak de Sociale Verzekeringsbank een al jaren lopende grootschalige systeemvernieuwing af. Het was bij de start in 2005 de heersende mening dat Cobol dood was en je naar standaardpakketten moest. Het beoogde nieuwe Multi Regelingen Systeem, gebaseerd op een Oracle-omgeving, bleek echter een doodlopende weg. SVB investeerde ruim 43 miljoen euro in het programma, nog afgezien van alle indirecte kosten. Met implementatiepartner Capgemini werd uiteindelijk een schikking overeengekomen met als uitkomst dat de dienstverlener ruim 20 miljoen terugbetaalde.
Vervolgens koos het SVB voor evolutie in plaats van revolutie; het verduurzamen van het bestaande applicatielandschap.
Die Cobol-code was achteraf zo slecht nog niet, bevestigde hoogleraar Chris Verhoef na ‘forensisch onderzoek’ van de code. Zijn conclusie: het applicatielandschap was in orde, met robuuste code, goed gedocumenteerd, goed onderhouden en weinig kwetsbaarheden. Een solide basis kortom om op verder te bouwen. Besloten werd het oudere kinderbijslagsysteem over te zetten naar het AA-systeem dat onder andere de AOW uitkeert.
De eerste mijlpaal daarvan was de afsluiting van het project vAKWerk in juli 2018. Daarbij werd het oude kinderbijslagsysteem, inclusief een half miljard records, rimpelloos overgezet naar het nieuwere AOW-systeem. Het huidige grote project is het overzetten van de tien gedecentraliseerde gegevensbanken naar een centrale gegevensbank, ooit een van de doelen van het MRS.
Prins: “Ondertussen zijn we overgestapt naar een nieuwe Cobol-versie, hebben we applicaties voorzien van een moderne frontend, voldoen we aan Baseline Informatiebeveiliging Richtlijn en ontwikkelen we met modern toolinggereedschap. Op onze roadmap staat dat we toewillen naar een datacentrisch benadering en de verdere doorontwikkeling op basis van een architectuurvisie willen doen. Op termijn willen we niet alleen de data maar ook de businesslogica lostrekken lostrekken van de mainframeapplicaties.”
Allemaal stappen kortom om het bestaande applicatielandschap te ‘verduurzamen’. Daar heb je de term weer. Prins: “Wat ik verwacht is dat we nog wel even aan de oude omgeving vastzitten. Maar die is ook heel betrouwbaar en robuust. De beeldvorming dat legacy problematisch is, klopt niet. Zijn we wendbaar? Ja, we kunnen nieuwe beleidsdoelstellingen inbouwen. Zijn er minder mogelijkheden tot innovatie? Daar kijken we wel naar. We experimenteren sinds een jaar of drie ook met een Agile-benadering. Zijn de onderhoudskosten hoog? Dat zijn ze, maar niet vanwege het systeem. Dat komt omdat de regelingen zo complex zijn en vaak wijzigen. We hebben veel oude regelingen die nog van belang zijn voor een bepaalde groep mensen. Die moeten we allemaal kunnen bedienen. Van een tekort aan specialisten hebben we ook niet veel last. Het leuke is dat we op dit moment ook redelijk veel jonge mensen krijgen, zeker nu we overgaan naar een nieuwe ontwikkelomgeving. En Cobol is een relatief simpele taal die relatief veel lijkt op de natuurlijke taal. Bij ons hebben zelfs een aantal beleidsspecialisten de taal aangeleerd.”
Beleidslegacy
Stelling bij de discussie was: de werkelijke legacy zit niet in de systemen maar in (het hart van) de organisatie. Die stelling werd door veel aanwezigen bevestigd. De meeste code zou het gevolg zijn van ‘beleidslegacy’: er komen steeds nieuwe regelingen bij, maar oude regelingen blijven nog van kracht voor bepaalde groepen. Een ander knelpunt dat wordt gesignaleerd bij het verduurzamen van legacy-applicaties is de wijze van financiering. Dat kan niet via de jaarlijkse cyclus, voor dergelijke trajecten is meerjarige financiering noodzakelijk. Prins: “Bij SVB werken we telkens met een horizon van vijf jaar.”
Wat een verademing! Volkomen terecht trekt Egbert Prinsen de grauwsluier af van legacy applicaties. Doorgaans zijn deze, zeker bij de overheid, up-to-date mbt wet-en regelgeving, incl. de doorgaans complicerende overgangs-regelingen. Indien de jarenlange investeringen hierin geactiveerd op de balans zouden staan, zien business cases voor vernieuwing er toch wat minder positief uit.
Egbert Prinsen benoemt enkele van de mogelijkheden, zoals front-ends, datacentrische doorontwikkeling obv architectuurvisie, losweken van businesslogica waarmee het bestaande applicatielandschap voorzien wordt van een aantrekkelijke levensduurverlenging, waar terecht het label duurzaam op geplakt mag worden.
En als dan ook nog agile benaderd en gehanteerd wordt als een middel en niet als een doel, dan gaan we nmm op een verantwoorde wijze met onze belastingcenten om.
Het is spijtig om te zien dat de SVB vasthoudt aan het narratief van de goede Cobol systemen. Die systemen zijn volgens de SVB zelf zo rigide dat ze anno 2019 nog steeds vastgeklonken zijn aan een organisatiestructuur uit de vorige eeuw.
De SVB heeft na de mislukking in 2014 Prof. Chris Verhoef ingehuurd om de Cobol systemen wit te wassen. (Nu doet Verhoef een vergelijkbare klus voor UWV.)
Wie echter goed leest of verstand heeft van data kan niet ontgaan dat de SVB systemen zwaar achterhaald zijn en handenvol geld kosten.
Citaat: “We hebben tien locaties die elk een postcodegebied beheren. Het gevolg is dat we niet alleen elke verhuizing van een klant moeten overdragen, maar ook dat we de werklast niet optimaal kunnen verdelen. Bovendien moeten we elke software-update – en dat doen we wekelijks – repliceren naar alle locaties. We wilden naar één landelijke database. Dat willen we overigens nu nog.””
Bron: ibestuur.nl/nieuws/geen
Natuurlijk kunnen we alleen maar raden naar de extra kosten die de antieke datastructuur waaraan de SVB vastzit met zich meebrengt. Maar we kunnen ook het vermoeden uitspreken dat die robuuste Cobol software van de SVB zo slecht onderhoudbaar is dat men er liever maar van afblijft. Het blijft echter raden want alle beweringen die van SVB-zijde en door SVB ingehuurde hoogleraren worden gedaan zijn volstrekt oncontroleerbaar.
Net als bij de andere grote publieke informatieverwerkers als de Belastingdienst en UWV is de antieke ICT een risicofactor van belang. Zodra de voor de SVB relevante wetgeving verandert moet serieus rekening worden gehouden met nieuwe ICT fiasco’s.
Ik begrijp de uiteeunzetting van René Veldwijk volkomen, ben het niet helemaal met hem eens. Dat leg ik u graag even eenvoudig uit.
Meer dan 85% van de automatiseerderings professionals en 99.5% van de commerciele professionals in en met digitale automatisering, weten hun klant/client/stakeholder, maar niet uit te leggen wat nu eigenlijk digitale autmatisering is. Wat is de essentie, wat zijn de principes, en hoe kan het alleen functioneren.
U moet dan even weg stappen van alle jargon die u ooit om de oren is gesmeten.
Digitaal automatiseren is eennvoudig, de electronische variant van een essentie en principes, zo oud als de aarde draait. Deze is heden ten dage gewoon en onveranderd werkend. Digitale automatisering noemt men dit (I)nput/(O)utput, de kerk noemt dit Alpha/Omega, en gewoon Nederlans is het het principe Actie/Reactie.
En alle drie hebben zij universeel iets met elkaar gemeen;
Zijn zijn, in elk denkbaar aspect, facet, voor iedere betrokkene,
100% Voorspelbaar.
Dat betekend eenvoudig dat legacy, in alle aspecten, facetten, voor iedereen, eveneens 100% Voorspelbaar is. Ditzelfde geld voor elke professional in, om het even welke denkbare discipline binnen de automatisering, die als alereerste U, klant/client/stakeholder, dient uit te leggen waarom digitaal automatiseren 100% voorspelbaar is.
Dan ineens heeft u namelijk een gemeenschappelijke basis waar u vandaan kunt gaan kijken en die plots is ontdaan van alle jargon denkbaar. Want die essentie en haar principes, gelden onveranderd, ook voor elk denkbaar aspect van uw legacy, maar ook een eventuele gewenste transformatie.
Het is voor ons verbazingwekkend dat na meer dan veertig jaar kantoor automatisering, digitale automatiseerders dit nog steeds net voor elkaar hebben.
Hallo
Ik verdiep me sinds enige tijd in de legacy bij het uwv. Daar ben ik de enige die van oudere systemen de ontwikkel en test omgeving kan inrichten.
Die kennis moet bewaard blijven, omdat de oude systemen de wettelijke vastlegging van electronische berichten bevat. Zoals bij papier moet de oorspronkelijke authenciteit en bericht inhoud etc in het orgineel formaat bewaard blijven.
Mijn ervaring is dat veel nieuwbouw met techniek, die niet aansluit bij de oude systemen, niet werken.
Je hebt een integratie nodig.
In de agile manifesto groep in de us vind ik inspiratie. Zij hebben voor de telecommunicatie met veel leveranciers en technieken de oplossing gevonden.
Maak los deployable stukjes. Dat is aangevuld met erik evans idee van anti corruption layer. Dat is scheidt legacy en nieuw met elk eigen bounded context. Transform wederzijds datamodel en functie aanroep in beide richtingen.
Werk ook via clean coding om steeds in kleine stapjes de programmas beter te maken. Dat kan zijn toevoeging van test of verbetering structuur of onderhoudbaarheid door meer leesbare code.
De test kunnen als zelfdocumentering werken, door ze betekenisvolle namen te geven