~/blog/tag/craft
Vakmanschap
Over codekwaliteit, bewust bouwen en het vak van softwareontwikkeling.
Waar ik over schrijf
Vakmanschap is wat je niet kunt uitbesteden. De meeste stukken onder deze tag gaan daarover, geschreven in de tijd waarin de verleiding om uit te besteden groter is dan ooit.
Dit is de ruil die ik teams steeds zie maken. Ze grijpen naar een agent omdat het sneller features oplevert. De features komen. De bugs komen mee.
De code-review wordt dunner omdat de diff er aannemelijk uitziet. Zes maanden later kan niemand in het team meer uitleggen waarom de auth-flow doet wat hij doet, en de laatste die het wel kon is allang weg.
Het vak dat ik hier verdedig, is het deel dat niet in commit-snelheid zichtbaar is. Het is smaak, en het gevoel dat er iets niet klopt voordat je kunt benoemen waarom. Het is de bereidheid om code zorgvuldig te lezen, ook code die je niet zelf hebt geschreven. En het is de discipline om een fix die je niet begrijpt te weigeren.
Daar wordt niks van makkelijker als er een agent bij betrokken is. Eerder belangrijker. De pull request die je op instinct had gevangen omdat hij raar voelde, is precies wat een agent in zelfverzekerde toon zal produceren. De lezer moet meer werk doen, niet minder.
Dat is de rode draad van deze stukken. Het model is een gereedschap. Het oordeel is van jou, en dat mag je niet neerleggen.
Het volledige argument, met alle stukken in samenhang, vind je in de gids Vakmanschap in het AI-tijdperk.
Beste startpunten
- De prompt is geen spec
Het kaderstellende stuk. Een prompt draagt intentie, een spec draagt constraints. De meeste vakfouten zijn varianten op die verwarring.
- Stop met vriendelijk vragen aan je agent
De toonverschuiving die resultaat verandert: niet smeken, instrueren. Praktisch en meteen toepasbaar.
- Je vindt de bug niet als je de code niet schreef
Het argument in zijn scherpste vorm. Je vangt alleen de bugs in code die je begrijpt. Het vak zit in het lezen, niet in het schrijven.
Hoe werkt een database-index? De B-tree onder alles wat je deze week hebt geshipt
Een B-tree uitgelegd vanuit de vorm van de boom, en waarom elke indexregel die je uit je hoofd kent gewoon die vorm herhaalt: kolomvolgorde, functies op kolommen, covering indexes en trage inserts.
lees →AI-codekwaliteit meten: het dashboard voorbij coverage en mutation testing
Coverage bewijst dat een regel draaide, mutation testing bewijst dat een test een bug zou vangen, maar geen van beide zegt iets over of de code stiekem lastiger wordt om aan te passen. Wat complexiteit, clone-detectie en fitness functions wel vangen.
Wanneer je beter geen AI gebruikt bij programmeren: het werk dat ik zelf blijf doen
Weten wanneer je beter geen AI gebruikt bij programmeren is een vaardigheid die je nu al toepast, onbewust en slordig. Het onderzoek dat moest meten of AI helpt, liep er zelfs op stuk. Dit is de grens die ik zelf aanhoud, en waarom moeilijkheidsgraad de verkeerde maatstaf is.
Wie is verantwoordelijk voor AI-code? Jij, en sinds dit jaar staat het zwart op wit
Verantwoordelijkheid voor AI-code is dit jaar een juridische vraag geworden. Californië schrapte in januari het verweer dat de AI het zelf deed, Europa maakt software in december een product, en geen enkele vrijwaring dekt code die niet werkt.
Legacy code refactoren met AI: begin met characterization tests
Een coding agent is op zijn best in de code waar niemand aan wil komen, en juist daar ook op zijn gevaarlijkst. Zo refactor je legacy code met AI zonder het gedrag te slopen: eerst vastleggen wat de code doet, dan pas verplaatsen.
Programmeren leren in het AI-tijdperk: wat ik als eerste zou leren
Elk lijstje met juniorvaardigheden voor 2026 zegt hetzelfde: leer de agent bedienen. Dat advies is twee weken waard. Over de vier vaardigheden die zich wél opstapelen, en waarom de markt daar nu juist een tekort aan heeft.
Beter code leren lezen: een oefenroutine
Iedereen stelt de diagnose van vaardigheidsverlies door AI. Niemand traint de oplossing. Code lezen is een spier die je kunt trainen: een concrete oefenroutine met elke dag een merged PR, voorspel-voor-je-runt, en code uitleggen zonder de AI.
Technische schuld van AI-code opruimen: de opruimronde die niemand inplant
Churn, duplicatie en de lavalaag zijn diagnoses. Dit is de behandeling: technische schuld van AI-code opruimen in een vaste opruimronde, en welk deel van dat werk de agent zelf kan doen.
Je codebase heeft twintig manieren om geld te tonen
AI-code-duplicatie is stil: een overgenomen codebase met twintig inconsistente formatters voor geld en datum. Hoe bijna-klonen ontstaan, hoe je ze opspoort en de CLAUDE.md-regels die ze stoppen.
AI-code reviewen: de checklist voor pull requests die een agent schreef
Een AI-pull-request beoordelen is een ander vak dan een menselijke PR reviewen. De namen zijn netjes, de comments klinken zeker, CI is groen, en tóch klopt het niet. Een checklist geordend naar waar modellen echt de fout in gaan.