Michael Feathers considers legacy code to be any code without tests. [1] I tend to agree - only I think even code with tests can be candidates for the &quot;legacy&quot; moniker.<p>Bottom line is: you may do a rewrite, but that codebase may be considered to be a hairball by the next guy.<p>1. <a href="http:&#x2F;&#x2F;www.netobjectives.com&#x2F;system&#x2F;files&#x2F;WorkingEffectivelyWithLegacyCode.pdf" rel="nofollow">http:&#x2F;&#x2F;www.netobjectives.com&#x2F;system&#x2F;files&#x2F;WorkingEffectively...</a>