So you're dealing with sort of the difference between the, oh, the conventional rubber band world, where you can keep stretching the rubber band a little bit more till it breaks, whereas if you take a computer program analogy, you bend it ever so slightly, or twist it, or just touch it, and the whole thing falls apart. The problem with computer programming is that you have no real idea of whether the program you've written is going to do the right thing under all possible circumstances at all possible times, and if you look at the massive collection of stuff in the book you see that there are an awful lot of cases where things didn't work the way they were supposed to. A lot of times it's a combination of errors that causes the problem. Well, there's a long litany of different types of things, that you'll find in the book. For example human error is always prevalent.
Environmental things are always interesting.
There are a lot of cases where the environment causes difficulties. For example in medical health we have the pacemaker interference problem. They finally added some shielding to the helicopter circuitry and that stopped that particular problem. While I'm on that particular thing, the Sheffield was the British vessel in the Falklands war, and they had to turn off their own radar because their own communications were jamming their radar, and that was the thing that let the missile through to blow up the ship. There are a lot of cases where the environment itself is the cause, but in most cases it's programming error, it's design error.