I love a saying from someone "Functionality is asset but codebase is liability". This very true in describing burden of system maintenance, especially when we compromised some technical deficiencies to gain some business solution at that time. Later on, we have to pay off for our imperfect technical solution when we grow up: buggy, slow, unstable, blabla ... and we have to endure or resist...
Let me share my personal sense to technical debts, in the light of opportunity to disrupt them with a much better way. Yeah, my idea is, we keep enduring imperfect things, until they add up, accumulate by quantity or quality to a level that we can't ignore and accept any more ... It's very like a rock rolling from 1 to very near 0, almost... in our emotional judgment. And I feel that is a perfect time not only to fix this situation, but also we have great motivation to build something new with a higher level, maybe 2, or even 10 that surely surpass the level of what we used to work with. And the reward of this disruption will be worthy enough to be proud and satisfaction.
It's a little bit too much theory right, so I will go into a specific use-case. My team has a micro-service written in Nodejs to handle geocoding requests. It has some technical debts such as not-fast-enough, depending on another private library ... We know it but at small scale, we accept its flaws in order to care other things, until we see this library became a bottleneck for some integration flow with our partners and decided moving it into k8s for better scaling. Such decision will require the QC team to thoroughly test all flows going through this microservice. And to me, it's a chance to fix other technical debts. Why ? Because anyway we have to rewrite and test it very carefully. So we should make that effort worth it.
Technical debts, as its name, is not an easy thing to fix and test, but they are also a chance for us to make much better things when we find right time, right people with big enough motivation and commitment. And it is a good signal to disrupt something obsolete, at any scale.