AI har gjort meg lat!

– Er vi i ferd med å gå på kompromiss med kodekvaliteten på grunn av AI? spør Kurt Lekanger i ukens nyhetsbrev – etter at han selv gjorde en kjempe-AI-tabbe.

– Jeg har aldri blitt beskyldt for å være lat, men nå er jeg redd AI er i ferd med å gjøre meg til en latsabb, skriver Kurt Lekanger. 📸: Ole Petter Baugerød Stokke
– Jeg har aldri blitt beskyldt for å være lat, men nå er jeg redd AI er i ferd med å gjøre meg til en latsabb, skriver Kurt Lekanger. 📸: Ole Petter Baugerød Stokke Vis mer

De fleste utviklere er opptatt av å skrive best mulig kode, kode som følger velprøvde "design patterns", kode som er enkel å vedlikeholde og kode som er enkel å lese for andre.

Men går vi på kompromiss med kodekvaliteten på grunn av AI?

Denne uken skrev jeg om hvordan AI-baserte kodeassistenter har ført til at utviklere stadig oftere bryter med DRY-prinsippet. Ifølge en undersøkelse fra GitClear har antall kodeblokker med fem eller flere dupliserte kodelinjer økt med åtte ganger i løpet av 2024.

Og det er AI sin skyld.

Jeg bruker selv Cursor daglig, og merker at AI har gjort meg lat.

Der jeg tidligere tok meg god tid til å refaktorere og finpusse koden, merker jeg at det er fristende å la Cursor gjøre stadig mer av jobben. Jo bedre AI-assistentene har blitt, desto sjeldnere gjør de feil. Dermed er det fort gjort å være litt for kjapp med å se over kodeforslagene før jeg trykker "Accept".

For en stund siden gikk det skikkelig galt. Jeg holdt på å lage et oppslagstavlesystem for sameier og borettslag, der brukerne kan opprette, redigere og slette innlegg. Flere steder i koden brukte jeg en modal for å bekrefte slike handlinger.

Da jeg fant ut at jeg trengte en ganske lik modal flere steder, ba jeg Cursor om å lage en gjenbrukbar modal-komponent – i mitt tilfelle implementert som en React-hook ("useModal"). Kodeforslaget så overraskende likt ut noe jeg selv ville skrevet, så jeg skummet gjennom og tok det i bruk.

Men jeg leste ikke grundig nok gjennom koden. En liten, subtil feil gjorde at når brukeren redigerte et innlegg og trykket “OK”, ble det slettet i stedet for lagret. Cursor hadde tatt det for gitt at jeg ville kalle det samme API-endepunktet som jeg gjorde et annet sted – i dette tilfellet "slett innlegg"-endepunktet og ikke "rediger innlegg"-endepunktet.

«Kunsten er å vite akkurat når du skal la AI-en hjelpe deg, og når det er best å ta over styringen selv.»

En tåpelig feil som fikk meg til å føle meg skikkelig dum – spesielt siden jeg brukte en masse tid på å lese serverlogger og teste API-kall med Postman for å finne ut hvorfor i alle dager innlegg forsvant uten noen åpenbar forklaring.

Og så var feilen så banal som at AI-assistenten hadde duplisert kode den ikke skulle ha duplisert.

Til syvende og sist var det selvfølgelig min egen feil. Men hendelsen har likevel vært en aldri så liten øyeåpner for meg, og minnet meg på hvor fort gjort det er at små subtile feil sniker seg inn i koden hvis du overlater for mye til AI-assistenten.

AI-assistenter kan gi veldig stor økning i produktiviteten. Kunsten er å vite akkurat når du skal la AI-en hjelpe deg – og når det er best å ta over styringen selv.

Ukas beste saker på kode24:

🥝 Norske Hudd utfordrer Facebook – sånn bygde de appen
– Viktig at stacken er skalerbar og har god ytelse, forteller skaperne av den norske Facebook-utfordrereren Hudd.

🍑 Betaler over 100.000 kroner mer i lønn om du jobber på kontoret
Mange tvinger ansatte tilbake på kontoret – Cameo satser på lokking.

🍩 – Norske firmaer bør ha en plan B, med leverandører i andre land enn USA
Tilsynsorganet for datautvekslingsavtalen med USA er satt ut av spill. Mer kan skje fort, og eksperter råder norske selskaper til å ha både en plan B, C og D.

💮 Accenture-sjefen mener folk misforstår DEI-dropping – men nekter å forklare det
– Jeg synes det er leit å se at dette oppfattes av noen som at vi nå legger ned vårt arbeid med inkludering og mangfold, skriver Accenture-direktøren. Men de vil fortsatt ikke forklare hva de gjør.

👧 WAYS begjært konkurs av ansatt – skal skylde halv million i lønn
En ansatt krever å få betalt lønna si, men WAYS-gründeren er trygg på at de finner en løsning.

God helg

– Det er ikke slutten på programmering. Det er slutten på programmering slik vi kjenner det i dag, skrev nylig den kjente forfatteren og forlagsmannen Tim O'Reilly.

I likhet med meg, tror heller ikke han at AI betyr slutten for utviklere. Slutten for utviklere har vært spådd mange ganger tidligere. Hver gang har vi endt opp med flere utviklere enn før – men utviklere som jobber annerledes. Det er ingen grunn til å tro at det er annerledes med AI, argumenterer O'Reilly.

«Vi trenger utviklere som kan kode til å fikse de siste 30 prosentene.»

O'Reilly viser til Addy Osmani, som jobber med Google Chrome, som påpeker at selv om utviklere sier at de har blitt dramatisk mye mer effektive med AI, så har ikke den faktiske programvaren vi bruker hver dag blitt særlig bedre.

Ifølge Osmani kan ikke-utviklere med AI-kode-verktøy få ut en fantastisk demo eller løse et enkelt problem, men de står fast på de siste 30 % av et komplekst program fordi de ikke har nok kunnskap til å debugge koden og guide AI-en til den riktige løsningen.

Vi trenger utviklere som kan kode til å fikse de siste 30 prosentene.

God helg!

– Kurt 🤓