[Off-topic but perhaps interesting to some]
"Rewrites Considered Harmful." This is such a common meme in the programming community that I'm having trouble locating the article I originally read on the subject, but here are two good articles, one short and one long:
http://www.ronkes.nl/blog/?2005-04-15-neverrewritecode
http://www.neilgunton.com/doc/rewrites_harmful
Redesign is good, refactoring is good. Rebuilding from the ground up tosses out years of accumulated design experience and bug fixes that you'd forgotten were necessary. If a program needs a redesign, do it a piece at a time as much as possible and test continuously so you know instantly when a refactoring breaks the existing functionality, because it's the functionality and not the prettiness of the code that matters most. (Pretty code helps you add NEW functionality, but that's later.)
-Max