Det Claude faktisk er god til
Den læser store kodebaser hurtigere end jeg gør. Det er ikke en lille ting. Når jeg skal ind i et legacy-projekt jeg ikke har rørt i halvandet år, sparer den mig en hel formiddags genlæsning. Jeg beder den opsummere strukturen, finde de steder hvor en bestemt funktion bliver kaldt, og foreslå hvor en ny feature passer ind. Den svarer ofte før jeg ville have nået at åbne den anden fil.
Den læser store kodebaser hurtigere end jeg gør. Det er ikke en lille ting. Når jeg skal ind i et legacy-projekt jeg ikke har rørt i halvandet år, sparer den mig en hel formiddags genlæsning. Jeg beder den opsummere strukturen, finde de steder hvor en bestemt funktion bliver kaldt, og foreslå hvor en ny feature passer ind. Den svarer ofte før jeg ville have nået at åbne den anden fil.
Refaktorering er et andet sted hvor den leverer. Mekaniske ændringer på tværs af mange filer, omskrivning af callbacks til async/await, eller flytning af logik fra controller til service-lag. Det er kedeligt arbejde for et menneske og bagatel for en sprogmodel der har set ti millioner lignende stumper kode.
Dokumentation. Tests. Commit-beskeder. Skitser til arkitektur jeg gerne vil tænke højt om. Alt det fungerer. Især sparringen på arkitektur er bedre end folk tror. Jeg bruger den som en kollega der altid har tid, aldrig er sur, og som jeg roligt kan modsige uden at det bliver akavet.
Hvor det stadig knaser
Hallucinationer. Den finder på funktioner der ikke findes. Den blander versioner. Den foreslår pakker der enten ikke eksisterer eller er forladte. Jeg har set den skrive helt overbevisende kode mod et API der ikke har set dagens lys. Hvis jeg ikke kender pakken, tjekker jeg den i Composer eller npm før jeg overhovedet kører det. Det er en vane man får hurtigt, eller også brænder man fingrene.
Konteksten omkring koden er den anden svaghed. Claude ved ikke at klienten har en bestemt holdning til hvor mailbehandling skal foregå, eller at vi er enige om at undgå Laravel selvom hele internettet anbefaler det. Den ved heller ikke at vi kører Apache og ikke Nginx, medmindre jeg fortæller den det. Det meste af det arbejde, jeg laver med Claude, handler om at fodre den med den kontekst den ikke selv kan opdrive.
Specialiserede domæner er sværere. Standard webudvikling kører den let igennem. Men når jeg er nede i en PostgreSQL trigger der skal håndtere et kantet domænekrav, eller en Ansible-rolle der skal samspille med en specifik Debian-version, så bliver svarene tyndere. Den gætter mere. Den hallucinerer modulparametre. Den får mig til at læse manualen, og det er sundt, men det er ikke hurtigt.
Og så er der bare det her: modellen ved ikke hvornår den tager fejl. Det er et menneskeligt ansvar. Hvis du ikke kan læse koden den producerer, har du et problem.
Hvad det betyder for arbejdet de næste par år
Senior-rollen flytter sig. Mindre tid på at skrive boilerplate. Mere tid på at definere hvad der skal bygges, hvilke ikke-funktionelle krav der gælder, og hvad der skal verificeres bagefter. Code review bliver vigtigere, ikke mindre, fordi den volumen af kode et menneske skal vurdere, stiger.
Junior-rollen er under pres. Det er ikke nogen hemmelighed. De opgaver der historisk var fine indgangsprojekter, kan en sprogmodel ofte løse i første forsøg. Det betyder ikke at juniorer bliver overflødige. Det betyder at vejen til at blive god, ser anderledes ud. Mere review og debugging, og mere arbejde med systemerne omkring koden. Den udvikling er hverken færdig eller pæn endnu.
For klienter er det enklere. Rutineprojekter bliver billigere og hurtigere. En portfolio-side eller en lille integration mod et tredjeparts-API er ting der tager dage, hvor det før tog uger. Men forsøg på at bygge produktionssoftware uden en udvikler i loop ender stadig dér hvor de altid er endt. På et tidspunkt skal nogen forstå hvorfor noget går ned klokken to om natten, og det gør de sjældent ved at spørge en chatbot.
Hvor står vi om 2 til 5 år
Min fornemmelse: agenter bliver bedre til at køre længere ad gangen uden at slippe sporet. Værktøjerne omkring modellerne, ikke modellerne selv, vil afgøre størstedelen af den næste tids fremskridt. Bedre kontekst-håndtering. Bedre integration med koden og infrastrukturen der ligger omkring.
Det her er ikke en utopi, og det er heller ikke en boble der popper om to år. Det er et stykke værktøj der er blevet meget bedre, og som bliver brugt af nogen der ved hvad de laver. Sådan har det altid været med god software.
Hvis du skal have bygget noget, og du gerne vil have AI’en til at tage de kedelige dele uden at den får lov til at skrive produktionskoden alene, så ved du hvor du kan finde mig.