Nieuwe AI-agents kunnen taken plannen, code aanpassen, tests draaien en soms zelfs zelfstandig een pull request voorbereiden. Dat klinkt efficiënt. Maar bij mission critical, vitale en hoog beschikbare softwareproducten is snelheid nooit het hele verhaal. De vraag is niet langer: kan AI code schrijven? De betere vraag is: onder welke voorwaarden mag AI code schrijven die we volledig compliant aan de eisen voor software voor mission critical applicaties kunnen te testen, reviewen en uiteindelijk releasen in productie?
We hebben een gesprek met Katinka Hesselink, Senior Software Engineer bij Conclusion AMIS. Zij werkt in de praktijk met Agentic Software Development en ziet waar de belofte zit, maar ook waar het snel mis kan gaan
Katinka: “Het grote verschil is dat AI niet meer alleen suggesties doet terwijl jij code schrijft. Een AI-agent pakt zelfstandig een taak op: de codebase analyseren, een plan maken, bestanden aanpassen, tests draaien en een voorstel doen voor een pull-request. Dat is krachtig, maar het verandert ook de verantwoordelijkheid. Je geeft een AI-systeem handelingsruimte in je softwareomgeving. Dan moet je dus veel preciezer zijn over wat die agent wel en niet mag doen. Voor het maken van een prototype is AI vooral handig in snelheid. Bij vitale- of mission critical software is het een ander verhaal. Daar wil je niet alleen weten of de code werkt. Je wilt weten of de wijziging past binnen de architectuur, veilig is, testbaar is en later nog te onderhouden is.”
“Spec-Driven AI Software Engineering betekent dat AI pas aan de slag gaat als duidelijk is wat gebouwd moet worden, binnen welke technische grenzen, met welke kwaliteitseisen en met welke controles. Dus niet: ‘bouw deze feature even’. Maar: ‘bouw deze feature binnen deze componentgrenzen, volgens deze coding standards, met deze koppelingen, met deze tests en zonder extra securit of compliance risico’s te introduceren’. Dat klinkt misschien minder spectaculair dan de AI-hype. Maar dit is precies waar het interessant wordt. De kwaliteit van de output komt niet alleen uit het AI-model. Die kwaliteit wordt afgedwongen door de omgeving waarin de AI-agent werkt. Daarin staan de specificaties, instructies, tests, securityregels en reviewprocessen. Met andere woorden: de agent schrijft niet zomaar code. De agent werkt binnen engineeringregels.
“Vibe Coding is ontwikkelen op gevoel. Je beschrijft ongeveer wat je wilt, kijkt wat de AI maakt en stuurt daarna bij. Dat kan heel nuttig zijn voor een prototype, een demo of een snelle verkenning. Maar voor serieuze softwareontwikkeling is het te vrijblijvend. Zeker als het gaat om software DIE verantwoordelijk is beslissingen over complexe financieel transacties, het energie system of medische processen. Systemen die direct impact hebben op vitale processen in de Nederlandse samenleving. Het risico van Vibe Coding is dat iets er goed uitziet, maar onder water niet goed in elkaar zit. De feature werkt misschien in het ideale scenario, maar past niet in de architectuur. Of de test controleert alleen het scenario dat de AI zelf heeft bedacht. Of er wordt een oplossing gekozen die nu snel lijkt, maar over zes maanden onderhoudsproblemen veroorzaakt. Spec-Driven AI software engineering draait dat om. Je begint met de afspraken, standaarden, grenzen en kwaliteitscriteria. De agent mag versnellen, maar niet improviseren buiten de lijnen.”
“Precies. De discussie gaat vaak over de vraag of AI goed genoeg is. Het antwoord is dat AI hogere kwaliteit resultaten geeft, als wij als ontwikkelaars duidelijk aangeven aan welke technische standaarden de oplossing moet voldoen. AI is tegenwoordig zowel hyper-intelligent als best wel dom. Spec-driven development betekent: AI zo aansturen dat de kans op een goed antwoord beter wordt. Goede software engineers zijn hier de guardrail. Niet omdat ze achteraf elke regel AI-code handmatig moeten controleren, maar omdat ze de voorwaarden creëren waaronder de agent goed werk kan leveren. Dat betekent dat je context expliciet maakt. Dat je coding standards vastlegt. Dat je architectuurgrenzen documenteert. Dat je tests serieus neemt. Dat je securitychecks automatiseert. En dat je goed nadenkt over welke rechten een agent krijgt. AI maakt software-engineeringdiscipline dus niet minder belangrijk. Het maakt die discipline juist meer expliciet.”
“Een agent moet begrijpen waar hij in werkt. Niet alleen welke programmeertaal we gebruiken, maar ook hoe het systeem is opgebouwd, welke domeinconcepten belangrijk zijn, welke naamgevingsregels gelden en welke keuzes in het verleden bewust zijn gemaakt. In de praktijk gebruiken we daarvoor bijvoorbeeld projectinstructies en coding standards in de repository. Dat zijn documenten waarin staat hoe de software gebouwd moet worden, welke patronen gewenst zijn en welke keuzes vermeden moeten worden. Die documenten zijn niet bedoeld als suggestie. Ze zijn hele strenge regels voor de agent duidelijk het werk te doen. Als je niets uitlegt, gaat de AI zelf patronen afleiden. Soms gaat dat goed. Vaak gaat dat net goed genoeg om gevaarlijk overtuigend te zijn. De kunst is om kennis die normaal in de hoofden van ervaren engineers zit, bruikbaar te maken voor de agent. Dat dwingt teams ook om scherper te worden. Veel onduidelijkheid in softwareontwikkeling zit niet in de code, maar in afspraken die nooit expliciet zijn gemaakt.”
“Je moet guardrail op meerdere niveaus inrichten. Ten eerste de ontwikkelomgeving. Laat agents werken in een afgeschermde cloud- of VM-omgeving, niet zomaar op een plek waar ze overal bij kunnen. Geef minimale rechten. Geen toegang tot productiegegevens. Geen wachtwoorden, tokens of sleutels in prompts, logs of contextbestanden. Ten tweede de automatische controles. De code moet aantoonbaar veilig, consistent en werkend blijven voordat een wijziging wordt geaccepteerd. Denk aan controles op codekwaliteit, unit tests, integratietests, API-tests, end-to-end-tests en CI/CD-checks. De technische namen verschillen per organisatie, maar het principe is simpel: als een agent code oplevert die niet door de kwaliteitsstraat komt, is het niet klaar. Ten derde de proceskant. Werk met branches, pull requests en verplichte reviews. Laat een agent geen architectuurbesluiten nemen zonder menselijke beoordeling. Zeker niet bij security, data, performance of beschikbaarheid. De agent mag veel werk doen. Maar hij moet niet vrij rondlopen. Dat is een belangrijk verschil.”
“Daar moet je extra streng zijn. Bij vitale software is beschikbaarheid geen technische bijzaak. Het is onderdeel van de waarde van het product. Dat betekent dat elke wijziging herleidbaar moet zijn. Je moet kunnen uitleggen wat is aangepast, waarom, welke tests zijn uitgevoerd en welke risico’s zijn beoordeeld. AI verandert daar niets aan. Het maakt die discipline juist belangrijker. Voor dit soort software is AI vooral waardevol bij gecontroleerde versnelling. Bijvoorbeeld bij legacy-modernisering, refactoring, testgeneratie of het verbeteren van consistentie. Maar altijd binnen duidelijke grenzen. De vraag is dus niet: kunnen we AI gebruiken? De vraag is: kunnen we aantonen dat AI binnen onze engineering- en securityafspraken werkt?”
“De waarde zit niet simpelweg in meer code produceren. Meer code is niet automatisch goed nieuws. Soms is het gewoon meer onderhoud. De waarde zit in gecontroleerde versnelling. Je kunt sneller moderniseren, sneller refactoren en sneller repetitief werk uitvoeren, terwijl je grip houdt op kwaliteit, security en onderhoudbaarheid. Voor klanten betekent dat vooral meer voorspelbaarheid. Niet: ‘we hebben AI gebruikt, dus het zal wel sneller zijn’. Maar: ‘we hebben AI ingezet binnen een gecontroleerd engineeringproces, waardoor we sneller kunnen bewegen zonder de basis te verzwakken’. Dat is belangrijk bij complexe softwarelandschappen. Zeker waar systemen al jaren meegaan, veel integraties hebben en niet zomaar stil mogen vallen.”
Spec-driven AI software engineering vraagt om meer engineering, niet minder Agentic softwareontwikkeling vraagt niet om minder engineering, maar om meer expliciete engineering. De kwaliteit van AI-output ontstaat niet vanzelf. Die wordt afgedwongen door specificaties, context, architectuur, tests, tooling en safeguards. Vibe coding laat zien wat mogelijk is. Spec-driven AI software engineering bepaalt of je het veilig, onderhoudbaar en verantwoord in productie krijgt. Voor organisaties met vitale of hoog beschikbare softwareproducten is dat de kern. AI mag versnellen, maar niet versimpelen wat complex is. Juist daar wordt de rol van ervaren software engineers belangrijker: zij bouwen de omgeving waarin agents veilig, nuttig en controleerbaar kunnen werken.
