AI-koding: Seks prinsipper for ansvarlig bruk
Vi står midt i en teknologisk revolusjon som også endrer hvordan programvare utvikles. Kunstig intelligens gjør at hvem som helst kan få laget programvare eller musikk ved å «instruere» en generativ AI. Men hva er egentlig utfordringene når det gjelder generering av kode?
Av: Håvard Narvesen
Vibbekoding – et fenomen som fenger og frustrerer
«Vibbekoding» (eller «vibe coding») er et fenomen som både fenger og frustrerer. Ved å chatte med en plattform som Lovable eller Claude, kan du beskrive appen og funksjonaliteten du ønsker å bygge i ren tekst og få programkode ut i andre enden. Helt uten programmeringskunnskaper kan du altså bygge tilsynelatende fungerende programvare.
Omtrent slik du på Suno kan komponere fengende poplåter uten å kunne en eneste note. Problemet dukker imidlertid opp når du vil gjøre en endring. Du digger låten din, men midt i sangen kommer det en frase som er helt på jordet. Problemet er bare at hvis du vil fikse den frasen, og du ikke har kunnskap innen digital musikkproduksjon, så må du lage hele låten på nytt, og da får du en helt annen melodi.
Det faktum at alle kan produsere kode får IT-folk til å kjenne på stress. Ikke av frykt for å miste jobben, men fordi de får AI-generert programvare slengt i fanget. Som når en kollega kommer stolt med en «nesten ferdig» løsning han har fått AI til å lage for seg. «Kan ikke IT bare fullføre den siste biten?»
Problemet er at de siste prosentene ofte representerer mesteparten av arbeidet, og 100 prosent av ansvaret. Og det er ikke gitt at utgangspunktet i det hele tatt kan benyttes i en profesjonell sammenheng som krever god kvalitet.
Les også: Hvorfor datadrevet ledelse må bli en strategisk prioritet
Så, hvordan defineres god kvalitet i programvare?
ISO/IEC 25010-standarden definerer åtte kvalitetsdimensjoner for programvare. Der vi primært møter utfordringer med AI-koding er innen sikkerhet, tilgjengelighet og vedlikeholdbarhet:
Sikkerhet og tilgjengelighet: Dette er kritisk. AI-modeller er trent på eksisterende kode fra internett, inkludert all den usikre koden som finnes der. CTO i Edera, Alex Zenla, sier det treffende i en Wired-artikkel: «If AI is being trained in part on old, vulnerable, or low-quality software that’s available out there, then all the vulnerabilities that have existed can reoccur and be introduced again, not to mention new issues.»
Her blir det ekstra problematisk: De fleste AI-modeller for kodegenerering er trent i USA eller land med andre krav til personvern og sikkerhet enn hos oss i Europa. Hvordan skal de produsere kode som oppfyller sikkerhetskrav, GDPR eller norske krav til universell utforming?
Vedlikeholdbarhet: Med AI kan det oppstå situasjoner der generert kode, som ingen tar ekte eierskap til, likevel inkluderes. Hva skjer når denne koden må endres? Når integrasjoner bryter? Når sikkerhetshull oppdages? Du kan kanskje gjøre «vibbekoding» med venstrehånda, men det er ikke like moro med «vibe debugging» når noe går galt.
Les også: Hva er composable ERP, og hvorfor snakker alle om det?
Vibbekoding vs AI som profesjonelt verktøy
Jada, jeg er inhabil som har jobbet med software over flere år. Fra mitt ståsted er det lett å være pessimist når det kommer til AI-koding. Når jeg hittil har problematisert AI-koding i sin simpleste form (vibbekoding), vil jeg være krystallklar på følgende:
– En dataingeniør som bruker AI på en seriøs måte kan overhodet ikke sammenliknes med vibbekoding utført av noen uten teknisk forståelse.
Når erfarne utviklere bruker AI-koding som et kraftig verktøy i sin arbeidsflyt, er det ingeniørarbeid. De forstår arkitekturen, tar ansvar og har eierskap til prosessen og leveransen. I slike tilfeller er det mulig å opprettholde både kvalitet og spare tid.
Seks råd for ansvarlig bruk av AI i koding
AI-koding har stort potensial når det brukes riktig. Her er seks essensielle råd til ansvarlig bruk av kunstig intelligens i koding:
- Bruk det til prototyping og idévalidering: Det er her vibbekoding er genialt. Lag prototyper på timer i stedet for uker. Test på brukere. Lær. Iterer.
- La erfarne utviklere bruke AI som verktøy: Seniorutviklere som bruker AI til å etablere grunnleggende koderammer, agenter, tester eller alternative implementasjoner kan bli langt mer produktive.
- Bruk det til læring og kompetanseheving: AI kan være en fantastisk læringskatalysator. Prøv deg frem med ulike instrukser, studer resultatet og lær deg nye prinsipper.
- Invester i problemforståelse: Bruk tid til å forstå hva du faktisk skal bygge, og hvorfor. AI endrer ikke behovet for god dialog med sluttbrukere om de faktiske problemene programvaren skal løse.
- Lag tydelige retningslinjer: Testing og prototyping med AI? Absolutt. Produksjonskode uten review? Absolutt ikke.
- Ha en exit-strategi: Hva skjer når AI-verktøyet forsvinner, endrer forretningsmodell, eller blir forbudt av regulatoriske årsaker?
Konklusjon: AI-koding har kommet for å bli, og vi har bare sett starten
AI-koding gir oss muligheten til å bygge programvare raskere enn noen gang. Den reelle debatten er ikke om AI-koding skal brukes i programvareutvikling, men hvordan.
God programvare er fortsatt tuftet på:
- Dyp forståelse av problemet som skal løses (for brukerne)
- Solid arkitektur og design
- Grundig testing og kvalitetssikring
- Fokus på sikkerhet, personvern og tilgjengelighet
- Vedlikehold over tid
Når dette er ivaretatt, kan AI effektivisere IT-prosjektet ditt. Uten det får du bare en raskere leveranse av programvaren du ikke trenger.
Forfatter
Håvard Narvesen
Håvard Narvesen er Director Software Development Services i Arribatec og har over 18 års erfaring med utvikling av ulike forretningssystemer. Med bakgrunn som både utvikler og Agile Manager, hjelper han bedrifter med utvikling av skreddersydd programvare, digital transformasjon og rådgivning.
Ligg ett skritt foran – hver gang!
Meld deg på Forenklet og få fagartikler, whitepapers, webinarinvitasjoner og arrangementer som hjelper deg å ta bedre beslutninger om ERP og digitalisering.
Ofte stilte spørsmål om AI-koding
1. Hva er vibbekoding?
Vibbekoding (vibe coding) er når man bruker AI-verktøy som Claude eller ChatGPT til å generere programkode ved å beskrive ønsket funksjonalitet i vanlig tekst, uten å ha programmeringskunnskaper. Koden ser bra ut ved første øyekast, men mangler ofte kritisk infrastruktur som sikkerhet, feilhåndtering og vedlikeholdbarhet.
2. Er AI-generert kode trygg å bruke i produksjon?
AI-generert kode kan være trygg i produksjon hvis den gjennomgår grundig code review av erfarne utviklere, testes for sikkerhetssårbarheter, og oppfyller organisasjonens kvalitetskrav. Men kode generert uten faglig vurdering kan inneholde sikkerhetshull, personvernproblemer og vedlikeholdsutfordringer.
3. Hvilke sikkerhetsproblemer kan AI-generert kode ha?
AI-modeller er trent på eksisterende kode fra internett, inkludert usikker kode. Dette kan føre til at gamle sårbarheter som SQL-injeksjoner, cross-site scripting og usikker datahåndtering gjeninnføres. I tillegg kan koden mangle GDPR-compliance og universell utforming hvis modellen er trent på andre regelverk enn europeiske.
4. Kan AI-koding erstatte utviklere?
Nei. AI-koding er et verktøy som kan gjøre erfarne utviklere mer produktive, men erstatter ikke behovet for fagkompetanse. God programvare krever fortsatt dyp problemforståelse, solid arkitektur, testing, sikkerhetsfokus og evne til vedlikehold over tid.
5. Hva er forskjellen mellom vibbekoding og profesjonell bruk av AI i koding?
Vibbekoding er når noen uten teknisk forståelse genererer kode de ikke kan vurdere eller vedlikeholde. Profesjonell bruk av AI i koding er når erfarne utviklere bruker AI som verktøy til boilerplate-kode og prototyper, men med code review, sikkerhetsvurdering og fullt ansvar for resultatet.
6. Hvordan kan vi bruke AI-koding ansvarlig i vår organisasjon?
Lag tydelige retningslinjer for når AI-koding kan brukes (prototyping, testing) og når det ikke kan (produksjonskode uten review). Invester i problemforståelse, etabler kvalitetsbarrierer med sjekklister og automatisert testing, og sørg for at erfarne utviklere alltid har ansvar for kode som går i produksjon.

