I do not have a lot of blogposts on the subject of fighting technical debt. Maybe because as a developer it is such a clear thing that needs to be done that it is hard to imagine why -not- to do it.
Old code that is not used, or code that is too hard to grok simply gets in the way and we need to clean up thoroughly to pave the way ahead. We want to keep momentum to maintain our speed.
As william puts it refactoring is not a cost:
My advice to managers (..) Reward and encourage deleting of unused code; fight for and insist that programmers be given time to refactor and otherwise eliminate unused code, and don’t account for time spent doing so in the same way you do the creation of code.
My advice to programmers: Delete unused code at *every* opportunity and scale (function, class, file, project, organization); don’t compare the effort to do so to writing code; work at all times to have your software feature-set reflect its actual, operational use.
Or to put it in my own words, developers can be compared to Knights:
Sour Knights flee surrender or choose other fights. Brave Knights refactor and tame the beast!
Continue the fight, young warrior. And do not get distracted.