AI en codekwaliteit | Blog

~/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

Alle artikelen in dit onderwerp