130.000 regels programmacode in de Aangifte-app

Willem van Deel werkt als lead ontwikkelaar bij het Mobile Competence Center (MCC) van de Belastingdienst. Een ondernemende club waar inmiddels al zo’n 45 apps zijn ontwikkeld. Van de Aangifte-app tot een app voor de Douane waar de Belastingdienst zelfs een internationale Xammy Award mee won.

De Aangifte-app

‘Het Mobile Competence Center is onderdeel van de Belastingdienst. Wij zorgen dat belastingzaken voor burgers en bedrijven gemakkelijker worden. Ik heb onder andere gewerkt aan de Aangifte-app. Een app waarbij het mogelijk is om met 1 druk op de knop je aangifte in te dienen. Door je DigiD in te vullen, verschijnt direct je VIA, je Vooraf Ingevulde Aangifte. Elk jaar voeren we de wetswijzigingen door en optimaliseren we de app.

Kunnen wij het maken?

Het mooie aan mijn vak is dat bijna alles mogelijk is. Als je het maar goed modelleert. De combinatie van creatief-conceptueel en techniek vind ik erg leuk. Daarom was de ontwikkeling van de Aangifte-app mij ook op het lijf geschreven. Vanuit het niets konden we alles goed opzetten. Door de code slim op te zetten is 90% van de programmacode platformonafhankelijk, wat inhoudt dat we slechts 10% specifiek voor Android en iOS hoeven te doen.

Modelleren

De essentie van ons vak is het modelleren van informatie en gedrag. Door goed te modelleren breng ik een scheiding aan tussen verschillende domeinen, en stel ik op een gestructureerde manier informatie en functionaliteit beschikbaar. Ik zorg dat ieder onderdeel alleen over die informatie en functionaliteit van andere onderdelen kan beschikken, die hoort bij zijn primaire verantwoordelijkheid. Vanuit de modellen wordt alle functionaliteit aangestuurd. Dit wordt ook wel Model Driven Development genoemd. Bij de Belastingdienst maken we gebruik van Unified Modeling Language (UML). Dat is een techniek om analyses en ontwerpen voor een informatiesysteem te kunnen maken.

130.000 lines of code

De Aangifte-app ziet er voor de gebruiker eenvoudig uit, maar bevat een uitvoerig rekenmodel voor de belastingberekening en voor het aangiftebericht. Dit model bepaalt ook welk scherm en welke informatie getoond wordt. Dat verschilt sterk per persoon of gezin. Het tonen van de optimale verdeling van gezamenlijke inkomsten en aftrekposten is iets waar we erg trots op zijn. Daardoor hoef je zelf niet meer te experimenteren hoe je het meeste geld terugkrijgt. Kortom, die 130.000 regels programmacode zijn efficiënt en gestructureerd opgezet waardoor je bij onderhoud en uitbreidingen met vertrouwen aanpassingen kunt doen op 1 plek en het resultaat direct zichtbaar is.

Iteratief ontwikkelen? Iteratief software design!

Samenhangend software design is belangrijker dan ooit. In een resultaatgestuurde wereld is de verleiding groot om simpelweg snel resultaat op te leveren. Juist bij iteratieve ontwikkelmethoden is ook iteratief software design van essentieel belang. Al tijdens het realisatietraject heb je te maken met veranderingen als gevolg van voortschrijdend inzicht. Als je je programmacode niet goed ontwerpt en normaliseert, loop je tegen de gevolgen aan als je aanpassingen moet doen. Dat ligt niet aan agile, maar aan gebrekkig software design.

Het staat als een huis

Onvoldoende bewaking van de samenhang binnen het software design, heeft tot gevolg dat de software op een oud huis gaat lijken. Stel, je hebt een huis, waaraan later een aanbouw wordt gemaakt. Weer later wordt een verdieping op de aanbouw geplaatst. Dit kan problemen opleveren bij de ontwikkeling en het onderhoud van het huis. Dat geldt ook voor je software. Behalve werkende functionaliteit is ook het softwareontwerp een product waar je als ontwikkelaar verantwoordelijk voor bent.’

Meer over de organisatie

Down icon Links icon Rechts icon Up icon Facebook icon Instagram icon Linkedin icon Linkedin icon Magnet.me icon Menu icon Search icon Youtube icon