Bij GENIUS was de ultieme test niet in een datacenter. Het was op een NAVO-oefening — in een weiland, op zee, of in de lucht. Onbemande systemen die het moesten doen onder echte omstandigheden. En als het niet werkte, dan stond je niet met een rood bolletje in een dashboard — dan stond je met een generaal die wilde weten waarom zijn systeem het niet deed.
Mijn taak: de flow van code naar veldtest zo betrouwbaar maken dat we op de dag zelf wisten dat het zou werken.
De keten
Het proces bestond uit meerdere stappen die eerst los van elkaar stonden:
- Ontwikkelaar schrijft code → lokaal testen
- SITL (Software in the Loop) → software draaien in een gesimuleerde omgeving
- HITL (Hardware in the Loop) → software op echte hardware, maar nog in het lab
- OTAP → van Ontwikkeling naar Test naar Acceptatie naar Productie
- Veldtest → echte omstandigheden, met echte gebruikers
Het probleem: tussen elke stap zat een gat. Ontwikkelaars wachtten dagen op feedback uit SITL. HITL werd ad-hoc gedaan. Veldtesten waren chaotisch omdat niemand wist welke versie waar draaide.
Automatiseren wat kon, standaardiseren wat moest
Ik bouwde een simulatie-omgeving die automatisch feedback gaf op code. Elke commit ging door SITL. Ontwikkelaars kregen binnen minuten te zien of hun code zich gedroeg zoals verwacht in een gesimuleerde setting — niet pas dagen later.
Voor HITL maakte ik een gestandaardiseerde procedure. Geen ad-hoc “laten we even testen” maar een gestructureerde flow met vaste checks. Elke HITL-sessie had een draaiboek. Iedereen wist wat er getest werd, met welke hardware, en wat de verwachte uitkomsten waren.
De OTAP-straat werd het hart van het releaseproces. Elke omgeving had een duidelijke functie:
- Ontwikkeling — hier mag het stuk
- Test — hier wordt serieus getest
- Acceptatie — hier kijkt de klant mee
- Productie — hier draait het op de velddag
Veldtestdagen leiden
De veldtest zelf was waar alles samenkwam. Ik leidde de organisatie, uitvoering, en training van deze dagen. Een veldtestdag was geen vrijblijvende demo — het was een militaire operatie met tijdslots, duidelijke doelstellingen, en technische ondersteuning voor als het misging.
En ja, het ging weleens mis. Een sensor die in het lab perfect werkte, deed het niet in de kou van een novemberochtend. Een netwerkverbinding die fluctuaties vertoonde waar we in simulatie niet aan gedacht hadden.
Maar omdat het proces solide was, wisten we wélke versie er draaide, wat er verwacht werd, en hoe snel we terug konden naar een werkende staat. We waren niet aan het gokken. We waren aan het debuggen met data.
Wat ik leerde
Simulatie bespaart schaamte. Hoe meer je in SITL en HITL vangt, hoe minder je in het veld ontdekt. Elke bug die je in simulatie vindt, is een bug die je niet aan een NAVO-generaal hoeft uit te leggen.
Standaardisatie is vrijheid. Dit klinkt paradoxaal, maar als iedereen dezelfde flow volgt, hoeft niemand na te denken over hoe het moet. De energie gaat naar het échte werk: zorgen dat het systeem doet wat het moet doen.
Een veldtest is een product. Het is niet “even testen in het veld.” Het is een georganiseerd evenement met planning, rollen, draaiboeken, en verantwoordelijkheden. Behandel het als zodanig.
Vertrouwen komt van herhaalbaarheid. De eerste veldtest was spannend. De tweede was beter. Bij de vijfde wisten we: als het door de pipeline komt, werkt het in het veld. Dat vertrouwen — niet in de software, maar in het proces — was de grootste winst.