Hacker News new | ask | show | jobs
by johansch 3689 days ago
This obsession about avoiding technical debt is quite strange. It's a tool to use when it makes sense, like loans in the bank...
5 comments

Debt, both technical and financial, is always best avoided. And in both cases, once you have it, you have to pay it down sooner or later, and the later you do the more expensive it gets.

It is a tool, but having it is always a negative that is offsetting a bigger negative. By all means, take the loan when you need a boost that you can't otherwise afford. But take the smallest loan you need, and pay it back as fast as you can.

no, often you don't have to pay for technical debt. the code may never be refactored, and / or the whole system / module replaced before lots of code is touched.
Do you think of VC the same way?
Worked on many 10+ year code bases?

Technical debt comes in many forms, like developers will refuse to work on messy code.

Not sayimg you're wrong, could be survivor bias. Most code is thrown cause the messy project specs fail. Might be worth paying the extra for devs on the mess that works.

But I don't like it, messy code is annoying hence why I'll remove technical debt. Which the company will pay for. Another cost of introduced technical debt not cleaned at the time when it's easy.

> Worked on many 10+ year code bases?

Two separate codebases got 10+ year old while I managed the development on them, so, yeah. The latter one is something I started together with one colleague; it's now twelve years old and has 250 million monthly active users - Opera Mini; most of those users are in "growth regions". (I left after ten years of that.)

The main attitude I see nowadays in younger developers seems like an overreaction against technical debt... I blame HN etc. :)

i agree and on top of that I've always thought 'technical debt' was a bad analogy (like most analogies).

my reasoning is that real world debt is inescapable, whereas if someone writes some crap code, which is hard to read/maintain/extend, then the debt is only called in if someone has to maintain it. My intuition is that a fair percentage of code that once it works and is tested, never has changes made, or the whole system is replaced without the code ever changing.

if you buy a house with a mortgage, but never live in it, you still have to pay the debt. if you write some code and don't ever touch it again, there is no debt to pay.

Sure, but it's still a yellow flag. Let the tech debt pile up too much and resolving them feels insurmountable.
Sure, use debt where appropriate (be it technical or financial). But be responsible with it, and manage it well.