4 ms·
It's not just temporary or throw away code. People are quick to use the term "technical debt" to describe code that's janky but doesn't actually cause any issue
by ndriscoll 3y ago
It's not just temporary or throw away code. People are quick to use the term "technical debt" to describe code that's janky but doesn't actually cause any issues or have much reason to change. If your janky code that "needs cleanup" sits at the bottom of your todo list for 8 years without needing to be touched, and meanwhile its been fulfilling its purpose the whole time, then it's not really "debt". It's a golden goose with an ugly face.
Even if jank today means future changes are more expensive, if those changes are in service to growth, that just means that in the future, you'll need a capital investment if you want to grow, which is normal. It's not the same thing as debt today. You could choose to not target that growth avenue and never incur that cost.
It's pretty normal to have to buy a completely a new machine to support new use-cases in the physical world, and owning an older machine doesn't make that any cheaper, and physical machines require actual ongoing costs to not literally fall apart on their own. Even software that's full of "debt" usually gives you something cheaper than having to repay the entire capital investment on a new program. If it didn't, you'd just rewrite software from scratch every time you needed something new. And software does not in fact rot over time. If you don't touch it, it generally does the exact same thing today as it did yesterday, last week, and last year. If you're happy with that, you can just leave it alone indefinitely. Web 1.0 sites continue to work just as well today as they did 20 years ago, except with much faster computers to process them.
Basically, the analogy has always been pretty bad.