THEMA

‘HOE MOEILIJKER DE PUZZEL, HOE LEUKER HET IS ALS JE HEM TOCH OPGELOST KRIJGT’

Wie is Coen?

‘Al vanaf mijn jeugd vond ik computers interessant, van de spelletjes tot de hardware. Maar ik ben niet meteen het vak van softwareontwikkelaar ingerold. Ik ben na mijn havo bij de open dag van een informaticaopleiding geweest, maar ik koos er toch voor om civiele techniek te gaan studeren, net als mijn vader. Dat leek me hartstikke mooi. Ik behaalde mijn propedeuse, maar wilde toch wat anders gaan doen. Wat precies wist ik eigenlijk niet. Zelf iets met mijn handen maken vind ik leuk, toentertijd had ik een bijbaantje bij een meubelstoffeerder en dat leek me wel iets. De baas aldaar raadde me aan om te gaan studeren en dat ben ik gaan doen. Met de studie ondernemingsmanagement had ik het plan om als zelfstandig ondernemer meubels te gaan maken. Aan het einde van studie liep ik stage bij een klein softwarehuis. Daar kwam ik er achter dat ik het ontwikkelen van software heel erg leuk vond. Ik heb mijn opleiding afgemaakt en kwam daarna bij een bedrijf waar ik in deeltijd informatica kon studeren. En zo, twaalf jaar later nadat ik de open dag voor informatica bezocht, had ik toch een informaticadiploma in handen. Als softwareontwikkelaar ben je iedere dag bezig met bouwen, dat is wellicht de reden dat ik het zo leuk vind om te doen. Ook in mijn vrije tijd ben ik graag aan het bouwen. Ruim een jaar geleden heb ik samen met mijn verloofde onze (casco)nieuwbouw woning kunnen betrekken. Die hebben we samen tot een fijn woonhuis verbouwd. Als hobby bouw ik nu thuis dingen van hout. Ik heb onze eettafel, tuinkast en ombouw voor containers zelf gemaakt. Ik ga nog een salontafel maken met hetzelfde hout als de eettafel. Als je het zelf maakt, heb je iets unieks, iets met een eigen verhaal en dat vind ik mooi. ’

Wat doe je voor de klant?

‘Ik ben senior developer, ofwel softwareontwikkelaar. Binnen een team werk ik iedere dag aan het verbeteren en uitbreiden van Nextens. Ik schrijf code, in de ontwikkeltaal C#, waarmee nieuwe functionaliteiten worden toegevoegd in Nextens. Dat proces kent vele facetten: de product owner brengt in kaart welke functionaliteiten de hoogste prioriteit hebben en wij gaan daarmee aan de slag. We kijken hoeveel tijd het kost om iets te bouwen. Dit doen we aan de hand van een functioneel en technisch ontwerp, waarin staat uit welke onderdelen het programma moet bestaan en hoe die met elkaar samenhangen. Aan de hand daarvan maken we een planning. Het is soms wel lastig om dit adequaat in te schatten, omdat we altijd iets bouwen wat we nooit eerder hebben gebouwd. Het komt dus voor dat er iets over het hoofd wordt gezien, waardoor het meer tijd kost dan verwacht. Na de planning begint het eigenlijke programmeren. Dat is het schrijven, regel voor regel, van de honderden, zo niet duizenden instructies die samen het stuk functionaliteit vormen. Als er onverhoopt bugs optreden in de software, zoals rekenfouten of systeemcrashes, worden die gevonden tijdens de testfase en gerepareerd. Ook het repareren is onderdeel van mijn werk. We werken in ‘sprints’ van drie weken. Het idee is dat we de te bouwen functionaliteit opknippen in stukjes die klein genoeg zijn om in drie weken te ontwerpen, ontwikkelen en te testen. Op die manier kunnen we frequent ‘releasen’. Soms doen we aan ‘pair-programming’, waarbij we met twee ontwikkelaars achter dezelfde machine gaan zitten. Dan werk je samen de oplossing uit en kun je veel van elkaar leren. Tegenwoordig komt het ook voor dat ik wat van de kennis die ik heb opgedaan, kan doorgeven aan minder ervaren ontwikkelaars, wat ik erg leuk vind.’

Je komt naar je werk en dan…

‘Meestal controleer ik eerst mijn e-mail. De testers controleren of er iets in de nacht in de testomgeving is mis gegaan. In de nacht wordt onze code gecompileerd (het omzetten van code naar een programma) en uitgerold op de verschillende omgevingen. In dat proces kan er iets mis gaan, waardoor de tester niet meer verder kan testen. Als dat het geval is, dan moet dat eerst worden hersteld. Dit gebeurt alleen in de testomgeving, dat is niet de omgeving waarin de klant werkt. Om half tien hebben we de dagelijkse stand-up; dan komen we met het team bijeen en bespreken we de voortgang en de eventuele problemen. Ook bepalen we wat we die dag gaan doen. Zo nu en dan heb ik een overleg, maar het meeste van mijn tijd zit ik achter mijn machine, bezig met bouwen. Dat is ook wat ik het leukste vind.’

Waar gaat je bloed sneller van stromen?

‘Onlangs kreeg ik als taak een inleesproces onder de loep te nemen. We kregen signalen dat dit veel tijd kostte en dus ben ik gaan uitzoeken waar dit precies aan lag. Als het je dan na enkele dagen programmeren lukt om het proces te versnellen van minuten naar seconden, dan geeft dat wel een kick. Ik ben eigenlijk de hele dag aan het puzzelen. Hoe moeilijker de puzzel, hoe leuker het is als je hem toch opgelost krijgt.’

Wat vind je een uitdaging in je werk?

‘Om een zo mooi mogelijke oplossing te bedenken, rekening houdend met de prestaties, uitbreidbaarheid en onderhoudbaarheid van de applicatie, die goed aansluit bij de wensen van onze klanten. Bij veel functionaliteiten kun je de meest fantastische oplossingen bedenken, die dan vervolgens veel te veel tijd vergen om te implementeren. Het vinden van de middenweg, waarbij je sneller tot een werkende oplossing komt, is een blijvende uitdaging.’

Wat voor gekke of leuke situatie met een klant heb je meegemaakt?

‘Als softwareontwikkelaar ben ik niet veel op pad naar de klant. Alles wat we binnen de software bouwen kunnen we testen, behalve de softwarecommunicatie met de Belastingdienst. Berichtenstromen die via Logius gaan, kunnen wij dus niet (goed) testen. Om dat wel te kunnen, ga ik soms naar de klant. Op dat moment werk ik met zijn certificaten en wachtwoorden. Ik vind het bijzonder om te ervaren dat de klant mij als softwareontwikkelaar zijn vertrouwen geeft. Een vertrouwen dat ik overigens nooit zal schaden.’