On 2/11/2020 3: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.
A prime example is sending code to production without automated tests.
You pay off that debt when you sink time into something in order to make it easier to work on in the future.
In May 2013, idlelib had no test suite, no test/test_idle.py, and a few non-unittest unit tests. Coverage is now somewhere around 50% and tested modules are much easier to work with.
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.
Without automated tests, every little change required manual testing and carried a non-zero chance of a regression.
-- Terry Jan Reedy -- https://mail.python.org/mailman/listinfo/python-list