– Det ser hensynløst ut, men det er fremtiden
Løsningen er ikke å skrive mer kode for hånd, men å forstå hvilken disiplin det nye paradigmet krever, sier teknisk leder Maureen Bryne i Askeladden & Co.
Jeg merger inn pull-requesten, koden er gjennomgått av meg og en KI-agent.
Linear ticketen er flyttet, CI/CD pipelinene sier klar for produksjon. Men det kjennes ut som om jeg har jukset, koden er ikke min. Vet jeg egentlig hva som blir sendt til produksjon?
Det oppleves hensynsløst. Ikke fordi PR-en er uansvarlig; Jeg har en god støtte av lintere, testere og Greptile sine Reviews. Men den langsomme, til tider kjedelige prosessen med å skrive hver linje kode selv, skjer ikke lenger:
Den daglige kampen en v0 kode ofte gir deg, "shit, denne loopen kommer gjøre ting treigt som sirup når jeg får inn en stor liste".
Man forsto systemet fordi man bygget det selv, ikke fordi man leste om hvordan det fungerte.
Dette er kunnskapen som fort forsvinner når agentene tar over, men som det er verdt å verne om.
Disiplinen flytter seg, den forsvinner ikke
Chad Fowler skriver om det han kaller Rigorrelocation. Nemlig at disiplinen som kreves for å levere gode resultater ikke forsvinner når arbeidsmetoder endres, den bare flytter seg til et nytt domene. Da Extreme programming erstattet waterfall så det ut som kaos, og det fremstod til tider hensynsløst.
I virkeligheten var dette en prosess der kontinuerlig integrasjon erstattet statusrapporter, kode som ikke passerte testene ble synlig innen minutter, ikke måneder. Dette krevde mer disiplin, ikke mindre.
Det samme mønsteret gjentar seg. Når man skriver kode, bygger man opp det som heter "utilsiktet kunnskap”, kunnskap som man ikke aktivt oppsøker, men som akkumuleres som en bieffekt av det arbeidet som ble gjort. Du kjenner til alle de svake punktene fordi du satt fast i dem selv, og ble tvunget til å ta avgjørelsene som til slutt resulterte i en løsning.
Når en KI-agent skriver koden, hopper man over alle disse avgjørelsene. Hva som ble bestemt av agenten oppdager man først når noe går galt. Det disiplinerende ved å skrive sin egen kode bortfaller, og eventualiteten der noe går galt uten at man forstår hvorfor, får det hele til å fremstå hensynsløst.
Hvor hører disiplinen hjemme nå?
Løsningen er ikke å skrive mer kode for hånd, men å forstå hvilken disiplin det nye paradigmet krever. En sentral del av denne disiplinen er å ta i bruk gode AI-harnesses – sikkerhetsnett. Et rammeverk som holder AI-agenten i sjakk.
Thoughtworks-teamet har delt dette opp i tre deler. Den første delen handler om kontekst. En CLAUDE.md fil i roten av repoet som forteller agenten hvilke prinsipper den må følge og hvilke beslutninger som allerede er tatt. Men den må settes opp bevisst.
En fersk studie fra ETHZurich viser at auto-genererte kontekstfiler reduserte suksessraten med 3% og økte kostnadene med over 20%. Agenten vet allerede at det er et Typescript-prosjekt når den ser tsconfig.json.
Det den ikke vet, er at vi bruker bun i stedet for npm, at SerializerV1 er deprecated men fortsatt lever i repoet, eller hvorfor man valgte en suboptimal arkitektur. Dette er kunnskap som hører hjemme iCLAUDE.md-filen.
Sjekker kontinuerlig
Den andre delen belyser viktigheten av deterministiske begrensninger. Begrensninger som ikke kan overkjøres av agenten. Dette er for eksempel lint-regler, strukturelle tester og automatiske sjekker.
Den siste delen går på å sette opp agenter som kontinuerlig sjekker om koden avviker fra sin opprinnelige intensjon, eller om det har forekommet brudd på arkitekturprinsippene. Til sammen skal disse delene skape et sikkerhetsnett for den agent-genererte koden, slik at den sjelden viker fra skaperens originale intensjon.
Disiplin handler ikke bare om å holde agentene i sjakk, men også om å holde seg selv skarp. Problemløsing er en muskel som må vedlikeholdes. De som har bygget opp den “utilsiktede kunnskapen”, bruker agenter til å hevde seg, mens andre mister viktige problemløsningsmuskler.
Derfor må sikkerhetsnettet også inneholde en bevisst praksis for å løse problemer selv innimellom. Ikke fordi det er effektivt, men fordi dømmekraften som man tar med inn i agentens output og må holdes vedlike.
Men sikkerhetsnettet vil ha hull. Det holder agentene i sjakk, holder deg skarp, men stiller ikke de vanskelige spørsmålene. Det krever dømmekraft, og dømmekraft kan ikke lintes. Det er der menneskene kommer inn.
Stjernelagene vi ikke tar med oss
Vi har alle opparbeidet oss en dømmekraft som resultat av mer enn ensformig arbeid med egen kode. Det er først i møte med andres dømmekraft at vi virkelig sliper vår egen.
For meg så Paul Arne alltid helheten: "hvorfor bygger du akkurat dette?", og "hvordan påvirker det produktet rundt".
Mens Pavel aldri var redd for å si ting rett ut: “This solution is shit”, etterfulgt av konkrete alternativ jeg ellers aldri ville vurdert. Franz stilte alltid spørsmålet: hva gir reell forretningsverdi?
Disse stemmene er ikke umulige å videreføre, men de forsvinner stille hvis man ikke tar de aktivt med inn i den nye arbeidsmetoden og fører fagsamtaler med andre enn språkmodeller.
Koding er løst. Disiplinen består
Den implisitte kunnskapen man har bygget opp ved å skrive kode selv, dele erfaringer med kollegaer, eller ved å stange hodet mot veggen i to dager før man finner feilen, den forsvinner ikke av seg selv.
Men den overføres heller ikke automatisk. Det er nå ditt ansvar å løfte den ut av hodet og inn i systemet: Via konteksten agenten får, i reglene sikkerhetsnettet baserer seg på, og som spørsmålene du stiller. Du er fortsatt ansvarlig for koden, men jobben har flyttet seg fra å skrive kode til å bygge rammeverk som får agenten til å skrive god kode.
Følelsen av hensynsløshet er ikke et tegn på at det er noe galt med måten du jobber på. Det er et signal om at området der du skal utøve disiplin har flyttet seg.