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.
− 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?
− 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.
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.