I combat this by ensuring that it is perfectly acceptable for a change to consist primarily of <i>deletions</i>.<p>You don&#x27;t want a culture that only adds features, forever growing the pile.  Developers need to be free to identify and aggressively throw out old functions, old tests, obsolete documentation or anything else.  This means that a list of deprecated items should be expected in most projects, and <i>mean it</i> when you warn other teams that you plan to completely remove those items in 6 months.<p>This freedom to delete doesn&#x27;t mean that total rewrites will be encouraged.  Rather, it acknowledges that in an evolving system, some things do become obsolete and mistakes will be found (despite highly competent architects) that ought to be corrected.  Ultimately it frees people to easily identify and maintain only what really matters.