Chapter 12. Taking control with web tests

 

This chapter covers:

Programming is an intellectual Jackass stunt. We take risks, underestimating the difficulty of a programming task, and often the consequences are unexpected and catastrophic failure. When we implement some code, the possibility that it might fail seems so remote that we don’t even consider it. But in the real world, it’s subject to Murphy’s Law and fails anyway.

But although we know that from repeated experience, we still do it. We keep setting ourselves on fire no matter how many times we get burned.

Admittedly, this is a somewhat sensationalized account. Fortunately, the burns are rarely serious. And it is possible to learn to be more careful; in fact, most do. But Murphy’s Law is a natural mode of thinking only to paranoid or pessimistic people. Although some claim it’s a real phenomenon with natural causes, it seems to run counter to level-headed logic and reason.

I am fascinated (perhaps morbidly) by how Murphy’s Law works in real, physical, technological disasters. Sinking ships and nuclear accidents give me a sense of déjà vu. The way a trivial, ridiculous error can have vast, catastrophic consequences reminds me of some software projects. Some software companies are as unsinkable as the Titanic and sink just as dramatically.

12.1. Revisiting the contact manager

12.2. Getting a working form

12.3. Quality assurance

12.4. The horror of legacy code

12.5. Summary