Its time to call Bullshit on "Technical Debt"
You know what "Technical Debt" is, right?
Ok, heres the (official?) Wikipedia definition
Technical debt (also known as design debt or code debt) is a neologistic metaphor referring to the eventual consequences of poor or evolving software architecture and software development within a codebase. The debt can be thought of as work that needs to be done before a particular job can be considered complete. As a change is started on a codebase, there is often the need to make other coordinated changes at the same time in other parts of the codebase or documentation. The other required, but uncompleted changes, are considered debt that must be paid at some point in the future.
The problem arises in the way it is almost invariably used, viz., as an excuse to not do something.
- Replace "Technical Debt" with "Chewbacca".
- Check to see if the information content of the explanation has changed.
- If it hasn't changed, the explanation is bullshit.
- Heck, if it has increased, the explanation is clearly bullshit!
- We can't implement the new sorting algorithm because we're still dealing with Chewbacca
- We're going to have to wait on the GUI because of Chewbacca
- We'll update the fetzer valve as soon as we've dealt with Chewbacca
Oh, as a bonus, swapping in Chewbacca sounds funnier - at least you'll have that...
If TD looks like a phantom from where you sit, you must be sitting pretty!
I'm not denying that it exists - just pointing out that in the vast majority of cases, it really is bullshit, and is - absolutely - an excuse to do nothing :-)
The problem of course exists, as does bad code, but it's no way to deal with it, just to sell consulting services. :-)