Begreppet “teknisk skuld” myntades av mjukvaruutvecklaren Ward Cunningham, en av författarna till det agila manifestet och mest känd för att ha utvecklat den första wikin. I det här blogginlägget tittar vi närmare på vad teknisk skuld är, hur den uppkommer och vilka risker den medför.
Kortfattat beskriver den tekniska skulden resultatet av när utvecklare vidtar vissa åtgärder för att påskynda leveransen av en del funktionalitet eller projekt som senare behöver refaktoreras. Med andra ord är det resultatet av att prioritera snabb leverans över perfekt kod.
Att skapa lösningar som fungerar för stunden kan många gånger kännas som ett bra och smidigt alternativ, speciellt när det är stressigt. Visst, det kan vara så att du på grund av en "quick fix" kan utföra mer just idag än du vanligtvis gör, men i slutändan betalar du ändå en högre kostnad eftersom ju längre tiden går från leveransdatum utan att den tekniska skulden arbetas ner, desto större växer den sig. Tills slut tar arbetet att rätta till systemet extremt mycket tid, något som i slutändan är betydligt mindre lönsamt än om det hade gjorts grundligt och ordentligt från start.
Så uppkommer teknisk skuld
Den absolut vanligaste anledningen till att teknisk skuld uppkommer är dåligt skriven kod. Antingen så kan det vara på grund av att den skapas för att vara en genväg som nämnt ovan, eller att utvecklaren helt enkelt inte är tillräckligt duktig på sitt jobb. Istället för att gå hela vägen och utveckla systemet fullt ut från start, fixar man till det så satt det fungerar här och nu. Den tekniska skulden byggs då på och kommer i framtiden skapa större problem, till exempel genom att funktioner inte fungerar när någonting ändras.
Den tekniska skulden kan också uppkomma av dåliga designval, till exempel i form av bristfälliga uppdateringar av standardkomponenter, där de komponenter som finns inte är i synk med varandra.
Riskerna med teknisk skuld
Den tekniska skulden ser egentligen likadan ut oavsett om du arbetar i den planerande, agila eller kontinuerliga världen, men konsekvenserna av den kan se lite olika ut beroende på vart du befinner dig. I den agila världen kan den tekniska skulden bli en stor utmaning eftersom det är svårare att estimera tid och budget för vad det kan tänkas kosta i tid och pengar för att åtgärda det som behöver rättas till i systemet. Här ska arbetet få plats i korta sprintar, vilket riskerar att ta tid från arbetet som mer konkret skapar kundnytta. Ytterligare en risk utöver att det tar lång tid och kostar pengar att rätta till koden är att den även kan innebära negativa konsekvenser för kunden. Speciellt för större företag vars värde ligger mycket i förtroende. Vi gissar att väldigt få företag vill gå ut till sina kunder och behöva be om ursäkt för att de har felinformerats om till exempel siffror till följd av att systemet inte fungerar som det ska på grund av att den tekniska skulden sätter käppar i hjulen.
Sammanfattning
De kostnader som kommer sig av extra arbete framtiden på grund av att man försöker göra en enkel lösning på ett problem är den tekniska skulden. Att skapa snabba genvägar när man kodar kan ibland kännas som den bästa lösningen, men i slutändan är det aldrig mer lönsamt än att gå hela vägen ut från början. En teknisk skuld som bara växer riskerar att få flera negativa konsekvenser, till exempel i form av de höga kostnader det till slut kostar att rätta till problemen.