kunstig intelligens

Jakter teknisk gjeld med språkmodeller

Fire av ti utviklingstimer i moderniseringsprosjekter kan være mulig å kutte, viser tidlige resultater fra et forskningsprosjekt på KI og teknisk gjeld.

Alexander Lystad og kollegene i Visma slipper ulike språkmodeller løs på Vismas egen backlog og kode, med varierende hell.
Alexander Lystad og kollegene i Visma slipper ulike språkmodeller løs på Vismas egen backlog og kode, med varierende hell.

Kortversjonen

  • Teknisk gjeld er et stort problem for utviklere, og anslås å koste mye tid og motivasjon, ifølge Alexander Lystad, teknologidirektør i Visma.

  • Et forskningsprosjekt med Sintef, Universitetet i Oslo, og partnere som Visma, ser på hvordan språkmodeller kan identifisere og håndtere teknisk gjeld.

  • Smalere språkmodeller gjør det bedre i å klassifisere teknisk gjeld, mens de store viser svært gode resultater i moderniseringsprosjekter.

− Spør du utviklerne i Visma, eller andre steder, hva som forsurer hverdagen mest, så er svar nummer én teknisk gjeld, sier Alexander Lystad, teknologidirektør i Visma, og fortsetter:

− Det er det som ødelegger mest for utviklernes motivasjon, og det er blant faktorene som øker kostnadene mest.

Anslagene for hva det koster å håndtere teknisk gjeld, varierer. Enkelte undersøkelser har anslått at så mye som én av tre timer utviklere bruker på jobb, brukes på teknisk gjeld.

Kan språkmodeller bidra til å finne og kategorisere teknisk gjeld, så det blir enklere å håndtere den?

Spørsmål er et viktig utgangspunkt for et treårig forskningsprosjekt, Datadrevet håndtering av teknisk gjeld for bærekraftig programvareutvikling. Prosjektet, som startet våren 2023, gjennomføres i samarbeid mellom Sintef og Universitetet i Oslo og næringslivspartnerne Knowit, Akva Group og Visma, har fått støtte fra Forskningsrådet

Nå slipper prosjektet ulike språkmodeller løs på Vismas egen backlog og kode, med varierende hell.

Som regel ubevisst

Alle de snarveiene og kompromissene utviklerne gjør for å kunne levere verdi til brukerne raskere, samler seg opp som det utviklere kaller teknisk gjeld.

− For meg er teknisk gjeld valg i kode og arkitektur som forsinker utviklingen, sier Lystad.

Men metaforen kan være litt farlig, mener han.

− Det er jo riktig at hvis du ikke betaler gjelda, så gjør rentene at kostnadene øker, og det kan komme ut av kontroll. Men om man tenker litt for mye på metaforen, kan man begynne å tro at teknisk gjeld alltid er et resultat av smarte valg, sier Lystad.

For selv om det noen ganger kan være lurt å tenke at «jeg tar opp dette lånet nå og betaler tilbake senere», for eksempel for å være raskt ute med ny funksjonalitet, er mesteparten av den tekniske gjelden vi pådrar oss ubevisst, mener han.

− Programvare påvirkes av en slags gravitasjonskraft hele tiden, sier Lystad.

Man oppdager svakheter, teknologi blir utdatert, kundenes forventninger forandres over tid. Selv om du har en bra programvare og ikke gjør noen endringer, bygger det seg opp teknisk gjeld over tid. Det kan være kode som kunne vært skrevet mer effektivt, som ikke bruker etablerte funksjoner, har utdaterte avhengigheter, hardkoding eller rett og slett mangler dokumentasjon.

Jo mer gjeld, jo dyrere å drifte

Jo mer teknisk gjeld, jo dyrere og vanskeligere er systemet å vedlikeholde. Forskerne i prosjektet anslår at et produktivitetstap på hele 40 prosent er vanlig.

− Vi har gjort noen analyser internt i Visma, og vi tror det er noe lavere her, men vi tror likevel det kan ligge et sted mellom 20 og 30 prosent, sier Lystad.

Det er ikke snakk om småpenger. Visma har 400 systemer og 4500 utviklere. Forvaltnings- og utviklingsbudsjettet er på flere milliarder. Og at utviklernes trivsel og motivasjon påvirkes av teknisk gjeld, er Lystad sikker på.

Nå ser prosjektet og Visma på tre ganske ulike tilnærminger til å få hjelp av språkmodeller: Kan KI-en hjelpe dem å få oversikt over backlogen? Kan den finne teknisk gjeld i selve koden? Og ikke minst, kan den bidra i prosjekter for å modernisere eller oppgradere systemer?

Ulike språkmodeller

  • BERT-modeller

    BERT er, en svært kjent NLP. BERT (Bidirectional Encoder Representations from Transformers) ble utviklet av Google og lansert i 2018. Den er en av de første modellene som brukte transformer-arkitekturen til å forstå kontekst begge veier i en tekst, ved hjelp av vektorer.

    • RoBERTa ble utviklet av Facebook AI, og lansert i 2019. deBERTa er en videreutvikling BERT-modellen fra 2020.
  • GPT En av de største språkmodellene (LLM) i dag, utviklet av OpenAI, og lansert med et smell høsten 2022. Modellen kan hjelpe til med både generelle og spesialiserte oppgaver, men presterer bedre på mer generelle oppgaver. Litt enkelt sagt er LLM-er trent til å forutsi det neste ordet i en tekst.
  • ClaudeEn av de store konkurrentene til GPT-familien. Den store språkmodellen er utviklet av Anthropic, og lansert våren 2023. Den blir ofte trukket frem som ekstra bra til generelle kode-oppgaver.

