Waarom het Ministerie van Defensie een "vibe coder" zocht
Dit is een vervolg op Vibe coding bij het Ministerie van Defensie. Kort samengevat: het Ministerie van Defensie had een detacheringsopdracht online gezet waarin stond dat ze op zoek waren naar een "senior vibe/AI developer". Daarop had ik een woo-verzoek (wet open overheid) gedaan om daar meer over te weten te komen.
Mijn post op LinkedIn over mijn woo-verzoek bij het Ministerie van Defensie over hun detacheringsopdracht voor een "senior vibe/AI developer" maakte nogal wat los bij mensen. Als ik de reacties bekijk, lijkt er een grote groep te zijn die tevens verbaasd is door deze vacature, maar ook een groep die "blij is dat Defensie met haar tijd meegaat". Die tweedeling maakt het antwoord op het woo-verzoek des te interessanter - is Defensie daadwerkelijk op zoek naar een vibe coder?
Het antwoord kwam sneller dan ik had verwachtte. Eerst hoorde ik een hele tijd niets, dus ben ik gaan e-mailen met de vraag "hoe staat het ermee?". Ik hoorde nog steeds niets, dus ben ik gaan bellen. Helaas verbindt het telefoonnummer dat in de Woo-index staat door met de persvoorlichting, en die konden uiteraard niets betekenen. Maar op maandag 16 maart werd ik dan toch plots gebeld door een mij onbekend 06-nummer.
Ik nam de telefoon op (enigszins argwanend vanwege het datalek bij Odido waar ook mijn gegevens in staan, en waarvan de eerste phishing-pogingen al binnengekomen zijn), en werd begroet door iemand die zich introduceerde als "Luitenant". Geen phishing dus, maar het ging over mijn woo-verzoek. Ik verwachte een bevestiging, maar er kwam meer dan alleen dat.
Samengevat komt het hierop neer: er zijn vier documenten gevonden naar aanleiding van mijn woo-verzoek, maar ze kunnen niet geopenbaard worden. Alle vier vallen ze - aldus het Ministerie van Defensie - integraal onder de i-grond. De i-grond (verwijzend naar artikel 5.1.2.i van de woo) is een van de uitzonderingsgronden van de woo - simpel gezegd wordt informatie openbaar gemaakt tenzij het onder een van de uitzonderingsgronden valt.
De letterlijke tekst van 5.1.2.i is "het goed functioneren van de Staat, andere publiekrechtelijke lichamen of bestuursorganen". De uitleg die ik via de telefoon hoorde was dat het te maken had met, parafraserend, "de gevoeligheid van de informatie voor de onderhandelingspositie van de Staat". Oftewel dat met het publiceren van deze informatie het mogelijk de staat benadeelt in onderhandelingen als het gaat om vergoedingen, etc. Het voorstel kwam om het woo-verzoek te laten vallen, en het te behandelen als informatieverzoek. Dat betekent geen formele besluiten, documenten, etc., maar een antwoord op mijn vragen als e-mail door degene die ervoor verantwoordelijk is.
De i-grond wordt nogal eens te breed uitgelegd. In principe is het idee van de woo "openbaar, tenzij een van de uitzonderingen van toepassing is". In de praktijk wordt ook wel eens de keuze om het verzoek te weigeren eerst genomen, en daarna een zo passend mogelijke uitzonderingsgrond erbij gezocht. De i-grond is daar populair voor, omdat "het goed functioneren van de Staat" nogal een wendbaar begrip is. Echter kan ik het in deze context ook wel begrijpen, immers, als in één van de stukken zou staan wat het hoogste bod is van de Staat, dan kan ik me voorstellen dat dat beter is om niet te publiceren - dan wordt het als een kaartspel waar een van de twee partijen de kaarten open moet leggen, maar de andere partij niet.
Het lastige is dat ik de stukken dus niet kan zien, dus niet weet of hier de i-grond wel heel breed is toegepast (uit andere woo-verzoeken over dit soort opdrachten zijn alleen delen zwartgelakt, en niet integraal). Ik heb in dat telefoongesprek aangegeven er even over na te denken, vervolgens heb ik met een aantal vrienden en collegae overlegd die ook ervaring hebben met de woo, waarna ik uiteindelijk twee dagen later heb besloten om met het voorstel in te stemmen.
Het idee van de functie voor vibe/AI developer is om te onderzoeken of versnelling mogelijk is bij het ontwikkelen van OSINT functionaliteiten met behulp van lokale AI/LLM-modellen.
Op 1 april ontving ik de inhoudelijke reactie van het Ministerie van Defensie. Het idee van de functie voor "vibe/AI developer" is om te "onderzoeken of versnelling mogelijk is bij het ontwikkelen van OSINT functionaliteiten met behulp van lokale AI/LLM-modellen". Dat klinkt, mijns inziens, heel redelijk. OSINT staat hier voor Open Source INTelligence, en ik kan me goed voorstellen dat snel inspelen op nieuwe ontwikkelingen daar van belang is. Sowieso denk ik dat onderzoeken of het meerwaarde kan bieden geen kwaad kan - zelfs als het geen meerwaarde biedt is dat óók een waardevolle uitkomst. En daarnaast gaat het expliciet over lokale taalmodellen, on-premise (dus op eigen servers en niet in de cloud).
Er zit een aantal schakels in de keten tussen de behoeftevraag ("we hebben de behoefte aan een persoon die deze taken uit kan voeren") en de uiteindelijke opdrachttekst. Het begint met het invullen van een formulier - ik heb dit formulier uiteraard niet, maar op basis van een ander woo-verzoek (pagina 89) kan ik een beeld vormen van hoe het behoeftestellingsformulier eruit ziet. Duidelijk het uitvoerigste onderdeel is punt 18, de behoeftestelling, waarin uitgeweid wordt welke mensen, werkzaamheden, vaardigheden, etc. gezocht worden.
De behoeftestelling is een tekst van mogelijk meerdere pagina's lang. Daarin staan ook een heel aantal dingen die voor de vacature niet relevant zijn. De inhuurdesk maakt op basis van die behoeftestelling een opdrachtomschrijving, functieprofiel en takenpakket, en stuurt het vervolgens door naar de marktpartijen (brokers). Die publiceren de tekst op hun beurt, en dat is waar ik de tekst in eerste instantie ook gelezen heb. (O&P Rijk heeft een vrij duidelijk stappenplan online staan)
In dit geval lijkt het erop dat een kleine sneeuwbal aan het begin van de keten is gaan rollen en groeien, waardoor iets als "we zoeken iemand met ervaring met vibe coden" (waarmee bedoeld werd "gebruik kan maken van lokale kunstmatige intelligentie en grote taalmodellen voor het programmeren") in de behoeftestelling uiteindelijk via de interne inhuurdesk en brokers geworden is tot "we zoeken een senior vibe coder", terwijl dat niet zo bedoeld was.
Dat dit soort dingen kunnen gebeuren herken ik ook bij mijn eigen onderzoek bij de Universiteit Twente, waar "er is bij Nederlandse gemeenten nog ruimte voor verbetering bij het reageren op beveiligingsproblemen" uiteindelijk via de persvoorlichter en daarna de media geworden is tot "Veel gemeenten reageren niet adequaat op veiligheidslekken". Het grote verschil is dat ik uiteraard geen controle heb over de laatste schakel, namelijk de media.
Dat dit op deze manier mis is gegaan is ook wat ik verwacht had. Er was echter ook een kans dat dit een geval van iemand die het woord "vibe coder" heeft gehoord en toen dacht "dat moeten we ook hebben", zonder van de hoed en de rand te weten wat een vibe coder nou eigenlijk is, vergelijkbaar met hoe op een gegeven moment alles een "app" moest hebben (zonder dat duidelijk was wat een app zou toevoegen - de app als doel en niet als middel tot een doel). Gelukkig is dit niet het geval. Ik zou dat ook niet zo bij Defensie vinden passen, maar helemaal uitsluiten deed ik het niet.
Toch vind ik een kritische noot wel op zijn plaats. De opdrachttekst was voor een "senior vibe coder". Ergens in deze keten lijkt me een terugkoppeling naar de afdeling die de behoeftevraag voor een externe kracht heeft opgesteld wel gepast. Anders valt niet te controleren dat de tekst nog steeds aansluit bij wat ze zoeken. Ik ga er niet vanuit dat de inhuurdesk de expertise heeft om dat te kunnen beoordelen. Uit eigen beweging heeft Defensie aangegeven in de toekomst hier beter op te letten, en daar ben ik blij om. Immers, naast dat Defensie de juiste mensen wil werven, wil ook ik dat Defensie de beste mensen vindt - de huidige situatie in de wereld laat duidelijk zien hoe fragiel vrijheid, democratie, en internationaal recht is, en hoewel ik hoop dat het niet nodig zal zijn, ben ik toch blij dat Defensie er is om die vrijheid te beschermen. Daarvoor wil ik mensen met kennis en kunde bij Defensie.
Het probleem met de tekst zoals die gepubliceerd is, is dat er een reëel risico bestaat dat goede kandidaten deze opdracht links hebben laten liggen vanwege de tekst, terwijl mensen die allicht minder geschikt zijn (lees: échte vibe coders, die in de praktijk al voor genoeg beveiligingsproblemen hebben gezorgd) juist meer aangetrokken zijn door deze tekst. Kunstmatige intelligentie is niet direct mijn vakgebied, maar als ik een "vibe coder" genoemd zou worden zou ik me toch enigszins beledigd voelen. Ik hoop dat die eerste groep de daadwerkelijke behoeftevraag uit de tekst die online stond heeft kunnen extraheren - reageren kon tot eind februari (en nu dus niet meer). Ik heb er alle vertrouwen in dat het Ministerie van Defensie de geschikte mensen kan uitsorteren.
En daarmee is het mysterie van waarom het Ministerie van Defensie op zoek was naar een senior vibe coder opgelost - ze zochten iemand die kan onderzoeken of lokale grote taalmodellen het ontwikkelen van OSINT-modellen kan versnellen, en dat is uiteindelijk door verschillende schakels in de keten tot "senior vibe coder" omgevormd en vervolgens gepubliceerd.
Dit had net zo goed elders kunnen gebeuren. Vandaar een kleine oproep aan alle lezers (vooral binnen de Rijksoverheid): lees eens de vacatures van je organisatie door en stel jezelf de vraag of de tekst de mensen aantrekt die je graag binnen de organisatie zou willen zien. En zo niet, probeer dat terug te koppelen - het heeft immers nogal wat invloed op je toekomstige collegae.
Tot slot wil ik mijn dank uitspreken aan Defensie. Alle communicatie vanuit het Ministerie van Defensie is ontzettend respectvol en plezierig is verlopen. Het uiteindelijke antwoord was uitgebreid en inhoudelijk. Daar wil ik mijn lof voor uitspreken, want dat is geen vanzelfsprekendheid.
