Earlier quoted context omitted.
Great insight. I think you are describing tech debt of the "unavoidable" kind. My efforts tend to be focused on the avoidable kind. Definitionally, no methodology makes the unavoidable avoidable? Now, let's say you get to that dreaded point - requirements have changed, dependencies have changed, the industry landscape has changed. Which codebase will be easier to adapt - the debty one or the zero-avoidable-debt one?
> Which codebase will be easier to adapt - the debty one or the zero-avoidable-debt one? I feel this is a bit of strawman, though that may not be your intent. As I mentioned in the above comment, wanting to avoid hurting your long term for the short term is fine and admirable. However, I think the distinction between "unavoidable" and "avoidable" debt is somewhat facile and unrealistic. It's a continuum, with points…
At the same time, I'd note that anything can be debated ad nauseam, so nearly everything can be considered subjective.
So indeed I can't aim to 0.00000 tech debt, nor identify "avoidable" tech debt with 100% accuracy.
But I _can_ follow certain practices and have a given team follow them. Those practices being quite objective, benefitial, and superior to the status quo of the industry.