Like with Tetris sometimes you find a block that allows for retirement of a lot of old stuff. But maybe this block never comes. Or maybe it comes only after you papered over the debt and the solution does not work anymore.
Then there is the false sense of security coming from a skilled player deftly obviating tech debt.
Until that player departs, and the team is buried.
That's an interesting analogy and it has two sides. A skilled player might hide a lot of technical debt without even realizing it.
An unskilled one might see a lot of it that doesn't even exist.
It's not the best metaphor on just the technical debt, but to the whole modern corporate governance, which prefers short term profits instead of fixing things for long term gains.
Fully agree. Refactoring (that serves to reduce tech. debt) needs to happen on a recurring basis. It's the 3rd pillar of coding activity, alongside features, and bugfixes.