Comment Have your cake and eat it too! (Score 1) 177
It's called refactoring, actually. Incremental redesign. Check out
Refactoring : Improving the Design of Existing Code.
Also note that you have to have excellent unit tests. Check out
junit