Discussion about this post

User's avatar
Mark Stone's avatar

I've never liked the term "tech debt". Too many negative connotations, and really not the right framing. To me, the term "technical investment" better captures the issue. We should not spent effort on work that doesn't have a positive ROI. By framing it is technical investment, we invite two important follow-up questions: 1) what is the rate of return, and 2) when will that rate of return be realized? Refactoring a monolith of spaghetti code from the ground up might have a high rate of return, but that rate of return likely will not begin to be realized within any event horizon the business cares about. Fixing forward with more modular, service-oriented code will have a lower rate of return because you're still paying the cost of maintaining the monolith, but the rate of return can be realized much more quickly. Finally, positive ROI is often insufficient, depending on where the business is in its growth curve. There is often a threshold rate of return that must be realized for technical investment to be worthwhile.

I think these are essential the same points you're making. I find that teams respond more positively to the language of investment rather than the language of debt. This then becomes a debate about culture more than a debate about process and practice.

Konstantin Wright's avatar

This resonated. One nuance I’ve found useful is thinking of "debt" less as something you pay down later and more as drift. Teams often believe they’re accumulating a known balance, but what actually hurts velocity is losing alignment between code and intent. By the time cleanup is scheduled, the system already behaves differently than people think. The best teams seem to focus on staying aligned rather than "paying off" anything.

1 more comment...

No posts

Ready for more?