Best Practices for Removing Unused Code
<p>I'd like to know what people's best practices are for removing unused code. Personally I'm a fan of deleting (not just commenting) anything that's not currently being used. But I'm unsure of how far to go.</p>

<p>Take this as an example (although I'm interested in general discussion). In my project I have a dozen or so UserControls. For a feature that later got canned, I implemented a couple of methods and properties on one of the UserControls. The additional code is not specific to the feature, but needed to support it. It may potentially be useful later on.</p>

<ul>
<li>Should I remove the code because we're not using it at the moment, and the less code there is the easier it is to read? The problem with this is, how do future developers know that this work has already been done?</li>
<li>Or should I keep it there, so another developer can find it easily if they need to use it later (they're not going to think to go through source control to see if anyone had done this and deleted it)?</li>
<li>Or is there another option?</li>
</ul>

<p>The same applies to UserControls not currently being used. Should I remove them or keep them?</p>

<p><strong>Edit:</strong> It goes without saying (or I thought it would) that we're using source control.</p>
