http://www.perlmonks.org?node_id=560637


in reply to Strategies for maintenance of horrible code?

Yes, it would have been cheaper and faster to throw this code away and start over
Maybe. For another point of view, see Joel Spolsky on not rewriting from scratch.

I agree with adrianh. If a component is not broken, don't rewrite it. Rewrite a component when you find a number of bugs in it. But first write a regression test suite for the component. I've seen many folks over the years throw out old code, rewrite it ... and introduce a heap of new bugs in the process. If you come into a new company and introduce a swag of new bugs in previously working code, you will start to smell very badly.

See also:

Update: Legacy Code References Added Later

Update: Testing References Added Later