Denne artikkelen er produsert og finansiert av Universitetet i Oslo - les mer.

Antonio Martini brukar maskinlæring for å handtere IT-etterslep betre.

– Ubehandla teknisk gjeld kan ha store konsekvensar for samfunnet

I mange IT-prosjekt trengst det mykje etterarbeid, seier Antonio Martini.

– Sjå for deg ei gryte med daggammal graut, eller ein kaffikopp som har stått sidan førre fredag, seier professor Antonio Martini ved Institutt for informatikk på Universitetet i Oslo.

– Det hadde vore best å reingjera dei med ein gong. Når det ikkje vart gjort, vert jobben mykje verre. 

Det er ein illustrasjon på korleis teknisk gjeld fungerer i eit IT-system. Mykje vi møter i kvardagen, ligg det store IT-system bak. Ubehandla teknisk gjeld i desse systema kan ha konsekvensar for samfunnet.

Teknisk gjeld er ein metafor som vert brukt om uløyste oppgåver i IT-prosjekt. Ikkje alle typar uløyste oppgåver, men spesifikt der det er vald løysingar som må forbetrast eller rettast opp seinare.

Investorfirma tapte 4,6 milliardar kroner

– Nokre gonger kan dette vera medvitne val der utviklarane vel ei løysing som ikkje er optimal, sjølv om dei veit at det vert meir arbeid i framtida. Kanskje vert det til og med meir arbeid enn om dei hadde gjort det rett fyrste gongen. Rentekostnadane vert større ettersom tida går, og systemet vert utvida og påbygd med meir kode, seier Martini.

Han fortel at det kan skje ved tidspress, der forretningssida av organisasjonen legg press på utviklarsida. Spenninga mellom forretning og utvikling leiar ofte til teknisk gjeld. 

Andre gonger kan det vera marknaden som fører til tidspress. Teknisk gjeld kan òg oppstå hjå utviklarane, til dømes ved at teknikarane ikkje har forstått dei forretningsmessige behova.

Eit døme på kor gale det kan gå, er då det amerikanske investorfirmaet Knight Capital Group i 2012 tapte 440 millionar dollar – 4,6 milliardar norske kroner etter dagens kurs. 

Det skjedde etter at ein teknikar ved ein glipp aktiverte gammal kode for automatisk aksjehandel.

– Slik kode er utstyrt med stoppvarsel når han har fylt dagens kvote. Men stoppvarselet var blitt endra sidan den gamle koden sist var brukt. Dermed fungerte det ikkje, fortel Martini.

Redningsaksjon ved overgangen til år 2000

– Resultatet var at den gamle koden heldt fram å handla. Han pressa fyrst opp prisane og handla deretter meir til den nye, kunstig høge prisen. Knight Capital Group kom seg aldri etter denne smellen. Dei vart kjøpt opp året etter.

Den gongen bestod altså den tekniske gjelda i at systemet hadde gammal kode som verken var blitt oppdatert eller fjerna. Men ein kan òg dra på seg teknisk gjeld uforvarande. Mange vil hugsa år 2000-problemet, «the millenium bug».

– På 1980-talet var det få som tenkte på at det ikkje var nok med to siffer i årstal i IT-løysingar. Dermed vart det ein stor redningsaksjon som måtte setjast i verk over heile verda då år 2000 nærma seg. Mykje pengar og ressursar vart sett inn for å forhindra katastrofale konsekvensar, seier Martini.

Overgangen til år 2000 gjekk ganske greitt. Kanskje hadde ein overvurdert kor stor den faktiske tekniske gjelda var. 

Men uansett viser det kor mykje det kan krevja å retta opp teknisk gjeld, uavhengig av kor stort trugsmålet var i dette tilfellet.

Modell skal identifisera teknisk gjeld

Martini skal no til å utvikla programvare som med maskinlæring skal hjelpa bedrifter med betre gjeldshandtering. Saman med seg har han forskar Karthik Shivashankar frå UiO.

– Forskinga vår fylgjer tre hovudspor. Det fyrste er å bruka modellen til å identifisera teknisk gjeld i det som heiter backlogen til utviklarteamet. Dette er lista over uløyste oppgåver. I store organisasjonar kan ho innehalda mange tusen oppgåver, der langt frå alt er teknisk gjeld, forklarar Martini.

Modellen kan òg vurdera kor alvorleg den enkelte gjeldsposten er.

Kan ikkje stola 100 prosent på læringsmodellane

Han legg til at dette er slikt arbeid som utviklarane helst vil unngå sjølve. Dei vil helst berre koda. Ein annan modell kan hjelpa med det, langs det som er det andre hovudsporet i forskinga.

Basert på tidlegare løyste oppgåver kan modellen vår identifisera kva i backlogen som er teknisk gjeld, forhåpentleg i tide til å hindra at problemet vert altfor stort.

Antonio Martini

– Mange har prøvd å bruka verktøy som ChatGPT til å skriva kode. Resultatet vert ofte så som så. Du får gjerne det du bestiller, men du får ikkje noko meir, seier Martini.

– Modellen vår har derimot fått lovande resultat med å skriva kode som ikkje stoppar ved å oppfylla bestillinga, men som òg skriv det som programmerarar kallar god kode. Som med anna liknande innhald må koden likevel kvalitetssikrast av ein programmerar. Vi er ikkje der endå at vi kan stola 100 prosent på læringsmodellane.

Gjera grep på riktig tidspunkt

Det tredje sporet er ikkje så teknisk. Det er rett og slett eit spørjeskjema, utvikla og raffinert over mange år.

– Som sagt er det ofte spenning mellom forretning og utvikling i organisasjonar. Avhengig av kven du spør, vil du få ulike svar på kva som er årsaka til den tekniske gjelda, forklarar Martini.

– Gjennom spørjeskjemaet får vi ei oversikt over dei ulike perspektiva. Då kan vi jobba med å få ei felles forståing av kvar problema ligg, for både å førebyggja, identifisera og redusera skadeverknadane av teknisk gjeld. Selskapa som har prøvd det, har funne det nyttig. Vi publiserte ein vitskapleg artikkel om skjemaet som verktøy i fjor.

– Det viktigaste med handtering av teknisk gjeld er å gjera grep på riktig tidspunkt, seier Antonio Martini.

Om prosjektet

Antonio Martini har fått innovasjonsmidlar frå Forskingsrådet til å utvikla programvare som med maskinlæring skal hjelpa bedrifter med betre gjeldshandtering. Visma og AKVA group er hovudpartnarar i utviklingsarbeidet, men dei samarbeider òg med Sintef, og med Knowit saman med Tolletaten. 

Referanse:

Antonio Martini mfl.: TD Pulse: Assessing the Systematic Management of Technical Debt. IEEE Software, 2022. Sammendrag. DOI: 10.1109/MS.2022.3226035

Powered by Labrador CMS