− Litt dårligere enn en juniorutvikler

Det første prosjektet har tatt tak i, er å se om språkmodellene kan hjelpe dem å finne, kategorisere og prioritere teknisk gjeld i køen av alle oppgaver utviklerne har å løse.

Visma har nemlig tusenvis av saker, eller issues, liggende i sine backloger.

Nå har de testet språkmodellene DeBERTaV3 og RoBERTa på noen få prosent av køen. Det dreier likevel 1400 saker modellene får i oppgave å klassifisere. Fasiten er Vismas egen faglige vurdering.

− Så hvordan går det?

− Det er to svar på det. Dette er et eksempel på at smale språkmodeller kan gjøre det bedre enn de store generelle som GPT-4, svarer Lystad.

Mens GPT-en treffer blink på rundt seks av ti saker, treffer de de smalere NLP-modellene som er utviklet for tekst-klassifisering, ikke tekst-generering, på åtte av ti.

− Det andre svaret får vi om vi sammenligner med hva et menneske klarer. Nå, halvveis ut i det treårige prosjektet, klarer KI-en å klassifisere gjeld på et litt lavere nivå enn det en juniorutvikler klarer, sier Lystad.

KI-en er mye raskere enn mennesker, og Visma har tro på at de skal forbedre kvaliteten. Det kan gjøre det enklere for utviklere å identifisere teknisk gjeld, og automatisere deler av oppgaven.

Kan man kjøre løsningen på hele backlogen, kan det åpne for spennende analyser om hvordan teknisk gjeld påvirker hvordan utviklerne har det på jobb, hvor dyr løsningen er å drifte og hvor fornøyde kundene er.

− Målet er jo å kunne oppdage teknisk gjeld i det den oppstår, sier Alexander Lystad i Visma Foto: Marianne Gjessing
− Målet er jo å kunne oppdage teknisk gjeld i det den oppstår, sier Alexander Lystad i Visma

Finn fem feil

Neste nøtt å knekke er om store generelle språkmodeller, som GPT-4 og Claude, er i stand til å finne teknisk gjeld i selve koden.

Dette dreier seg rett og slett om å bruke modellen slik den er, med litt klok prompting. Visma gir modellen et prinsippdokument som beskriver forskjellige typer teknisk gjeld de vil at KI-en skal klare å identifisere, og kodeprøver den skal analysere.

Forsøket er ikke riktig så vellykket. Modellen finner bare 30 prosent av den tekniske gjelda Visma selv hadde flagget. Til nå er det GPT-4 om har gitt de beste resultatene.

Dermed er det en stund igjen til drømmen om en integrert modell som flagger ting eller foreslår fikser til utvikleren mens hun jobber i koden.

− Målet er jo å kunne oppdage teknisk gjeld i det den oppstår, sier Lystad.

Men Visma vil fortsette å teste både nye modeller som kommer og forbedringer i prinsippdokumentet.

Sparer fire av ti utviklertimer

Men det kanskje aller mest lovende, det kommer når KI-en kan brukes på teknisk modernisering.

Med over 400 systemer, noen nye og moderne, andre mer voksne, har Visma nok av eksempler på behov for modernisering. Det kan være å oppdatere fra et gammelt programmeringsspråk til et nytt, fra et gammelt rammeverk til et nytt eller – kanskje enda mer interessant – å oppgradere fra teknologi som er dyrere å drifte til teknologi som er billigere å drifte, forklarer Lystad.

− Der har vi eksempler på at å bruke KI betyr at det blir 40 prosent mindre jobb, sier han.

Her tester Visma alt av store språkmodeller de kan få hendene på, om det er Claude, GPT-4o, Amazon q developer. Har modellen for eksempel blitt trent på materiale som viser før- og etter-tilstand i en oppgradering fra .NET 4.8 til .NET 8, så kan den i prinsippet «oversette» mellom de to versjonene.

− Det er fortsatt mye manuelt arbeid, både utvikler- og arkitekturarbeid, men det kan likevel hjelpe mye, sier Lystad.

Det kan også gjøre det mye mer lønnsomt og rimeligere å drifte løsninger over tid, mener han – og anslår at et av prosjektene de har sett på kan kuttes fra 20.000 timer til 12.000 timer.

− Start med bevissthet

Ikke alle har mulighet til å få forskerbistand til eget arbeid med teknisk gjeld. Lystad anbefaler likevel å gi det et forsøk.

Det finnes nemlig en del kommersielle verktøy, som Sonarqube, som er utviklet spesielt for å sjekke om koden din er sunn, og Code Scene, som lover å hjelpe deg å holde koden ren og sunn og redusere teknisk gjeld.

Likevel starter arbeidet alltid med bevissthet, understreker Lystad.

− Når vi måler hvor opptatt av, bevisste og kompetente utviklingsteamene er på teknisk gjeld, ser vi at de teamene som er mest bevisste og har en bedre prosess rundt teknisk gjeld, rapporterer at de bruker mindre tid på dobbeltarbeid, sier han.

− Så er det kanskje heller ikke et mål å bli gjeldfri?

− Nei, da risikerer du å overoptimalisere, svarer Lystad og utdyper:

− Om du lager en løsning for regnskapsførere i Norge, trenger ikke det systemet å kunne brukes av ti millioner brukere, det er en bortkastet investering. Men vi må finne og løse teknisk gjeld som gjør vondt, og som sakker oss ned.

Powered by Labrador CMS