Well, actually, conventional wisdom is "be prepared to write the system
three times, and throw away the first two." In fact, the current system
is a good example of a _second_ system, which has over time evolved out
of control and expanded way beyond the scope of the initial spec. You
can only patch something so many times before you have to go back and
re-examine everything: customer needs, spec, architecture, design,
etc... So let me amend my statement:
USA 3.0 --- Time for a Redesign and Rewrite.