Innovatie & Strategie

Software-ontwikkeling
modular system

Evolueerbare software, het kan écht!

Belastingdienst en Rijkswaterstaat enthousiast over alternatieve softwareontwikkelmethode.

© Shutterstock a-image
11 juli 2022

Belastingdienst en Rijkswaterstaat enthousiast over alternatieve softwareontwikkelmethode.

De Belastingdienst en Rijkswaterstaat hebben de afgelopen jaren goede ervaringen opgedaan met een nieuwe manier van softwareontwikkeling. Die maakt onderhoud en uitbreiding van systemen makkelijker en betrouwbaarder. Voor het zover was, moesten de organisaties wel wat scepsis overwinnen om met een kleine, op academische leest geschoeide startup in zee te gaan.

De drijfveer van de grondleggers van de methode, twee hoogleraren van de Universiteit Antwerpen, is de eeuwige ergernis dat grote softwaresystemen vaak heel moeizaam aanpasbaar zijn aan nieuwe omstandigheden. De Belastingdienst heeft daar ervaring mee. In een technische briefing aan de Tweede Kamer legde Koos Veefkind, algemeen directeur van directie Informatievoorziening bij de Belastingdienst, uit dat de komende zes jaar aanpassingen aan het belastingstelsel onverantwoord veel inspanning kosten, terwijl er al voorbereidingen lopen voor de bouw van nieuwe systemen. Maar ook Rijkswaterstaat heeft legacysystemen in gebruik die niet gemakkelijk kunnen meebewegen met de behoefte van de moderne tijd.

"In 2014 studeerde een van onze collega’s aan de Antwerp Management School. Daar heeft diegene voor het eerst gehoord over de Normalized Systems Theorie en het bijbehorende framework." Natasja Benders, team manager Normalized Systems bij Directie Informatievoorziening (IV) van de Belastingdienst, schetst hoe het plan ontstond om deze methode (zie kader) uit te proberen. In 2015 is een Proof of Concept uitgevoerd om de praktische haalbaarheid te bepalen door een kleine applicatie te herbouwen. Dat project werd gedaan door NSX, de spin-off die de Antwerpse hoogleraren Herwig Mannaert en Jan Verelst hebben opgezet om hun theorieën bruikbaar te maken in de praktijk.

Wat zijn Normalized Systems?

Mannaert en Verelst ontwikkelden in 2006 ideeën over hoe systemen beter geschikt gemaakt kunnen worden voor veranderende eisen die in de tijd ontstaan. De kern van hun oplossing bestaat uit het afdwingen van strikte ontwerpregels bij het creëren van kleine softwaremodules. Die kunnen samen een groot en complex systeem vormen, of het uitgangspunt voor een startup.

De strikte regels vereisen dat de functie van elke module wordt ontleed tot de kernelementen. Vergelijk het met chemie: je kunt iets op moleculair niveau beschrijven, maar ook op het niveau van de atomen die de basis vormen van de moleculen. Die zorgvuldige opbouw van de modules -  die elk ook maar strikt één functie mogen uitvoeren - zorgt ervoor dat een latere wijziging in de module, of in een aantal modules, geen effect heeft op overige modules. Daarmee wordt het 'rimpeleffect' voorkomen dat doorgaans de oorzaak is van duur en tijdrovend onderhoud aan complexe systemen. Met Normalized Systems heeft een wijziging in een onderdeel van de software dus niet tot gevolg dat er ook op allerlei andere plekken aanpassingen nodig zijn. Het zorgt er ook voor dat een systeem van een startup goed kan meegroeien in een exponentiële groeifase en de uitbreiding van functionaliteit.

Voor ontwikkelaars is het in de praktijk ondoenlijk om software te bouwen zonder die strikte ontwerpprincipes te schenden. Daarom hebben Mannaert  en Verelst een raamwerk opgezet met modelleersoftware, dat ontwikkelaars helpt modellen te bouwen die voldoen aan die ontwerpregels. Vervolgens zetten codegeneratoren, of 'expanders' zoals ze in Normalized Systems heten, het model om in uitvoerbare code.

Twintig applicaties

Benders: "Deze PoC was succesvol, we zagen dat we het systeem beter konden onderhouden tegen aanzienlijk lagere kosten." Inmiddels zijn al twintig applicaties opgeleverd met de inzet van Normalized Systems (NS).  "We gebruiken NS voornamelijk op het gebied van transactieverwerkende systemen en kantoorapplicaties, omdat hier de grootste vraag naar is. Denk hierbij aan de systemen voor de Wet Tegemoetkoming Loondomein, de VAT Refund en het systeem voor de omzetbelasting."

Op beslissende momenten heb je visionairs nodig die 'ja' durven zeggen

Rijkswaterstaat (RWS) volgde net zo'n voorzichtig traject, blijkt uit een gesprek met Henk Cox, manager Ontwikkeling Verkeerssystemen, onderdeel van de Centrale Informatie Voorziening Rijkswaterstaat. "De scepsis die zo'n startend bedrijf moet overwinnen in organisatie als RWS, is groot. Dat voorbehoud krijg je alleen weg door te laten zien dat het werkt. Dat is een kip en ei probleem. Op zo'n moment heb je visionairs nodig die 'ja' durven zeggen."

