– Vi trenger et regnskap for koden ingen forstår
Flaskehalseffekten og kvelningsfornemmelsen er reell. Situasjonen er ikke helt ny, da man alltid har hatt kode ingen helt tør å ta i. Men agentisk koding gjør problemet mye mer akutt.
Begrepet «kognitiv gjeld» er på frammarsj. Vi kan nå produsere kode raskere enn vi klarer å forstå den.
Du kjenner deg sikkert igjen. Alt kan se fint ut på overflaten. Koden kompilerer. Testene er grønne. Pull requesten ser rimelig ut. Diffen har en vag aura av «dette er sikkert greit». Men finnes det noen egentlig forståelse av det som nettopp ble lagt til?
Gratulerer, du har pådratt deg kognitiv gjeld.
Mentale modeller
Programmering handler om å bygge kunnskap. Det var enklere før. Inntil veldig nylig var koden selve beviset på forståelse. Den tiden er definitivt over.
Nå må kunnskap og forståelse spores til noe langt mer flyktig: mentale modeller hos mennesker. Disse er mye mer utfordrende å holde rede på.
Jeg har tidligere beskrevet et slags «mind palace»: en abstrahert modell av et gitt system hvor jeg kan vandre rundt, åpne og lukke dører, rive ned en vegg, sette inn en ny fløy, og ha en følelse av hva som henger sammen med hva.
Det er denne mentale modellen som gjør at jeg kan endre kode med selvsikkerhet. Det er den som gjør at jeg kan lukte at noe er feil før jeg har bevist det.
Når den modellen mangler, stopper ting opp. Tilliten forsvinner. Endringer blir seige. Frykten for å røre noe vokser. Du er redusert til turist i egen kodebase.
Et forståelsesregnskap
I hvilken grad er kodebasen din som helhet understøttet av menneskelige mentale modeller?
Bevisbyrden ligger hos deg, din trigger-happy, agentfrelste utvikler! Jeg tror vi trenger et «regnskapssystem» for kognitiv gjeld.
Et system som kan svare på noen enkle, men ubehagelige spørsmål: Hvem forstår denne koden? På hvilket nivå? Hvem kan verifisere denne forståelsen?
Dette er et regnskap som bør avstemmes fortløpende. Alt er kognitiv gjeld inntil det motsatte er bevist. Klokka tikker...
Mikrosertifisering
Jeg ser for meg en form for mikrosertifisering: små sertifikater knyttet til konkret kode.
En fil, mappe eller modul. Sertifikatet sier: «Mikael har demonstrert forståelse av dette området, på dette nivået, verifisert av denne autoriteten».
Og det bør bo sammen med koden.
Ikke alle må forstå alt
Alle trenger ikke samme modell. Det ville vært helt umulig å gjennomføre.Ulike roller trenger ulike mentale modeller. En utvikler tett på implementasjonen må kunne demonstrere low-level forståelse, mens en teamleders modell kan være high-level. Begge modellene kan avstemmes på sine egne premisser.
Det vanskelige er selvfølgelig selve verifiseringen. Hvordan lager man «proof of understanding»?
Verifiseringen må være KI-resistent og springe ut fra noe vi stoler på: en fagperson, en tech lead, en reviewer, en parprogrammeringsøkt. Forankring i den virkelige, fysiske verden er avgjørende. Se på det som code review, men for den mentale modellen din.
Systemet
Se for deg en append-only ledger som følger kodebasen. Den logger når kode legges til, endres eller fjernes, når forståelse sertifiseres, og når en endring gjør gammel forståelse ugyldig. Historikk, signering og sporbarhet er stikkordene. Slik kan repoet bære med seg sin egen forståelsesstatus. Et gjeldsbrev. Hva skal gjelden måles i?
Jeg tenker lines of code. Før noen arresterer meg i kommentarfeltet: ja, LOC er en dårlig måleenhet for produktivitet. Det vet jeg. Men her måler vi forståelse.
Hvis en agent spyr ut 2.000 linjer kode, har vi ikke bare fått 2.000 linjer funksjonalitet. Vi har også fått 2.000 linjer noen må forstå, eie, debugge og videreutvikle.
Insentivene balanserer hverandre: Flere linjer gir større gjeld, så agenten bør ikke få produsere vilkårlig kode. Men hvis du presser den til kryptisk kodegolf for å holde linjetallet nede, blir den menneskelige forståelsen dyrere å bygge.
Konklusjon
Jeg er redd for at vi forsømmer våre mentale modeller, og så later som om det går fint.
Agentisk koding skaper kognitive forpliktelser som vi må møte med nye prosesser. Hver kodelinje bør føres som kognitiv gjeld inntil den kan sertifiseres som del av en levende menneskelig mental modell.
Ja, det er radikalt, men så lever vi jo i crazy bananas tider.
Foretrekk oss i Google Discover
Ved å legge oss til som foretrukket kilde i Google vil du blant annet få opp flere av sakene våre i Google Discover. Tusen takk for støtten!