As I can t help reiterating (it s crucial!), the single most important factor when you re writing a program is your ability to test again and again and again. The completed program should go through as many stages as a painting that started with many sketches and has many layers of paint underneath the completed picture.
I know of some order-entry -type programs (large programs that affect many people and have many functions) that, believe it or not, have been compiled 1,000 times ”maybe l00 times during the initial writing, then hundreds of times as functions were added over the years . So what matters is not how many times you compile (don t be afraid to compile often); what matters is how quickly you can compile as you put these little incremental blocks of code in. The capacity to compile quickly will enhance the elegance , and the success, of your program.
Testing your prototyped request/extract/print program project against valid corporate data is vital to its being successfully implemented in production. I test exhaustively ”much more than some other programmers ”but normally I have been so productive in the early stages of the project that I can spend considerable time testing. I recommend that you have a full test environment where you can safely test update programs and change database information as you need to without touching the corporate production environment. Programmers who test against corporate production databases will get burned.
And don t be reluctant to enlist the help of the users in your testing. Once you have cleaned up the output so that it looks good and the basic data is on the report (or showing on the screen), take your work to the users. Explain that it is an early test of the system, but you would like their input. Users often will find subtle errors that you would not. And again this is a good way to make friends with users.
That s how you do it. You do it this way over and over again, with different requests , different kinds of data ”sales, inventory, order, customer data ”but it s always basically the same thing. When you can do this well, then try move on to more creative and more challenging projects as soon as you can.
No matter the language or platform, all successful projects follow the steps you just read in this chapter. Don t blow your future or your reputation ”be methodical in everything you do.