In het geval van RWS was dat Perry van der Weyden, destijds CIO, die vanuit de top geloofde in het initiatief en dat steunde. "Ik heb twee jaar geleden contact gezocht met de Belastingdienst waar ze toen al flink wat ervaring hadden met de methode. Ik wilde weten of we niet te maken hadden met een luchtballon. Ik raakte overtuigd dat het echt iets is."

Max Verstappen

Vervolgens zijn bij RWS twee - wat Cox noemt - 'proof of values' uitgevoerd. Onderdelen van twee belangrijke, maar verschillende applicaties werden in een paar sprints herbouwd en vervolgens weer met een aantal releases aangepast om te zien wat het effect was. De eerste proof of value werd uitgevoerd door NSX. RWS laat software tot nog toe altijd uitvoeren door externen en houdt zelf daarbij de regie.

Een vrees was echter dat voor het toepassen van de methode veel specifieke kennis nodig was. Dan doemt het gevaar op dat specialisten worden weggekocht door techgiganten en RWS geen nieuwe 'Max Verstappen voor het besturen van de F1-bolide kon vinden', zoals Cox het beschrijft. Daarom wilde hij dat CGI, een van de vaste partners van RWS, de tweede proof of value zou bouwen, hooguit gecoached door NSX. De vrees bleek ongegrond. Binnen enkele weken was een team van ervaren JAVA-programmeurs up and running. Zij gingen aan de slag met een vereenvoudigde versie van onderdelen van het Systeem Planning en Informatie (SPIN). In dat systeem kunnen aannemers hun wegwerkzaamheden aanmelden en RWS regelt er de coördinatie mee.

Expanders

Het ontwikkelteam volgde bij de proof of value een agile werkwijze, zoals gebruikelijk bij RWS. Na elke sprint werden tussenproducten met de eindgebruikers besproken. "Vanuit het model [zie kader, red] kon makkelijk uitvoerbare code worden gecreëerd en getoond. Wilden de gebruikers aanpassingen, dan waren die snel in het model aan te brengen. De code die de expanders vervolgens creëerden, kon weer aan de gebruikers worden gedemonstreerd." De werkwijze sluit goed aan bij de DevOps-methodiek waarbij veel van het deployment en onderhoud geautomatiseerd verloopt.

Het traject is zo goed bevallen dat RWS inmiddels heeft besloten SPIN volledig te herbouwen met behulp van NS. Cox: "Er is nu een aanbestedingsprocedure in voorbereiding. In 2023 zou de applicatie klaar moeten zijn voor gebruik." Ook Benders zegt dat er intern bij de Belastingdienst hard aan wordt gewerkt om NS als standaard ontwikkelmethode te gaan gebruiken.

Minder handmatig

Overigens gaat niet alles van een leien dakje, geeft Benders toe. "Het model dat de front end ten behoeve van een applicatie genereert, vraagt momenteel om veel handmatige aanpassingen in de code. We hebben dit opgelost door zelf uitbreidingen van het framework en modellen te realiseren, waardoor minder handmatige aanpassingen in de code nodig zijn." Die eigenschap ziet Mannaert als een meerwaarde van NS. "Onze codegeneratoren zijn zelf ook genormaliseerd. De logica om ze aan te drijven, is gevat in een model waarmee ze worden gegenereerd en geregenereerd. Wat overblijft zijn gewoon geparametriseerde templates. Wil je een nieuw soort technologie gebruiken, kun je de templates aanpassen of nieuwe maken."

Rijkswaterstaat heeft dat ook gedaan om handmatige code die nodig was om sommige modules te koppelen in een model te vatten en die door zelfgemaakte expanders automatisch te laten genereren.

Benders geeft wel aan dat NS geen, of nauwelijks toegevoegde waarde heeft voor het bouwen van kleine services waarbij alleen gegevens worden doorgegeven. "Bij ieder nieuw project overwegen we nu de toepassing van NS op basis van de rationele argumenten en toegevoegde waarde."

Magazine AG Connect

Dit artikel is ook gepubliceerd in het magazine van AG Connect (juni 2022). Wil je alle artikelen uit dit nummer lezen, zie dan de inhoudsopgave.

1
Reacties
Stef Joosten 11 juli 2022 17:09

@Thijs, veelbelovend als RWS en BD zomaar een wetenschappelijke methode omarmen. Dat zien we niet vaak, dus dat is alleen daarom al interessant. Is er ook een wetenschappelijk onderzoek gestart om de ervaringen te kwantificeren? Nu hebben we enthousiaste getuigenissen van twee gebruikersorganisaties, maar ik ben ook wel benieuwd naar de harde resultaten.

Reactie toevoegen
De inhoud van dit veld is privé en zal niet openbaar worden gemaakt.