I don't fully buy the no-rewrite rule, myself.

I actually subscribe to the opposite theory: plan to write two - the first one is just throw-away. If I could just stop all requirements from coming in for a month, I would be able to finish the other half of my rewrite of our entire perl infrastructure on our team. The first design had holes in it large enough to drive a truck through. The new design answers all the problems of the old design, plus plugs the holes. But it requires a significant rearchitecture.

As far as the programmer before me encountering problems that aren't readily apparanet... doubtful. That previous programmer was me ;-)

This is a massive effort to move from shell scripts that had everything hardcoded in wierd places, ... to perl code that was completely data-oriented. I worked on the shell scripts for a few years before we started the move to perl, so I'm intimately aware of the pluses and minuses of the original code. I designed the first perl infrastructure, handling all the pluses and solving all the minuses of the old shell code. Yes, all of them. But, reality has a way of side-swiping you. In the design, I only took care of all the immediate issues, without looking to future issues. Only by putting it to some use (we delivered two major releases of our off-the-shelf business software based on the original infrastructure) have we figured out what needs to be kept, what needs to be rewritten, and what simply needs to be discarded. Most of what needs to be kept is concepts, not code.

That's just the way I look at it. But I didn't suggest rewriting ('porting') the shell code into perl to management until I did understand the subtle issues in the problem domain. So maybe this is just an opinion given different assumptions... and not an outright disagreement.


In reply to Re^2: Structural Elegance by Tanktalus
in thread Structural Elegance by samizdat

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.