Teknisk gæld: det usynlige lån i dit produkt
Teknisk gæld er genveje i koden der sparer tid nu, men koster renter senere i form af langsommere udvikling og flere fejl. Noget gæld er rationel, præcis som et lån, så længe den er bevidst og bliver afdraget. For en kunde viser den sig som stadig langsommere leverancer. Modtrækket er at budgettere løbende afdrag og kræve at leverandøren synliggør gælden.
Teknisk gæld er et af de begreber som udviklere taler om og kunder betaler for uden altid at forstå det. Billedet af et lån er overraskende præcist: Du låner tid i dag ved at tage en genvej i koden og betaler tilbage med renter senere i form af langsommere udvikling. Præcis som med almindelige lån er gæld ikke af det onde i sig selv. Den kan være en klog beslutning. Problemet er den gæld der optages ubevidst og aldrig bliver afdraget.
Hvad teknisk gæld faktisk er
Når et team bygger hurtigt, tager det genveje: en løsning der virker nu men ikke er bygget til at holde, en del der ikke bliver ryddet op, en struktur der bliver mere rodet for hver tilføjelse. Hver sådan genvej er et lille lån. Det gør at netop den funktion bliver færdig hurtigere, men det lægger en rente på alt fremtidigt arbejde i samme del af koden.
Noget gæld er rationel. Skal du nå at lancere før en deadline, kan det være helt rigtigt at tage en bevidst genvej og rette den bagefter, præcis som en virksomhed kan låne for at investere på det rigtige tidspunkt. Forskellen mellem sund og usund gæld ligger i to ord: bevidst og afdraget. En gæld som teamet kender til og planlægger at afdrage, er et værktøj. En som ingen holder styr på, er en lækage.
Hvordan gælden viser sig for dig
Du kommer aldrig til at se den tekniske gæld i koden, men du mærker renten i hverdagen. Tegnene er tydelige når man ved hvad man skal lytte efter:
- Enkle ændringer tager pludselig meget længere tid end de plejede.
- Nye funktioner koster uforholdsmæssigt meget i forhold til hvor små de ser ud.
- Den samme slags fejl vender tilbage, ofte nye steder.
- Udviklerne begynder at tale om at visse dele er “skrøbelige” eller at de “helst ikke rører” et bestemt område.
Det sidste er renten udtrykt i hverdagssprog. Når et team undgår en del af systemet af frygt for at noget skal gå i stykker, betaler du allerede for gælden i form af forsigtighed, omveje og tid.
At budgettere afdrag
Løsningen er ikke at jagte nul gæld, hvilket ville være lige så urimeligt som aldrig at låne. Løsningen er at afdrage løbende. I praksis betyder det at en del af udviklingskapaciteten i hver periode går til at forbedre det der allerede findes, ikke kun til at bygge nyt.
| Håndtering | Konsekvens over tid |
|---|---|
| Intet afdrag | Renten vokser, og hver funktion bliver dyrere end den forrige |
| Løbende afdrag | Gælden holdes i skak, tempoet forbliver jævnt |
| Stor engangsoprydning | Dyrt og risikabelt, ofte en nødløsning når gælden har fået lov at vokse for længe |
En almindelig tommelfingerregel er at afsætte en tilbagevendende andel af hver udviklingsperiode til forbedring og vedligeholdelse. Præcis hvor meget afhænger af systemets tilstand, men princippet er at lidt og ofte næsten altid slår meget og sjældent. Den der skubber al vedligeholdelse foran sig, ender til sidst i den dyreste situation af alle: en total ombygning.
Et scenarie: to år uden afdrag
En virksomhed pressede sin leverandør til kun at levere nye funktioner og aldrig rydde op. De første måneder gik hurtigt, og alle var tilfredse. Efter et år tog hver ny funktion dobbelt så lang tid, og efter to turde teamet knap røre kernen. Det der lignede effektivitet (al tid på nyt og intet på vedligeholdelse), havde i virkeligheden opbygget en gæld som nu åd halvdelen af udviklingsbudgettet i rene renter.
Havde de i stedet afsat en lille del løbende, var tempoet blevet holdt jævnt, og den dyre oprydning havde aldrig været nødvendig.
Spørgsmålene der tvinger indsigt frem
Da du ikke selv kan se gælden, er du nødt til at få leverandøren til at synliggøre den. Spørg ligeud hvilke dele af systemet de helst ikke rører og hvorfor. Bed om et skøn over hvor stor en del af tiden der går med at håndtere gammel gæld. Og kræv at forbedringsarbejde bliver synligt som selvstændige punkter i planlægningen og ikke gemmes inde i andre opgaver.
En moden leverandør taler åbent om gælden og har en plan for den. Den der påstår at der slet ikke er nogen teknisk gæld, har enten ikke kigget eller vælger ikke at fortælle det. Vil du have et uafhængigt billede af tilstanden i et system, tilbyder vi hos Weapp det, og en teknisk gennemlysning sætter tal på gælden før den når at blive dyr.
Ofte stillede spørgsmål
Er teknisk gæld altid noget dårligt?
Nej. Præcis som et lån kan teknisk gæld være en klog beslutning: At tage en bevidst genvej for at nå at lancere til tiden og så rette den bagefter kan være helt rigtigt. Problemet opstår når gælden optages ubevidst og aldrig bliver betalt tilbage. Så vokser renten indtil den æder udviklingstempoet. Målet er ikke nul gæld, men bevidst og styret gæld.
Hvordan mærker jeg som kunde at gælden vokser?
Det tydeligste tegn er at alt tager længere tid. Enkle ændringer der før gik hurtigt, trækker pludselig ud, nye funktioner tager uforholdsmæssigt lang tid, og de samme fejl vender tilbage. Udviklerne begynder at tale om at ting er skrøbelige eller at de ikke tør røre en bestemt del. Det er renten på gælden du hører, oversat til hverdagssprog.
Hvad koster det at lade være med at håndtere teknisk gæld?
Prisen er snigende, men stor: Hver ny funktion bliver dyrere end den forrige indtil man når et punkt hvor selv små ændringer koster urimeligt meget. I værste fald bliver systemet så svært at arbejde med at en dyr ombygning fremstår som den eneste udvej. At afdrage lidt løbende er næsten altid billigere end at lade gælden vokse til det niveau.
Hvordan får jeg leverandøren til at synliggøre gælden?
Spørg ligeud hvilke dele af systemet de helst ikke rører og hvorfor, og bed dem anslå hvor meget af tiden der går med at håndtere gammel gæld. Bed også om at forbedringsarbejde bliver synligt som selvstændige punkter i backloggen og ikke gemmes i andre opgaver. En moden leverandør taler åbent om gælden. En der siger at den ikke findes, har enten ikke kigget eller skjuler den.