Artikel
3 februari 2025 · 5 min lästidAI-assistenter integreras i snabb takt i den moderna programmeringsvärlden, och de har kapacitet att effektivisera kodningen avsevärt och tillhandahålla sparring dygnet runt för utvecklare. AI är emellertid inte en genväg till en snabbare och mer kostnadseffektiv verksamhet, eftersom kontextuell läskunnighet och gedigen expertis fortfarande är avgörande för framgångsrik programvaruutveckling.
På Nitor började vi undersöka evolverande AI-modeller omedelbart när de blev tillgängliga. AI-assistenter är ett alternativ till traditionella programmeringsverktyg som sökmotorer och teknisk dokumentation, och visat sig kunna erbjuda blixtsnabb och outtröttlig support, tillgänglig närhelst specialisten behöver den.
AI är en utmärkt samtals- och sparringpartner och fungerar som en hjälpande hand för att optimera kodningen, men AI-lösningar kan inte ersätta skickliga programmerare.
Detta är något Eero Rantala, programvaruutvecklare på Nitor, förstår mycket väl. Ur en erfaren kodares perspektiv förbättras produktiviteten ytterligare med verktyg som AI-assistentfunktionen som nyligen implementerades i IntelliJ IDEA-utvecklingsmiljön:
”För närvarande är den största fördelen med AI att programmeringsrelaterade detaljproblem kan lösas snabbare. När det kommer till att bearbeta stora datamängder och sammanställa information ger AI effektiv hjälp”, sammanfattar Eero Rantala.
Språkmodeller med överdrivet självförtroende skapar farliga illusioner
Tack vare avancerade språkmodeller går det att föra vanliga samtal med AI-assistenter om till exempel ett specifikt programmeringsspråk. Detta kan emellertid också skapa en illusion av ofelbarhet. AI:er kan föreslå felaktiga lösningar och dra felaktiga slutsatser, och för att kunna utmana dessa förslag krävs erfarenhet, kontextuell förståelse och skicklighet.
”Jag minns ett färskt exempel där AI-lösningen föreslog en metod relaterad till ett specifikt bibliotek. När jag implementerat lösningen som en del av koden lät jag en kollega granska mitt arbete, och jag fick frågan varför jag inte hade använt en nyare funktion. När jag berättade för AI:n att den föreslagit en gammal och obsolet funktion bekräftade den att så verkligen var fallet, och sedan instruerade den mig att använda den nyare metoden”, fortsätter Eero Rantala.
Det är viktigt att vara vaksam när du använder AI, eftersom vad som verkar vara perfekta lösningar men som i själva verket innehåller fel, kan leta sig in i produktion. Även om den AI-genererade koden är till 98 % korrekt är felmarginalen på 2 procent ofta för stor.
Kvantiteten och kvaliteten på tillgängliga träningsdata är också viktigt att tänka på när man funderar på att börja använda AI vid programmering på ett företag. Om alltför stor andel av programmeringsarbetet läggs på AI finns det risk att det i framtiden inte kommer att finnas uppdaterade och noggrant validerade data tillgängliga för AI-modellen, vilket i slutändan leder till att den försämras eller till och med kollapsar.
En viktig fråga för framtiden är denna: om alla använder AI-modeller, vem finns då kvar att träna AI-modellerna
Forskning är fortfarande en viktig del av AI-användningen
”På vissa företag tror säkert många att en stor del av koden nu genereras av AI. Detta stämmer inte. Det är viktigt för kunderna att förstå att implementeringen av AI fortfarande handlar mycket om utgrävning och utforskning”, säger Mika Majakorpi, Chief Technologist på Nitor.
Nitormedarbetare vet att de inte ska lita blint på helt AI-genererad kod, och att implementeringen av AI inte garanterar lägre kostnader i ett projekt. AI är ett verktyg som utvecklas efterhand som det används, men själva arbetet kräver en stadig och skicklig hand.
”Min magkänsla är att ju mer ett programmeringsspråk används, och ju mer långlivat det är, desto bättre kod kommer en AI-assistent att generera. På sistone har jag kodat mycket i Clojure, som har en mindre mängd träningsdata tillgängliga än till exempel Java. Detta innebär också att fördelarna med att använda AI blir mindre”, säger Eero Rantala.
AI beräknar sannolikheter och kan också ibland generera extra kodrader på grund av hallucinationer som är typiska för AI. I sådana fall är det mycket viktigt att företaget har en solid förståelse för exakt vad koden ska uppnå och vilken vägen till att nå detta mål är.
Ett gammalt programmeringsordspråk lyder något i stil med att ”felsökning är svårare än att skriva ny kod”. För att kunna åtgärda fel krävs att programmeraren förstår vad koden är tänkt att åstadkomma. Om koden är helt AI-genererad och programmeraren inte har någon praktisk förståelse för dess logik kan det vara svårt eller till och med omöjligt att åtgärda eventuella fel i den.
Kvalitetskod kan bara skrivas av någon som förstår slutmålet
Viss skrämselpropaganda dyker ofta upp på sociala medier och diskussionsforum: efterhand som AI fortsätter att utvecklas kommer programmerarna att bli av med sina jobb. Eero Rantala and Mika Majakorpi tror inte att detta stämmer.
”Även om kodning i framtiden bara skulle innebära att man skrev AI-prompter skulle den bästa promptskrivaren fortfarande vara en skicklig kodare. Gränssnittet kommer alltid att behöva någon som förstår avsikten bakom Jira-ärendet, som kan koppla det till ett business case och som förstår kodens roll i hela ekvationen”, förklarar Eero Rantala.
”I grunden går allt tillbaka till de två gyllene reglerna för framgångsrika affärer och skicklig programmering: att göra rätt saker och att göra saker på rätt sätt. I synnerhet det förstnämnda kommer alltid att kräva mänsklig expertis och förståelse ur många olika perspektiv”, fortsätter Mika Majakorpi.
Enligt Nitors experter ligger den effektivitetsförbättring som AI för för närvarande levererar på omkring 10 % – majoriteten av arbetstiden läggs fortfarande på att hitta ömsesidig förståelse mellan människor.
”En kund kan till exempel ha ett business case som kräver en mycket specifik funktion. För att implementera detta krävs en förmåga att förstå själva behovet såväl som det omgivande sammanhanget. När alla dessa parametrar har retts ut är själva kodningen vanligtvis en ganska snabb och okomplicerad process”, förklarar Eero Rantala.
AI kan förbättra, förtydliga och snabba på denna process, men AI-lösningar kan inte ersätta de tankeprocesser som ligger bakom processen. Ur Eero Rantalas perspektiv kan användningen av AI-assistenter sammanfattas som skillnaden mellan förvärvad kunskap och kunskapens tillämpning.
”Jag minns när jag var yngre och började lära mig koda. Min felaktiga föreställning var att syntaxen i ett programmeringsspråk var nyckeln till skicklig kodning. Men koden är ett språk som vilket som helst. Förmågan att kunna skriva gör inte en människa till en författare. Den viktigaste delen av en programmerares yrkesskicklighet är förmågan att kunna använda programmeringsspråket som ett verktyg i berättandet, och att kunna forma dess möjligheter i riktning mot den önskade destinationen.”
På Nitor skapar vi programvarulösningar som beaktar hela livscykeln, från arkitekturen till löpande tjänster. Läs mer om våra tjänster!