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:

Legacy Code References Added Later

Bad Code References Added Later

Testing References Added Later

Updated: Added many extra references long after the original response was made.

  • Comment on Re: Strategies for maintenance of horrible code? (Legacy Code References)

Replies are listed 'Best First'.
Re^2: Strategies for maintenance of horrible code?
by GrandFather (Saint) on Jul 12, 2006 at 08:38 UTC

    Actually, just writing the tests is often a damn fine way of finding bugs. No exactly what OP is after at the moment, but something that is at the forefront of my mind because I'm in the middle of writing a set of tests (in Perl :) for some XML processing C++ code and turning up a pile of bugs as I go.

    However it does suggest another test avenue: write test harnesses for modules so that you can exercise them in isolation and better understand how they work. If the test harness ends up part of a regression test system so much the better.


    DWIM is Perl's answer to Gödel
Re^2: Strategies for maintenance of horrible code?
by tinita (Parson) on Jul 12, 2006 at 12:28 UTC
    Maybe. For another point of view, see Joel Spolsky on not rewriting from scratch.
    uh oh. why does this remind me of perl 6? =)