Teknisk skuld – osynliga lånet i din produkt

Av Weapp · Uppdaterad

Teknisk skuld är genvägar i koden som sparar tid nu men kostar ränta senare i form av långsammare utveckling och fler buggar. Viss skuld är rationell, precis som ett lån, så länge den är medveten och amorteras. För en beställare visar den sig som allt trögare leveranser – motmedlet är att budgetera löpande amortering och kräva att leverantören synliggör skulden.

Teknisk skuld är ett av de begrepp som utvecklare talar om och beställare betalar för utan att alltid förstå det. Bilden av ett lån är förvånansvärt exakt: du lånar tid i dag genom att ta en genväg i koden, och betalar tillbaka med ränta senare i form av trögare utveckling. Precis som med ekonomiska lån är skulden inte i sig ond – den kan vara ett klokt beslut. Problemet är den skuld som tas omedvetet och aldrig amorteras.

Vad teknisk skuld faktiskt är

När ett team bygger snabbt tar det genvägar: en lösning som fungerar nu men inte är byggd för att hålla, en del som inte städas upp, en struktur som blir rörigare för varje tillägg. Varje sådan genväg är ett litet lån. Det gör att just den funktionen blir klar snabbare – men det lägger en ränta på allt framtida arbete i samma del av koden.

Viss skuld är rationell. Ska du hinna lansera före en deadline kan det vara helt rätt att ta en medveten genväg och rätta den efteråt, precis som ett företag kan låna för att investera i rätt läge. Skillnaden mellan sund och osund skuld ligger i två ord: medveten och amorterad. En skuld som teamet känner till och planerar att betala av är ett verktyg. En som ingen håller reda på är en läcka.

Hur skulden visar sig för dig

Du kommer aldrig att se den tekniska skulden i koden, men du känner räntan i vardagen. Tecknen är tydliga när man vet vad man ska lyssna efter:

  • Enkla ändringar tar plötsligt mycket längre tid än de brukade.
  • Nya funktioner kostar oproportionerligt mycket i förhållande till hur små de verkar.
  • Samma sorts buggar återkommer, ofta på nya ställen.
  • Utvecklarna börjar tala om att vissa delar är “sköra” eller att de “helst inte rör” ett visst område.

Det där sista är räntan uttryckt i vardagsspråk. När ett team undviker en del av systemet av rädsla för att något ska gå sönder betalar du redan på skulden – i form av försiktighet, omvägar och tid.

Att budgetera amortering

Lösningen är inte att jaga noll skuld, vilket vore lika orimligt som att aldrig låna. Lösningen är att amortera löpande. I praktiken betyder det att en del av utvecklingskapaciteten varje period går till att förbättra det som redan finns, inte bara bygga nytt.

HanteringKonsekvens över tid
Ingen amorteringRäntan växer – varje funktion blir dyrare än den förra
Löpande amorteringSkulden hålls i schack, takten förblir jämn
Stor engångssaneringDyrt och riskabelt – ofta en nödåtgärd när skulden vuxit för länge

En vanlig tumregel är att avsätta en återkommande andel av varje utvecklingsperiod åt förbättring och underhåll. Exakt hur mycket beror på systemets skick, men principen är att lite och ofta nästan alltid slår mycket och sällan. Den som skjuter allt underhåll framför sig hamnar till slut i det dyraste läget av alla: en total ombyggnad.

Ett scenario: två år utan amortering

Ett bolag pressade sin leverantör att bara leverera nya funktioner, aldrig städa. De första månaderna gick fort och alla var nöjda. Efter ett år tog varje ny funktion dubbelt så lång tid, och efter två vågade teamet knappt röra kärnan. Det som såg ut som effektivitet – all tid på nytt, inget på underhåll – hade i själva verket byggt upp en skuld som nu åt halva utvecklingsbudgeten i ren ränta.

Hade de i stället avsatt en liten del löpande hade takten hållits jämn, och den dyra saneringen aldrig behövts.

Frågorna som tvingar fram insyn

Eftersom du inte ser skulden själv behöver du få leverantören att synliggöra den. Fråga rakt ut vilka delar av systemet de helst inte rör och varför. Be om en uppskattning av hur stor del av tiden som går åt till att hantera gammal skuld. Och kräv att förbättringsarbete syns som egna poster i planeringen, inte göms inuti andra uppgifter.

En mogen leverantör talar öppet om skulden och har en plan för den. Den som påstår att det inte finns någon teknisk skuld alls har antingen inte tittat eller väljer att inte berätta. Vill du ha en oberoende bild av läget i ett system erbjuder vi på Weapp det, och en teknisk genomlysning sätter siffror på skulden innan den hinner bli dyr.

Vanliga frågor

Är teknisk skuld alltid något dåligt?

Nej. Precis som ett lån kan teknisk skuld vara ett klokt beslut – att ta en medveten genväg för att hinna lansera i tid och sedan rätta den kan vara helt rätt. Problemet uppstår när skulden tas omedvetet och aldrig betalas av. Då växer räntan tills den äter upp utvecklingstakten. Målet är inte noll skuld, utan medveten och hanterad skuld.

Hur märker jag som beställare att skulden växer?

Det tydligaste tecknet är att allt tar längre tid. Enkla ändringar som förr gick snabbt drar plötsligt ut, nya funktioner tar oproportionerligt lång tid och samma buggar återkommer. Utvecklarna börjar tala om att saker är sköra eller att de inte vågar röra en viss del. Det är räntan på skulden du hör, översatt till vardagsspråk.

Vad kostar det att inte hantera teknisk skuld?

Priset är smygande men stort: varje ny funktion blir dyrare än den förra, tills en punkt där även små ändringar kostar orimligt mycket. I värsta fall blir systemet så svårt att arbeta med att en dyr ombyggnad framstår som enda utvägen. Att amortera lite löpande är nästan alltid billigare än att låta skulden växa till den nivån.

Hur får jag leverantören att synliggöra skulden?

Fråga rakt ut vilka delar av systemet de helst inte rör och varför, och be dem uppskatta hur mycket av tiden som går åt till att hantera gammal skuld. Be också att förbättringsarbete syns som egna poster i backloggen, inte göms i andra uppgifter. En mogen leverantör talar öppet om skulden – en som säger att den inte finns har antingen inte tittat eller döljer den.