Technical Debt isn’t always Debt

After yesterday’s posts about why you should not focus on reducing technical debt and why that’s not an excuse to ignore it either. Dave brought up a good point in a comment.

Technical debt can be assessed like real debt, to a large degree. How much are you paying monthly because of the debt? An annoying little thing, or wanting to upgrade to a new version just for newness’ sake has a low interest rate.

– Dave Brondsema

But it got me thinking, perhaps “debt” isn’t the right metaphor for this at all. Annoying issues that don’t cost anything, and don’t technically need to be “repaid” aren’t properly debt at all.

Perhaps technical warts would be a better term for those kind of things. It feels good to fix them. But rather than feel righteous for spending time fixing them all and “paying down our debt,” perhaps we ought to feel a little bit self indulgent for spending time and money on what amounts to cosmetic surgery for our code.

I’m not saying cosmetic surgery is never valuable, or that warts are never painful, and certainly not that you should ignore them. After all warts can be cancerous, and could perhaps kill you. But after investigating and discovering that they are benign, perhaps it’s not worth the cost to have them removed.

6 Responses to “Technical Debt isn’t always Debt”

  1. 1kalle

    It seems to me that you argue quite well for the term “Technical Debt”. Isn’t it a matter of interest rates? You only pay down payments for debts with high interest rates. While debts with low interest will sometimes be refinanced through refactoring when introducing new features.

  2. kalle,

    I don’t think so. I was about to day debt implies an obligation to repay, even at low interest rates. But of course, the obligation to replay is the very definition of debt, so it’s stronger that that. And my argument is that it’s that obligation that I think is not only out-of-place, but just wrong. You aren’t obligated to fix the warts in your code at all, just to learn from them and to do better in the future.

  3. Thanks for this! I’ve often wanted to describe this phenomenon to clients but could never find the words. I think you put it quite well, and “don’t pay off all your technical debt unless it’s ‘worth it’” is something most “humans” can get behind. You can, and in a lot of cases probably should, leave a few of those more challenging warts in place, learn from them, and just keep moving forward (and fix them later when you have more time).

  4. 4Daniel Heath

    Technical warts implies that we would only fix them to make ourselves happy – which is not the case at all.

  5. Daniel,

    Perhaps you are right, that warts goes too far the other direction. But some of the things I’ve seen called technical debt really are just about making developers feel better. And It’s not true that the only reason to pay attention to a wart is because it makes you happy. Warts can be signs of carcinoma, infection, or other serious problems and should be investigated to determine if they are serious — which is exactly what I’m suggesting you do with technical warts. Don’t ignore them, but don’t treat them as an obligation either.

  1. [...] This post was mentioned on Twitter by markramm, Planet Python. Planet Python said: Mark Ramm: Technical Debt isn’t always Debt [...]

Comments are currently closed.