Sådan taler du om teknisk gæld med ikke-tekniske kolleger

Sådan taler du om teknisk gæld med ikke-tekniske kolleger

Teknisk gæld er når man i forbindelse med udviklingen af et IT-system har valgt kortsigtede løsninger eller ikke har taget sig tid til at skabe en konsistent og sammenhængende løsning. Teknisk gæld kan også dække over at man ikke har fået opdateret eller udskiftet ældre IT-systemer og på den måde står med noget ubetalt gæld, når disse IT-systemer skal bruges i nye sammenhænge.

Udover at gæld altid er irriterende at have, så er det største problem ved teknisk gæld, at det er svært at få talt om uden for den tekniske organisation. Det kan ganske enkelt være svært for kolleger uden en teknisk baggrund at forstå, hvorfor et modul, der blev indkøbt for 5 år siden, nu pludselig gør alle nye indkøb tre gange så dyre, fordi man skal arbejde uden om den tekniske gæld. Eller hvorfor den kortsigtede hurtige løsning meget hurtigt kan blive et dyrt bekendtskab, når løsningen giver problemer på grund af manglende fleksibilitet eller dyrt vedligehold.

En eventuel teknisk gæld bliver tydelig, når man skal købe nyt ind. For eksempel hvis man skal lave en app, der er integreret med et teknisk forgældet system. Derfor møder vi ofte teknisk gæld.

Vi har samlet et på bud på, hvordan man kan starte samtalen om den tekniske gæld – og afviklingen af den – med sine ikke-tekniske kolleger.

Det er ingen skam at have teknisk gæld – alle har det
Ligesom der er meget få mennesker, der ikke skylder bare en lille smule i banken, så har de fleste tekniske afdelinger en eller anden form for teknisk gæld. Ingen udviklere har uendelig tid til at lave refactoring af koden, ingen har et uendeligt vedligeholdelsesbudget i driften! Det springende punkt er, om man har kendskab til gælden. Hvis man er bevidst om omfanget af den tekniske gæld, kan man tage højde for det i driften og ved nye indkøb. Lige som ved økonomisk gæld, er det kun et stort problem, hvis skeletterne pludselig rasler ud af skabet

Teknisk gæld skyldes lav kvalitet eller forældede systemer
Teknisk gæld stammer fra to typer problemer: Det kan været et udtryk for lav teknisk kvalitet, der igen skyldes manglende specifikationer, uerfarne udviklere, dårlig dokumentation, et forhastet projekt, og denne lave kvalitet hænger man pludselig på, når projektet er afleveret. Det vil sige, at man blot ved at indkøbe et ringe produkt har skabt teknisk gæld fra første dag. Teknisk gæld kan også være et udtryk for, at man er afhængig af forældede systemer, legacy kode eller dele af en IT-infrastruktur, som af forskellige årsager ikke er blevet holdt ved lige.

Teknisk gæld ligner den gæld, man kan have i banken. Der løber renter på, og renters rente, efterhånden som tiden går. Den tekniske gæld bliver dyrere og dyrere at afvikle, jo længere man har den. Renterne består af dyr drift, og at alt, der bygges ovenpå et teknisk forgældet produkt, bliver uforholdsmæssigt dyrt – og måske endda meget svært at estimere.

Et teknisk produkt er ikke statisk
En af de værste grundlæggende antagelser om at købe et teknisk produkt, er at man køber et statisk produkt. Der er stadig indkøbere, der forestiller sig, at de køber en maskine, når de køber et stykke software. Men software er langt fra statisk: det fungerer i en kontekst, der hele tiden ændrer sig. Der kommer nye enheder, nye styresystemer, nye forventninger fra brugerne. Men desværre undervurderes driften af software stadig. At tænke på det som en maskinpark, hvor hjulene blot skal smøres en smule af og til, er den sikre vej til teknisk gæld.

Et nyt projekt er en mulighed for at nedbringe den tekniske gæld
Langt de fleste forretningskritiske apps vi laver, er afhængige af en eller flere integrationer til andre systemer. Det betyder, at opstarten på et app-projekt også er opstarten på en vurdering af mulig teknisk gæld i den eksisterende IT-infrastruktur. Det kan være en kæmpe fordel at se app-projektet som en anledning til at få optimeret datakvalitet, API’er, flows og versioner af de eksisterende systemer. At indregne status på den tekniske gæld er en investering i, at den nye app ikke starter sit liv med sin egen tekniske gæld.


Og lige for at gøre vores lille historie om teknisk gæld helt konkret, så er her et par eksempler på typisk teknisk gæld, som vi ofte møder:

  • Manglende dokumentation – især især af API’er
  • Manglende integrationsmuligheder
  • Data gemmes i gamle HTML-formater
  • Data gemmes som HTML og ikke som struktureret indhold
  • Batch-baserede systemer, der gør, at data ikke opdateres øjeblikkeligt
  • Inkonsistente datatyper – fx forskellige datoformater
  • Inkonsistente data og navngivning på tværs af forskellige IT-systemer
  • Software med manglende dokumentation eller dårligt kommenteret kildekode
 
Af Jakob Mikkelsen
jakob@greenerpastures.dk
+45 70 26 00 69