When to Rewrite from Scratch – Autopsy of Failed Software
Unfortunately this is a lesson that often has to be learned the hard way when you have a lead or team that lacks experience&#x2F;wisdom.  If you can survive that educational expense, you end up much better for it but it&#x27;s painful nonetheless.<p>Aesthetics are never a legitimate reason to replace a functioning system with something else.  I do not care how it offends the eye, the mind, the ear, or any other sensation you have... if it does not have a fundamental functional problem your best option is to maintain or plan an incremental rolling replacement that is tightly scoped at each step.<p>For large systems that do present functional problems, identify the egregious offenders in that system, abstract the entities&#x2F;behaviors most responsible, and replace-in-place in a Ship of Theseus fashion.  Despite how familiar you believe you are with a monolithic or complex inter-dependent system, you will discover how much you don&#x27;t actually understand about how it works as a whole if you try and re-implement in its entirety.