There are two types of tech debt in my experience, things get out of date because they weren't maintained and it's harder to do now years later than absorbing some of that work a little at a time throughout the years. And the other kind is because of poorly written code which is often caused by poor business practices and changing requirements.
Exactly the problem we always deal with: Business tends to distrust Tech because we always seem unable to stay on top of things we build ourselves