An article in Science said that NASA spent $350,000 in 1989 to inspect the Hubble Space Telescope before launch to make sure that twelve bolts had drops of epoxy holding them tight. The article said that "files contained no documentation on these bolts, and the technicians involved could not remember if they were epoxied or not." Imagine a program you've worked on: where's the document for each nut and bolt in it?
Confidence in the product is valuable in itself.
NASA spent $350,000, about $30,000 per bolt, and may not have had to change a thing. But the certainty that the bolts wouldn't vibrate loose and crack the mirror was worth that amount to them.
Reason from the way the product was built.
Notice how much cheaper information about those bolts acquired during the build of the telescope would have been, than the same information acquired by building a test rig and checking later. Do we test software as if we had no idea how it was built? Do we build software and discard valuable information about how it will work, and then recreate this confidence-related information from scratch in testing?
If your procedure isn't documented, you didn't do it
The guy who says, "Sure, I tightened a lot of bolts... but I can't tell you which ones," might as well be saying, "I didn't do anything." We have to take the same steps to recover.
Copyright (c) 1995 by Tom Van Vleck