Technical debt - was Re: datetime seems to be broken WRT timezones (even when you add them)
On 2/11/20 1:09 PM, Chris Angelico wrote:
> What you're talking about is costs in general, but "debt" is a very
> specific term. You accrue technical debt whenever you "borrow" time
> from the future - doing something that's less effort now at the
> expense of being worse in the future. You pay off that debt when you
> sink time into something in order to make it easier to work on in the
> future. The most common form of technical debt is legacy code, where
> you often end up paying interest on the debt every time you dip your
> toes into the code to make a small change, avoiding the work of
> actually refactoring things and fixing the problems.
It's all just different ways of accounting for the same things. In the
olden days before the term "technical debt" was invented, we called this
"total cost of ownership." This not only included the up front cost, but
the on-going (and potentially increasing) cost of maintenance, and often
even the future cost of migrating to a new solution. So in the end it's
all the same: cost. And it's never paid off. Ever. That's why I've
recently come to question the usefulness of the term "technical debt."
> Porting to Python 3 should *improve* your codebase, so it should be a
> way of shedding technical debt. (Unless you do it by running 2to3 on
> your code and hoping for the best. But that's a bad idea for many
> other reasons.)
But see, this is the thing. There's brand new technical debt accrued
with the move to Python 3. The cost of the debt is lower, but it's
still there. Because maintenance is still going to cost. Versions
still bump and require hopefully minor tweaks. Eventually the bigger
jumps come. New ideas come along also. New frameworks, new paradigms.
I think it's a fallacy to think we can pay down technical debt.
I'm sure we probably disagree.