Het is maandagochtend. In Teams staat een bericht van de tester: “De registratie geeft een 500 sinds het laatste deployment.”

Je opent de logging en ziet een NullReferenceException met een stacktrace die drie lagen diep gaat. Ergens in de validatielogica van de RegistrationService. Vrijdagmiddag is er een PR gemerged die het registratieproces uitbreidde met een bedrijfsnaam-veld. De tests waren groen. Maar in productie gaat het mis.

Nu begint het zoekwerk.


De oude manier

Je opent de stacktrace en begint bestanden te openen. RegistrationService.cs — 200 regels. RegisterUserCommand.cs — het request model. RegisterUserValidator.cs — de FluentValidation rules. UserMappingProfile.cs — de AutoMapper config.

Je leest, scrollt, vergelijkt. Na twintig minuten heb je een vermoeden. Je opent ChatGPT, kopieert de relevante stukken code erin — drie berichten, want het past niet in één keer — en vraagt: “Zie je wat hier misgaat?”

ChatGPT zegt: “Het lijkt erop dat er een null check mist. Probeer een null-coalescing operator toe te voegen.” Technisch niet fout, maar het is een pleister. De echte oorzaak zit ergens anders.

Na een uur heb je het gevonden. Het nieuwe CompanyName-veld zit wel in het command, maar niet in de AutoMapper profile. De mapping faalt stil, de validator krijgt een onverwacht null-object, en gooit een exception.


Met Claude Code

Zelfde bug. Maar een andere aanpak.

Je opent je terminal in het project en start Claude Code. Je plakt de stacktrace en zegt:

“De registratie-endpoint geeft een 500 na het laatste deployment. Dit is de exception.”

Dat is alles. Geen bestanden kopiëren, geen context opbouwen. Claude Code pakt het vanaf hier op.

Het leest zelf

Claude Code volgt de stacktrace als een landkaart. Het opent RegistrationService.cs en ziet waar de exception vandaan komt. Het leest de RegisterUserValidator.cs en ziet dat de validator een property verwacht die null is. Het opent UserMappingProfile.cs en vindt het probleem: het nieuwe CompanyName-veld ontbreekt in de mapping.

Geen generiek advies over null checks. De daadwerkelijke oorzaak, gevonden door de code te lezen — niet door te gissen.

Het fixt en verifieert

Claude Code stelt de fix voor: de mapping uitbreiden in UserMappingProfile.cs.

CreateMap<RegisterUserCommand, User>()
    .ForMember(dest => dest.Email, opt => opt.MapFrom(src => src.Email))
    .ForMember(dest => dest.Name, opt => opt.MapFrom(src => src.Name))
    .ForMember(dest => dest.CompanyName, opt => opt.MapFrom(src => src.CompanyName));

Na je akkoord past het de code aan en runt dotnet build. Compileert. Dan dotnet test. Alle tests groen — inclusief de bestaande registratietests die nu ook het nieuwe veld meenemen.

Het is 09:15.


Waarom dit sneller is

Het verschil zit niet in het oplossen zelf. De fix is één regel. Het verschil zit in alles wat eraan voorafgaat.

Bij de oude manier ben je het grootste deel van je tijd kwijt aan context verzamelen. Bestanden openen, code lezen, verbanden leggen, relevante stukken kopiëren naar een chatvenster. Dat is het saaie, tijdrovende deel — en precies het deel waar Claude Code je van bevrijdt.

Claude Code leest je codebase. Het volgt de stacktrace door je bestanden heen, van endpoint naar service naar mapping. Het hoeft niet te gissen welke bestanden relevant zijn, want het kan ze gewoon openen. En omdat het je hele project kent — zeker als je een goed CLAUDE.md-bestand hebt — begrijpt het ook hoe jullie dingen doen.


Wanneer het niet werkt

Eerlijkheid: Claude Code is geen wondermiddel voor elke bug.

Bugs die hun oorzaak buiten de code hebben — een verkeerde environment variable, een database die vol zit, een DNS-wijziging die nog niet is doorgevoerd — daar kan Claude Code weinig mee. Het leest code, geen infrastructuur.

En sommige bugs zijn inherent lastig, ook voor AI. Race conditions, timing-gerelateerde problemen, bugs die alleen onder specifieke load optreden — die vereisen een ander soort onderzoek dan code lezen.

De vuistregel die ik hanteer: als de oorzaak in de code zit, kan Claude Code het vinden. En dat is veruit het merendeel van de bugs die je als developer tegenkomt.


Probeer het zelf

De volgende keer dat je een stacktrace in je scherm hebt, probeer dit:

claude

Plak de exception en zeg wat er mis is. Niet meer dan dat. Laat Claude Code het zoekwerk doen.

Je zult merken dat het frustrerendste deel van debuggen — het eindeloos openen van bestanden en bij elkaar puzzelen van context — simpelweg verdwijnt. Wat overblijft is het deel waar jij goed in bent: beoordelen of de fix klopt.