Development, technisch brein achter HelloID
We ontwikkelen en onderhouden het HelloID platform met meerdere development teams. Ieder team wordt inhoudelijk aangestuurd door een zogeheten teamlead. Kees is een van die teamleads. Hij vertelt je meer over de HelloID development.
Wat is jouw rol binnen HelloID?
Ik ben teamlead van een van de development teams die werken aan de Provisioning module. We werken agile met zogeheten zelfsturende teams en daarbinnen ben ik verantwoordelijk voor de resultaten. Ik moet zorgen dat we onze afspraken met het management en andere teams nakomen, de doelen bereiken en nieuwe softwarereleases tijdig opleveren. Daar hoort natuurlijk ook de afstemming bij met het management en andere ontwikkelteams. Voor de ontwikkelaars in mijn team ben ik het inhoudelijke aanspreekpunt en hun coach.
Wat vind je leuk aan die rol?
Als ervaren ontwikkelaar vind ik het leuk dat ik me kan blijven richten op de inhoud, maar tegelijkertijd wel die extra taken kan oppakken. Daarbij maakt het natuurlijk wel uit wáár en hoe je dat kunt doen. Ik heb eerder development rollen ingevuld bij andere organisaties en daar had ik vaak meer te maken met ‘technische ballast’. De gebruikte technologie was daar langzamerhand gedateerd en ook was er onbalans ontstaan tussen onderhoud en vernieuwing.
'Bij Tools4ever ligt de nadruk op innovatie.'
Bij Tools4ever is die balans veel beter. Ik heb me hier vanaf het begin kunnen bezighouden met de ontwikkeling van ons cloudplatform en de nieuwste technologieën kunnen gebruiken. Daarbij is onze ontwikkelmethode door de jaren heen helemaal gefinetuned op ons platform, zodat we de software heel effectief kunnen bouwen. Daardoor hebben we binnen het team ook het gevoel dat we echt helemaal ‘bij’ zijn. Er is natuurlijk wel onderhoud, maar het zwaartepunt ligt echt op innovatie. Dat maakt je werk een stuk interessanter.
Waar richt jouw team zich op en wat zijn je uitdagingen daarbij?
Ons team is verantwoordelijk voor de verdere ontwikkeling van de provisioning functionaliteit. Provisioning vormt de kern van de HelloID oplossing en zorgt ervoor dat gebruikers zoveel mogelijk automatisch worden voorzien van de juiste accounts en toegangsrechten. En dat vaak voor honderden of duizenden medewerkers met talloze aangesloten systemen.
Daarvoor gebruikt de software allerlei gegevens uit bronsystemen zoals HR-systemen, roosterapplicaties en planningssystemen. We verwerken zo enorme aantallen gegevens uit meerdere bronsystemen, waarna we de resultaten – accounts en rechten - moeten configureren in de verschillende doelsystemen.
De uitdaging zit voor ons team dus in de slimme en correcte verwerking van al die dynamische gegevens. Als we daarbij fouten maken, verstrekt het systeem te weinig of juist te veel rechten en kan er bijvoorbeeld een datalek ontstaan. Om compliant te zijn met de relevante wet- en regelgeving moet onze software dus gegarandeerd op ieder moment correct werken. En ook moeten alle wijzigingen reproduceerbaar zijn bij audits.
Heb je een voorbeeld van zo’n ontwikkelproject?
Waar we als team erg trots op zijn, is de Person Aggregatie applicatie. Een van onze uitdagingen is hoe je gegevens van één persoon kunt herkennen en combineren als die gegevens op verschillende plaatsen of zelfs in meerdere bronsystemen zijn opgeslagen. Iemand kan in een HR-systeem bijvoorbeeld meerdere keren zijn ingevoerd voor verschillende dienstverbanden. Het kan dan erg moeilijk zijn te bepalen of gegevens betrekking hebben tot één en dezelfde persoon. Vooral omdat je hiervoor geen privacygevoelige gegevens mag gebruiken zoals BSN-nummers.
We ontwikkelden daarom een oplossing waarin we aan de hand van zogeheten identificatie kenmerken een soort matchingwaarde bepaalt tussen verschillende data. Ligt die matchingwaarde boven een ingestelde treshold, is de conclusie dat de gegevens bij één persoon horen en combineren we de data. Zo niet, ondersteunt de applicatie een handmatig verificatieproces. Zulke tools zijn erg complex om te ontwikkelen en voor ons als team dus extra leuk.
Hoe hebben jullie de software ontwikkeling georganiseerd?
We werken volledig agile en gebruiken een scrum methodiek die we door de jaren heen hebben verfijnd naar ons platform en omstandigheden. Met maandelijks een sprint waarin we nieuwe functionaliteit maken en opleveren.
'Nieuwe ideeën komen van klanten én collega’s.'
Onze product owner heeft natuurlijk een visie voor het product, maar die wordt gaandeweg aangepast, aangevuld en verfijnd aan de hand van input van allerlei stakeholders. Sales komt met voorstellen, klanten komen rechtstreeks met verzoeken en ook vanuit support, consultancy en de ontwikkelteams komen er suggesties. De product owner verzamelt die input en maakt in overleg met de product manager keuzes voor nieuw te ontwikkelen functionaliteit.
Vervolgens wordt zo’n nieuw thema door de product owner samen met een ontwikkelteam uitgewerkt. Daarbij verschuift de verantwoordelijkheid gaandeweg van de product owner naar het development team. Het is een iteratief proces dat bijvoorbeeld begint met een brainstorm. Daarna wordt een functionele opzet gemaakt en een high-level architectuur. Zo krijgen we gaandeweg een duidelijker beeld van wát er moet worden gerealiseerd. De technische uitwerking, dus de vraag hóe we de functionaliteit gaan realiseren, is vooral de verantwoordelijkheid van het ontwikkelteam.
Als dat klaar is, hebben we een gezamenlijk beeld van de functionaliteit, de technische realisatie en de benodigde ontwikkeltijd. Hiermee kan de product owner het werk als milestone opnemen in de planning. In die planning vind je de concrete maanden waarin het team steeds een deel van de functionaliteit zal realiseren. Uiteraard mikken we er op al zo snel mogelijk zaken op te leveren die direct waarde toevoegen voor de klant. Iedere sprint sluiten we af met een release demo video voor klanten.
Hoe zorgen jullie voor een wendbaar en schaalbaar platform?
Goeie vraag. Het hele platform is schaalbaar opgebouwd met microservices. Dit is een architectuurconcept van onafhankelijke services die met API’s onderling zijn gekoppeld en samenwerken. Zo’n modulaire aanpak betekent dat je het platform eenvoudig functioneel kunt uitbreiden en aanpassen.
Een ander belangrijk voordeel van dit concept is de schaalbaarheid. Als een applicatie uit één executabel bestaat, kun je alleen de applicatie als geheel opschalen. Bij microservices kun je per service bepalen of meer rekenkracht nodig is. We hebben bij de ontwikkeling van de Provisioning module ook nooit last gehad van ‘groeistuipen’. We zijn in een aantal jaren doorgegroeid van enkele naar honderden klanten zonder noemenswaardige issues.
Goed trouwens om te noemen is dat we als ontwikkelteam ook direct betrokken zijn bij de doorontwikkeling van de overkoepelende HelloID oplossing. Naast de ontwikkeling van software voor onze eigen module plannen we 2x per jaar een maintenance sprint om dat core platform te verbeteren en uit te breiden. Dit zijn echte zogeheten crossteam werkzaamheden die ik samen met de andere teams organiseer en inplan. Daarbij is er natuurlijk afstemming over allerlei technische platform keuzes. We werken aan één product wat betekent dat we zoveel mogelijk gebruik maken van dezelfde 3rd party oplossingen.
Hoe bewaak je de kwaliteit van je werk en hoe verandert je ontwikkelwerk?
'Elke regel code wordt meerdere keren getest.'
Nieuwe software die we tijdens een sprint ontwikkelen wordt meerdere keren beoordeeld en getest. Iedere ontwikkelaar test allereerst de eigen code. Daarnaast wordt de code gereviewed door een collega ontwikkelaar en ook test die collega de functionaliteit nogmaals op de eigen ontwikkelomgeving. Vervolgens testen we de software binnen de HelloID test omgeving in de cloud. Tenslotte wordt nog een preview test uitgevoerd. Dat is een regressietest om te controleren of de nieuw ontwikkelde software nergens onbedoelde impact heeft op bestaande features. Pas als die test geslaagd is, kan de nieuwe release worden gepresenteerd.
Waar zijn jullie nu vooral druk mee bezig?
Op dit moment zijn we vooral bezig met de ontwikkeling van onze Reconciliation feature. Dat is een onderdeel van de nieuwe Governance module die een perfecte aanvulling levert op de bestaande provisioning functionaliteit. Met provisioning ben je in staat accounts en rechten te verstrekken in doelsystemen. Met de nieuwe Reconciliation functionaliteit kun je nu ook de bestaande rechten in doelsystemen weer uitlezen en vergelijken met de gegevens in HelloID.
Zo kun je onder andere inconsistenties tussen HelloID en doelsystemen herkennen en herstellen. Zulke mismatches ontstaan bijvoorbeeld omdat beheerders ook nog accounts en rechten handmatig in de doelsystemen aanmaken of bijwerken. Voorheen was het een stevige puzzel om zulke mismatches te achterhalen, maar met de Reconciliation tool kun je nu de feitelijke rechten van doelsystemen uploaden en direct vergelijken met de gewenste rechten op basis van de regels die zijn vastgelegd in Provisioning.
Naast functionele uitdagingen is het ook een technisch complexe puzzel om deze software te ontwikkelen. Er zijn bijvoorbeeld strenge performance eisen omdat je heel veel data moet inladen en efficiënt vergelijken. Met de Governance functionaliteit gaan we nu als ontwikkelteam een hele nieuwe fase in en dat maakt het voor ons extra leuk en uitdagend!
Ben je benieuwd naar onze software?

Geschreven door:
Floor Meijers
Als Content Marketeer is Floor Meijers sinds 2023 verantwoordelijk voor het creëren van doeltreffende en aansprekende content voor Tools4ever. Met haar achtergrond in Business Innovation aan Avans Hogeschool en vier jaar ervaring in contentmarketing voor diverse technische bedrijven, weet zij als geen ander hoe zij complexe onderwerpen begrijpelijk en aantrekkelijk maakt voor verschillende doelgroepen. Dankzij klantonderzoeken die zij uitvoerde, begrijpt Floor de behoeften van klanten grondig en weet zij content te ontwikkelen die daarop aansluit. Haar kennis van Identity and Access Management (IAM) stelt haar in staat om inhoud te produceren die inhoudelijk sterk én relevant is.