Emil Stenström Björn Lilja

Små tankar är en blogg om lite allt möjligt. Skriver gör Emil Stenström och Björn Lilja, två helt vanliga killar som närmar sig 30. Vi gör detta helt på skoj, och hoppas att kanske någon därute kan få nytta av våra funderingar. Kanske kan du använda något?

Teknisk skuld

Inom  systemutvecklingen finns det ett välkänt begrepp som kallas för “teknisk skuld”. Även den systemutvecklare som inte hört det nämnas förut förstår intuitivt vad det handlar om när man börjar förklara.

När man påbörjar utvecklingen av ett helt nytt program, när man skriver den första raden kod, finns det ingen teknisk skuld. Så kan det också fortsätta så länge programmeraren inte tillåter några tekniska kompromisser. Tekniska kompromisser kan inom systemutvecklingen exempelvis vara:

  • Ett stycke svårtolkad/svårläst kod
  • En kompromiss eller ett misstag i en algoritm
  • En (onödigt) komplicerad integration med ett externt system, eller i ett systemanrop (anropa en annan tjänst eller bara öppna en fil)

Att helt undvika teknisk skuld är mycket svårt, men riktigt duktiga och disciplinerade systemutvecklare förstår vikten av att undvika teknisk skuld i så hög utsträckning som möjligt. Detta gör man genom att dels vara noggrann (och skeptisk!) från början, men framför allt genom att göra regelbundna återbesök i koden där man genom refaktorisering (ungefär “omstrukturering”) ständigt bygger om lite, anpassar och förbättrar. Allt för att undvika teknisk skuld.

Varför är det då så viktigt att undvika en allt för stor teknisk skuld inom systemutveckling? För att teknisk skuld orsakar stress, irritation, osäkerhet och framför allt fel. Ju krångligare koden är att läsa, förstå och anpassa, deto krångligare är det att göra de tillägg som alltid är nödvändiga i ett system som utvecklas. Och ju krångligare det är, desto längre tid tar det och desto fler fel kommer att finnas i koden efter förändringen. Och i slutändan: Större teknisk skuld – Dyrare vidareutveckling.

Så vad kan vi lära oss från begreppet teknisk skuld som vi kan använda i andra, och viktigare, delar av våra liv?

Teknisk skuld finns även i övriga delar av vårt liv. Skulden är dock inte av rent teknisk natur, utan snarare är det en “praktisk skuld” eller “vardaglig skuld”. Eller kanske en “administrativ skuld”?

Har du ett praktiskt problem som du inte löst? Ett orosmoln som du av trötthet, lathet, okunskap eller osäkerhet inte tar tag i? Då har du skapat en teknisk skuld i ditt liv. Är cykeln dåligt pumpad så att det tar längre tid att komma fram? Är din hantering av e-post otillräcklig så att du blir stressad och missar att läsa eller svara på vissa mail? Har du inte betalat din kvarskatt i tid? Alla dessa olösta praktiska detaljer i våra liv orsakar teknisk skuld.

Är det då nödvändigt att bli av med all teknisk skuld? Nej, precis som med programmering är det lätt att överse med ett litet misstag, det gäller bara att komma ihåg var misstaget finns och hur det påverkar det övriga systemet. Det är samma sak i våra liv, det går alltid bra att leva med en liten teknisk skuld. I praktiken är det kanske omöjligt att helt bli av med vår vardagliga tekniska skuld.

Men precis som i systemutveckling är varje tillskott av skuld något som i slutändan orsakar ett system (eller i ditt fall: ett liv) som är svårare, dyrare och jobbigare att hantera.

Människor skjuter gärna på problem som är ack så små, men nog så jobbiga att ta tag i. Om du kan lära dig att känna igen, och därmed hantera, den tekniska skulden i ditt liv kan du precis som den sällsynta programmeraren skapa ett system som är snabbare, trevligare och roligare att jobba med.

One Comment

  1. Posted 16 May, 2008 at 9:09 pm | Permalink

    Tack för att du påminnde mig om att jag var sen med deklarationen ;)

Post a Comment

Your email is never published nor shared. Required fields are marked *

*
*