Grandiose schemes usually lead to white elephants with pretentious objectives, high costs, fantastic claims, neglect of other projects, fanatical denial of failure, and a sudden, total write-off. Automated testing is the answer. It's fixed, but is waiting for the next release cycle. To quicken the cycle, automate every step in sight. It can't be changed, too much code references it.
Global variables are the worst enemy of good software.
That would mean changing all the programs A good system design uses modular programming to hide details. If we had a module which handled all date functions, we wouldn't have to worry about the year 2000. We gave the users what they asked for. The firmer the specs, the more likely to be wrong. Users can't tell us what they need, but they certainly recognize what they don't like when they see it.