• Publisert
  • 3 min

Teknisk gjeld

Illustrasjonsbilde av person foran et skrivebord

For høy teknisk gjeld kan gjøre det vanskeligere å vedlikeholde, utvide eller videreutvikle programvaren. I tillegg kan den senke ytelse, sikkerhet, og brukeropplevelse ellers i løsningen.

Teknisk gjeld er et begrep som ofte brukes i forbindelse med å bestemme en nettløsnings tilstand. Begrepet refererer til ikke optimalisert kode, arkitektur og teknologiske komponenter i en programvareapplikasjon. For høy teknisk gjeld kan gjøre det vanskeligere å vedlikeholde, utvide eller videreutvikle programvaren. I tillegg kan den senke ytelse, sikkerhet, og brukeropplevelse ellers i løsningen.

Vi skal videre se litt på hvorfor det oppstår, hva man kan foreta seg og eksempler på hva som konkret bidrar til å bygge teknisk gjeld.

Hvorfor oppstår teknisk gjeld?

Teknisk gjeld vil først og fremst akkumuleres fordi utviklingen ruller videre etter en løsning er laget og lansert, og at komponentene, valg, rammeverk, teknologi i løsningen blir utdatert over tid. I dag er også de fleste større løsninger gjenstand for nærmest konstant videreutvikling og endringer. Dette fører til at ny kode legges på den eldre koden som igjen over tid og er også en bidragsyter til etter hvert økende gjeld.

Andre årsaker til teknisk gjeld kan være presserende tidsfrister, mangel på ressurser, begrensede ferdigheter, kunnskaper blant teammedlemmer eller endringer i prosjektets omfang og krav. Dette vil fort også oppstå hvis det tas raske beslutninger i utviklingen for å møte kortsiktige behov, frister eller å spare kostnader, uten å ta nok hensyn til langsiktig kvalitet, vedlikehold og skalerbarhet. Eksempelvis kan det enkelte ganger kan det oppstå et behov eller et problem som egentlig burde vært løst i underliggende system, men som ender opp med å løses i webløsningen pga tid/ kapasitet etc i det underliggende systemet.

Hva er eksempler på teknisk gjeld?

Teknisk gjeld kan manifestere seg på ulike nivåer i en programvareapplikasjon, for eksempel i koden, arkitekturen, databasestrukturen eller dokumentasjonen.

Noen faktorer som bidrar til teknisk gjeld:

  • Moduler man har installert er utdatert og må oppgraderes.
  • "Beste praksis" endres gjennom årene, og det er ikke alltid koden som er skrevet og fulgte beste praksis en gang i tiden er like oppdatert i dag.
  • En moderne webløsning består av mange små moduler (NuGet-pakker). Disse bør jevnlig oppdateres for at de skal inneholde de siste sikkerhetsoppdateringene.
  • Når flere utviklere og miljøer jobber på samme løsning over tid vil det føre til at kode blir duplisert og skrevet med ulik syntaks, samt kode blir plassert på ulike steder i strukturen. Innimellom bør dette konsolideres for å ha en oversiktlig og god struktur på koden. Kode som ikke er strukturert, øker risikoen for feil ved videreutvikling.
  • Kode som før var skreddersydd kan ha blitt en del av NuGet-pakker og/eller en del av .NET-biblioteket. Kode bør da skrives om til å bruke kode fra bibliotek.
  • Kompleks kode, som er vanskelig lesbar og forståelig for andre utviklere.
  • Kode til på feil sted i kodebasen. Dette gjør det vanskelig å identifisere feilkilden når uventede feil oppstår og øker sannsynligheten for at kode blir duplisert fordi kode.
  • Manglende logging i kode med informasjon. F.eks. transaksjoner. Gjør det vanskeligere å feilsøke. Uten logging kan det være umulig å finne feilkilden.
  • Oppdatere eksisterende kode med bedre feilhåndtering.
  • Utdatert kode som en følge av oppdaterte krav i nettlesere, nye sikkerhetskrav.
  • Eldre versjon av programmeringsspråket (C#). Språket oppdateres jevnlig og gir utviklere stadig flere muligheter til å skrive "god" og lesbar kode.

Hva kan man gjøre med teknisk gjeld?

For å håndtere teknisk gjeld er det viktig å identifisere og erkjenne den, og deretter ta skritt for å redusere eller eliminere den. Dette kan inkludere kodeforbedringer, refaktorering, revisjon av arkitekturen og investering i teknologisk oppgradering. Ved å håndtere teknisk gjeld kan man forbedre kvaliteten på programvaren, redusere risiko og legge til rette for en mer bærekraftig og smidig utviklingsprosess.

Les også: Bygge nytt nettsted eller oppgradere gammelt

Teknisk gjeld er altså noe det ikke er så lett å unngå etter en gitt alder fra opprinnelig lansering av en løsning. Det er som at en hus eldes og må vedlikeholdes, pusses opp eller rives og bygges på nytt. Forskjellen er at det selvfølgelig skjer på mye kortere tid for en nettløsning.