5 ms·
Disagree - "investing" is an activity that can be deferred without anything but opportunity cost; "paying off debt" expresses that not doing it has real consequ
by al2o3cr 7y ago
Disagree - "investing" is an activity that can be deferred without anything but opportunity cost; "paying off debt" expresses that not doing it has real consequences.
- PopeDotNinja 7y agoYou shouldn't prioritize buying a fire suppression system over putting out the fire that is melting production :)
- afterburner 7y agoThose consequences can be small and extremely delayed if interest rates are low.
- delecti 7y agoWhich is one more point in favor of calling it that. Some tech debt can be put off forever, other tech debt has very high interest rates.
- mwfunk 7y agoThat's how I think about it, and that's hopefully how a lot of people think about it, but I suspect for most people that's not true. For a lot of people debt isn't nearly as scary as it ought to be, and the idea of, instead of paying off debt, spending money to theoretically make more money seems like much more of a sure thing than it actually is. Perfect example: I'm in SV, and I bet there's a not insignificant slice of the population around me who think that the cure to budget deficits (i.e., debt) is to reduce income by cutting taxes, based on a mystical belief never seen in reality that the growth fueled by the tax cuts will result in both lower taxes for the population and higher tax revenues for the government (i.e., investment). I'm almost 50 years old, and there has never been one iota of truth to this notion in my lifetime. Not one teeny tiny iota. But some people just can't resist going back to that well over and over again with the same results every time. The notion that you can kill two birds with one stone, and both ignore debt and create wealth at the same time via magic Austrian fairy dust must be very powerful. It's like a black hole of self-evident idiocy that people keep flying into for some reason. It must be a form of cognitive bias, but if so I don't know what to call it.
- lonelappde 7y agoI'd call it massively offtopic political flamebait, even if it might have a kernel of truth.
- skybrian 7y agoWell, paying off debt can often be deferred indefinitely too, as long as you keep paying the interest. Instead of thinking of it as "debt payments" you could just think of it as high operating expenses for the development team, and invest in reducing them.
- usrusr 7y agoYou don't even have to pay indefinitely, just as long as the code is still in use (for the subset of technical debt that has externally visible effects, such as performance issues) or even just while the code is still routinely being worked on (for the rest). At least it looks like that at first glance, which makes not paying so attractive. But your alternative mental model is spot on, it's a costly hindrance to development, not a cost imposed by the code itself. And "only until you stop working on that code" is unfortunately just half of the truth, because a team that is used to living with a problematic style instead of dealing with it might easily end up repeating the patterns they abhor when given the chance to greenfield, because they don't know the alternative well enough.
- TeMPOraL 7y agoI sort of agree with the author, for a similar reason that I don't like the concept of code rotting. Digital artifacts left alone don't change. They don't become more broken over time. Technical debt in code you're not currently modifying isn't incurring interest - and a debt without interest is one that you can safely leave unpaid indefinetly. Both "code rot" and "technical debt" are concepts that, unlike their real-world analogs, are only problematic in context of ever changing environment. I feel this is a crucial and unmentioned difference that makes the analogy bad.
- Sevii 7y agoHave to disagree with this. Unmaintained code is a massive security risk. Eventually someone will find a flaw in some part of your stack and your code is dead.
- TeMPOraL 7y agoNo, your code still isn't dead. It's revealed to be potentially exploitable by someone, somewhen, maybe. Code is not accruing danger or becoming dead by just sitting there, untouched.
- mcbutterbunz 7y ago> Code is not accruing danger or becoming dead by just sitting there, untouched. All other things being equal, this is true, except for hardware issues where replacement parts may be very expensive or completely nonexistent.
- heelix 7y agoIt does, though. A single line might not change - but the world around it is always shifting. Libraries in frameworks, Operating Systems, drivers, external data structures - nothing stays static in the environment our code lives in. As long as code is running, it needs to be maintained. (Most of the time it can be negligible, sometimes serious...)
- 7y ago