In 2019 ben ik gestart bij HealthConnected als Lead Developer. Op dat moment voerden we één applicatie; het KIS (Ketenzorg Informatie Systeem). Paul (Witteman, red.) pitchte toen het idee bij me van een integraal platform bestemd voor de eerstelijns huisartsenzorg. We bogen ons samen over de spreekwoordelijke tekentafel en startten toen echt met het bepalen en uitschrijven van onze technische basisprincipes.

De basisgedachte van ons ideale platform

Het werkt altijd het beste als je je ideaalbeeld kan reverse-engineeren. Dat wil zeggen: je begint bij je noordster, of je stip aan de horizon, en je werkt stap voor stap terug naar het hier en nu. Je probeert zo goed mogelijk in kaart te brengen waar je heen wilt en welke hordes je misschien moet nemen.

Wat de techniek betreft hadden we een basis om mee te werken: het KIS. Helaas vonden we de monolithische architectuur waarmee dat gebouwd was niet toekomstbestendig. We hadden al snel bepaald dat het moest worden omgebouwd tot een service georiënteerde architectuur. Deze ommekeer gaf ons enkele cruciale voordelen: componenten in het platform zijn herbruikbaar en kunnen onafhankelijk van elkaar worden geüpdatet en ontwikkeld. Een goed voorbeeld hiervan is onze Financiële Module. Dit gaf ons een sterke mate van flexibiliteit waardoor we erg snel kunnen inspelen op veranderingen op allerlei vlakken.

  • Een monolithische architectuur is een traditioneel model in software-ontwikkeling. Het is gemaakt als een softwareprogramma dat op zichzelf staat en onafhankelijk opereert van andere applicaties. De term komt uit het Grieks: “monos” (= alleen) en “lithos” (= gesteente).
  • Een (micro)service architectuur is het tegenovergestelde. Het bestaat uit allerlei losse onderdelen met een eigen afgekaderde functie die eenvoudig op elkaar aan te sluiten zijn door middel van APIs, integraties en andere koppelingen.

Voorwaarde aan al deze losse systemen was wel dat we een gecentraliseerd en uniform ontwikkelproces wilden naleven. We bepaalden dan ook voor zowel frontend als backend dat we vanuit een gedeelde codebase zouden ontwikkelen.

De ervaring met de monolithische architectuur van ons KIS heeft ons geleerd om veelgebruikte functies (SBV-Z, COV, WID, etc.) niet vast te metselen in een specifieke applicatie. Onze oplossing was om een koppelplatform te bouwen die kon worden bevraagd door andere systemen binnen ons platform. Zo zouden we alles gemakkelijk in elkaar kunnen “klikken”.

Het team rondom het fundament

Het team is gevormd rondom onze visie. We hebben mensen bij elkaar gebracht die niet alleen technisch sterk zijn, maar ook durven kritisch te zijn op elkaar en zichzelf. Ze passen binnen onze cultuur van samenwerking en eerlijkheid. Wil je een toonaangevend softwareplatform bouwen? Dan heb je zo’n team nodig. De architectuur die we hebben ontwikkeld, dient als een solide fundament. Hierop kunnen we verder bouwen zonder vast te lopen in legacy-problemen.

Legacy software is een term die verouderde of gedateerde software aanduidt. Vaak worden deze programma’s uitgefaseerd omdat ze niet meer kunnen concurreren met moderne software in het kader van update-snelheid, performance en andere optimalisaties. De term komt uit het Engels en betekent letterlijk “nalatenschap”.

Van visie naar realiteit

Het tot leven brengen van deze visie bracht uiteraard voldoende uitdagingen met zich mee welke eerst moesten worden aangepakt. Denk hierbij met name aan de samenwerking over twee locaties, het ontwikkelproces en de strakke deadlines.

In het volgende artikel komt het eerste grote project aan bod. Dat project is de bakermat van ons platform gebleken en wordt nog steeds actief doorontwikkeld.

Geschreven door

Ben Heijblom, Architect / CTO

Meer publicaties door Ben  >
Ben
Link gekopieerd!
Gerelateerde onderwerpen