Architecture & practice·Legacy systems and migration
you decided to start again, and the old system kept receiving feature requests the whole time.
Rewrite
Replacing a system with a new implementation rather than evolving the existing one. It is occasionally correct — when the platform is unsupported, the model is fundamentally wrong, or the thing is small — and it is usually chosen for the wrong reason, which is that reading the old code is unpleasant. The costs that get missed are the undocumented behaviour the old system accumulated and the feature freeze that never actually holds.