You have two options. Both equate to the same thing.

1. Refactor.
2. Rewrite.

First thing you need, is a full understanding of the system. Feature freeze and map out everything. Every module, config file and any other dependency. Next, have a good understanding of what an ideal version of the system would be. This includes where things should go and what the system will look like.

Here's the easy part. You make the old system look like the new system. You start to do 1 of many things.

  1. Run both systems in parallel, the old and the new as it is being written. This means data gets written to two places, and then parts of the software become deprecated as new ones are put in. This is not so much cut by product, but function.
  2. Build the new system and old system concurently, providing hte new system to a very small controlled set of people. You can address problems, and things you won't need as the new system grows. Think of it like beta testing. This cuts across some percentage of your customers.
  3. Go in a cave, rewrite the system, forget the old, then cut over. This takes a long time and is very hard to estimate anything about. Prone to a lot of people being pissed at the end due to things broken for everyone. At the same time, a lot more poeple could be happy with the new system.
  4. Stepwise rebuild. It sounds like the first part, but kinda is, yet isn't. It is akin to rewriting newest nodes while RAT stays in place. One shouldn't affect the other as they are being rewritten serially. Perlmonks is more commingled in its feature division that other systems, which are larger and have more parts, such as a bank's financial system.

Uh, step 3, profit. That's about it. Other than the above, prof'ing and patching, there's not too much else you can do.

----
Give me strength for today.. I will not talk it away..
Just for a moment.. It will burn through the clouds.. and shine down on me.


In reply to Re: Private module organisation by exussum0
in thread Private module organisation by Smoothhound

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.