~/blog/gids/ai-quality
AI en codekwaliteit
Genereren is goedkoop geworden. Beoordelen niet. Over tests, churn en de lat die blijft staan.
Waar deze gids over gaat
Code genereren kost tegenwoordig seconden. Beoordelen of die code klopt, past en houdbaar is kost nog precies evenveel als vroeger. Die schaar is het onderwerp van deze cluster, want vrijwel elk kwaliteitsprobleem met AI-code is er een variant van.
Ik schrijf hierover vanuit de praktijk. Ik gebruik agents dagelijks en ze leveren echt werk op. Juist daarom valt op waar het knelt: de output groeit, de reviewcapaciteit niet, en alles wat je niet beoordeelt komt later terug met rente. Snelheid werd goedkoop, je oordeel niet werkt dat uit aan de hand van wat massale orkestratie met je review doet.
Tests die iets bewijzen
De eerste reflex is dan: laat de AI ook de tests schrijven, dan is de kwaliteit toch geborgd? Bijna. Coverage bewijst alleen dat een regel is uitgevoerd, niet dat iemand een fout zou opmerken. En een model dat een denkfout maakt in de code, maakt diezelfde denkfout doodleuk nog een keer in de test. In AI genereert je tests, maar test het ook echt? gebruik ik mutation testing om die schijnzekerheid meetbaar te maken: saboteer de code en kijk of er ook maar één test rood wordt.
Wat er met je codebase gebeurt
Kwaliteit gaat verder dan de losse PR. Op codebase-niveau zie je twee patronen terug. Het eerste is meetbaar: code churn, regels die binnen twee weken alweer herschreven worden omdat de eerste versie nooit echt af was. Het tweede is sluipender: de lava-laag, code die niemand meer echt begrijpt en die daarom niemand meer durft aan te raken. Beide beginnen op hetzelfde moment, namelijk wanneer code de repo in gaat die niemand ten diepste heeft beoordeeld.
De lat die blijft staan
Daarom eindigt deze cluster steeds bij dezelfde standaard. Ship nooit code die je niet snapt: als je een stuk code niet aan een collega kunt uitleggen zonder naar de AI te wijzen, hoort het niet in je repo. En houd je leesspieren getraind, want je vindt de bug niet als je de code niet schreef. Debugging-instinct is opgebouwd uit duizenden keren zelf schrijven en zelf lezen, en dat instinct verdampt sneller dan je denkt.
Geen van deze regels is nieuw. Ze golden ook toen code nog met de hand werd getikt. AI heeft ze alleen urgenter gemaakt, omdat het volume waarop je ze kunt overtreden is geëxplodeerd. Vroeger begrensde je typsnelheid hoeveel onbegrepen code er per week in je repo kon belanden. Die rem is weg, en er is niets automatisch voor in de plaats gekomen. De vervanging moet uit je proces komen, en dat is precies wat de stukken in deze cluster proberen te bieden.
Waar dit raakt aan de workflow
Kwaliteit begint stroomopwaarts, bij hoe je een agent aanstuurt. Een goede spec, kleine stappen en review als vaste poort voorkomen meer ellende dan welke linter ook. Het scharnierpunt tussen die twee werelden is de spec die je niet las: een agent je spec laten schrijven is prima, hem ongelezen doorsturen naar een tweede agent is vragen om problemen. De volledige werkvorm staat in de gids over agentic coding, hieronder bij de verwante onderwerpen.
Hieronder eerst drie startpunten, daarna alle stukken uit deze cluster, nieuwste eerst.
Beste startpunten
- Waarom je nooit code moet shippen die je zelf niet snapt
De kernregel van deze hele cluster. Als je maar één stuk leest, dit.
- De prompt is geen spec
Waarom een vage intentie geen requirements is, en wat er gebeurt als je doet alsof.
- Je vindt de bug niet als je de code niet schreef
Wat er met je leesvaardigheid gebeurt als AI het schrijfwerk overneemt.
Alle artikelen in dit onderwerp
AI genereert je tests. Maar test het ook echt?
AI-tests halen in seconden een hoge coverage, maar coverage bewijst alleen dat een regel is uitgevoerd. Mutation testing bewijst dat de tests een bug ook echt vangen, en Chaos-MCP zet die loop in je agent.
Snelheid werd goedkoop. Je oordeel niet.
Claude Code start nu duizend subagents op vanuit één prompt. De orkestratie is goede techniek. De tokenrekening, en wat die met je review doet, is het stuk dat niemand narekent.
Code churn: de lava die je nog kunt meten
AI-teams sturen meer PRs door dan ooit, maar 40% van die regels wordt binnen twee weken alweer herschreven. De lava-laag is wat verhardt. Churn is wat die kans nooit krijgt.
Je vindt de bug niet als je de code niet schreef
AI maakt je geen slechtere programmeur. Het maakt je een slechtere lezer. Over debugging-instinct, vaardigheidsverlies, en waarom het grootste gat niet in het schrijven van code zit maar in het begrijpen ervan.
Je agent lijdt onder je technische schuld
Een grappige plugin laat AI-agents kreunen bij slechte code. Maar de echte clou is wat het onthult over de code die we schrijven, en de code die we AI voor ons laten schrijven.
De prompt is geen spec
Ontwikkelaars behandelen AI-prompts alsof het requirements zijn. Dat zijn ze niet. Over vage intenties, zelfverzekerde hallucinaties, en waarom het verkeerde ding snel bouwen nog steeds het verkeerde ding is.
De lava-laag: waarom AI-code je codebase langzaam versteent
We bouwen sneller dan ooit, maar tegen welke prijs? Over de onzichtbare ophoping van code die niemand echt begrijpt en waarom je applicatie verandert in een ondoordringbare rots.
Waarom je nooit code moet shippen die je zelf niet snapt
Als je code niet aan een collega kunt uitleggen zonder te zeggen 'dat heeft de AI gedaan', dan hoort het niet in je repo. Over black boxes, WC-eend-tests en waarom hoop geen strategie is.