Technical debt is not necessarily a bad thing. In fact, having it at all is a healthy sign. Some may think otherwise, as suggested by this tweet from Benjamin Mitchell, which was tracking the discussion at Agile on the Beach last week:
Making technical debt visible might help, but how does it address the causes (saying ‘yes’ too often, fears of showing code mess)? #AgileOTB
That tech debt’s causes need to be addressed suggest that the presenter thought that it needs to be eliminated. After all, if they were happy to deal with it there would be no reason to hunt down its causes.
[…] tech debt is actually a healthy sign unless you’re an academic or have too much £££ /@benjaminm
I couldn’t agree more.
Having no tech debt is akin to code perfection, which cannot be expected in a real environment where ideals have to be balanced against cost. In reality we have to always think about taking shortcuts. We have to make a bet as to which ones are likely to cost us dearly, and which ones won’t be so bad after all. Those which will cost us dearly are shortcuts we should strive to avoid now. Those which we think won’t be so bad after all we can take.
As time goes on, the apparent cost of each shortcut will vary. Some will look like good bets, and some we will need to be sorted out. It’s those latter ones, where the cost is mounting up, that provide the “debt” part of “tech debt”.
If we have no tech debt it’s because we were too cautious: we didn’t take any bets, we played it too safe. That, as Paul said, should only happen if you’re an academic or have too much money. And that’s why it’s a sign of ill-health to have no tech debt otherwise.