As I was writing the other comment, another strategy came to mind. Anyone with a mortgage or car loan is probably familiar with a useful piece of advice for servicing a long-term debt. Making an extra payment now and again can make a significant difference in the time to pay off a loan

In the context of technical debt, we could imagine a commitment to spend some time now and again to adding tests or doing some refactoring to pay of some of the principal of the technical debt when we get a little time. Imagine you have a little time at the end of an iteration, adding a few unit tests or validation for edge cases to our worst offenders could reduce the cost of working with this code. As the debt is reduced, so is the interest we end up paying.

In the case of a financial debt, this kind of extra payment strategy requires a fair amount of discipline, but it can reduce the time to pay off a debt significantly.

It might even be possible to schedule this kind of work in a bug tracking system or as part of the task list for a project. We could consider this lower priority work that is only scheduled when we begin to catch up.