IN THIS CHAPTER
Looking at the characteristics of bulletproof applications
Understanding that bulletproofing goes beyond code
Identifying the principles of bulletproofing
Developing to a specification
Securing the environment
Providing user feedback
Adding logging to applications
One of my favorite old movies is Desk Set, starring Spencer Tracy and Katharine Hepburn. In this movie (produced in 1957), Spencer Tracy plays a computer consultant responsible for installing a large computer system in Katharine Hepburn's office. Typical of computers in older movies, the massive wall-to-wall mainframe featured in Desk Set understands plain-English queries ("How many ounces of gold were mined in South Africa in the last ten years?") and is equipped with a galaxy of flashing lights that indicate when the machine is "thinking." And of course, the machine and its software work flawlessly, delivering the requested information in seconds (after much clicking, clacking, and spinning of the huge tape drives, of course).
As we all know, Hollywood's vision of computer systems has always been far from reality. Even now, in the 21st century, computers still can't "understand" plain-English commands, hardware still doesn't perform flawlessly, and users still have trouble getting their applications to do what they want and need them to do. Most important, software cannot be made to anticipate what the user wants. How many times have you heard ...