Mendix back-end development bij de ANWB

Klant

De Koninklijke Nederlandse Toeristenbond ANWB is een vereniging die met een unieke mix van beïnvloedende en dienstverlenende activiteiten de belangen van haar leden behartigt op het gebied van mobiliteit, vakantie en vrije tijd. Bij dat werk wil de ANWB een bijdrage leveren aan een duurzame ontwikkeling van de samenleving.

Vraag

Een nieuwe propositie is middels een Lean Start-up model in gang gezet. Om zo snel mogelijk klantwaarde op te leveren voor de eerste releases is besloten om gebruik te maken van het software ontwikkelplatform Mendix. Dit is een low-code ontwikkelplatform, waarmee ook niet-ontwikkelaars in staat zijn om mee te werken aan de bouw van bruikbare software en daarmee klantwaarde. De vraag vanuit de klant was in dit geval tweeledig. Aan de ene kant toetsen van de verwachting of een niet-ontwikkelaar kan meedraaien bij het leveren van bruikbare software, door het gebruik van een low-code ontwikkelplatform. Aan de andere kant of ook met een low-code platform de kwaliteit van het eindproduct goed inzichtelijk wordt gemaakt.

Oplossing

Vanuit Newspark was ik al bij ANWB ingezet om een team te ondersteunen op technisch testvlak. Dit betekende onder andere het opstellen en uitvoeren van testplannen, het schrijven van Postman scripts en suites, het opzetten van applicatie monitoring en ga zo maar door. Toen ik hoorde van de mogelijkheid om een stuk software ontwikkeling erbij te doen was mijn interesse snel gewekt. Ik werd doorgeschoven naar het team dat aan de nieuwe propositie ging werken.

Doen

Het grootste brok van de oplossing ligt in het doen. Mendix is, zoals meerdere low-code ontwikkelplatformen, een opkomend product met een opkomende visie. Het is voor veel mensen en organisaties nieuw. Zelf ben ik zo snel mogelijk begonnen met het bouwen van software, onder begeleiding van onze Senior Mendix ontwikkelaar. Na twee weken was ik in staat om zelfstandig een API op te zetten, en binnen een maand had ik mijn basis certificaat binnen. Inmiddels heb ik een deel van onze backend gebouwd, en meegedacht over de architectuur, de datastructuren, de communicatie en afspraken met ons front-end team. Kortom, ik ben een Mendix ontwikkelaar.

Kwaliteit

Dan komen we aan bij het tweede punt, het inzichtelijk krijgen van kwaliteit wanneer een low-code platform wordt gebruikt. Aan de ene kant vangt Mendix een boel issues voor ons af. Zo worden er bijvoorbeeld warnings en errors gelogd wanneer we een database handeling willen uitvoeren, maar onze rol hier geen toegangsrechten voor heeft. Echter, we kunnen niet volledig vertrouwen op wat de tool ons vertelt, omdat dit niet helemaal waterdicht is.

Unit Testen

Sinds wij zijn gestart met de propositie, heeft Mendix een officieel ondersteunde module opgeleverd waar “unit tests” mee kunnen worden geschreven. Ik zet unit tests tussen aanhalingstekens, omdat Mendix onder water Java gebruikt en wij niet op dat niveau (kunnen/willen) testen. De unit tests zijn bedoeld om de kleinst mogelijke stukjes van een objectflow te testen.

Stel, ik heb een stuk logica geschreven, waarin ik aan het begin controleer of een bepaalde waarde gevuld is. Via de unit test module kan ik dan een testje schrijven, dat een object mijn flow instuurt met of zonder die gevulde waarde. Wanneer die waarde dan wel of niet gevuld is, zal de test stoppen en in de logging schrijven of het getoonde gedrag klopt. Een zo klein mogelijke check van mijn logica dus, maar niet op het niveau dat de java-code eronder wordt getest.

Deze tool kan ook worden gebruikt om grotere (keten-)tests op te stellen. Het principe is dan hetzelfde (de tool roept een of meerdere flows aan met specifieke waarden).

Door het gebruiken van de UnitTesting module kunnen wij als Mendix ontwikkelaars met meer zekerheid een kwalitatief hoogwaardig product leveren. Wij zijn zelf in control van de kleinste stukjes logica die wij bouwen. Dit gecombineerd met een uitgebreide Postman suite (omdat wij een backend schrijven waar andere partijen middels endpoints op inhaken) zorgt voor een goede testdekking. Ik kijk er persoonlijk naar uit om deze kennis bij meerdere klanten toe te kunnen passen in de toekomst!