"Given the undeniable trend towards all-encompassing change in software development, the case can be made that general purpose software is doomed to always be unreliable and buggy."




"Is this some sort of collective insanity that has somehow woven its way into our society?"

18.10.06

 

Welcome to the Crash

What is Metaphor Crash?

In his essay “Once there was the command line”, Neil Stephenson introduces the concept of Metaphor Shear with a hypothetical occurrence that nearly all of us can, unfortunately, relate to. He described it as the moment when the document that he had just been working on suddenly disappeared from his computer screen with no warning. What was a few seconds before a very convincing replica of a sheet of paper being typed on was suddenly and forever gone. But did the documents really go anywhere? Not really.

What happened was a breakdown of the system that provided the metaphor of a sheet of paper in a typewriter. The user is typically so engrossed in what they are doing, and so completely sold out to the metaphor that is providing the interface that when this happens, it is shocking.

Sadly, the more complex information technology becomes, the more commonplace these sudden crumbling of the fabric that we interact with will become. Most everyone who uses a computer as part of their job has come to expect it to periodically freeze, inexplicably close a running application, disconnect from the network, draw strange partial shapes on the screen, and completely crash, forcing a restart of the whole system.

There is a lot of reality in the joke about the four engineers riding through the desert when their car broke down. The first, a mechanical engineer, was busy under the hood looking for a broken part. The electrical engineer was tracing out the wiring to the distributor and the chemical engineer was trying to figure out if they had gotten a bad tank of gas. Suddenly the car started and they all saw the fourth engineer sitting at the wheel.

“What did you do?” they all asked.

“Well, first I shook the steering wheel back and forth. That didn’t work so I pressed all the buttons on the dash. When that didn’t get things going I closed all of the windows and opened them back up. Then it cranked right up.”

“Amazing!” they all exclaimed. “But we are all engineers and we would never have thought to do those things. How did you know what to do?”

“Easy”, he replied. “I am a software engineer”.

The truth in this story is that we have all come to accept performance from software that is far, far below the standards applied to other industries. And as more and more of our critical infrastructure is brought online with computerized controls, what is now a constant annoyance could become a series of software-induced disasters. With software problems, either intentional or accidental, power plants may shut down; communications systems could crash, and the systems that emergency personnel and even our military depend on could be rendered useless. Unlikely? Not as unlikely as you may think.

When Metaphor Shear moves outside of the little box under your desk called your computer into the realm of power, communications, and defense systems, the stakes are much, much higher. If your computer fails, you may lose a few hours worth of work, or even a week’s worth. Or you may not be able to check your email for an extended period of time. Inconvenient, no doubt. But when large, distributed systems begin failing it is much, much more than an inconvenience. It is potentially a large-scale disaster.

This is what I choose to label “Metaphor Crash”. It is when the systems that we depend on to provide critical infrastructure suffer from the kinds of glitches that cause office workers around the world curse under their breath and have fantasies that involve their computer and a large hammer.

Metaphor Crash is not inevitable, but it is becoming more and more likely. This blog will provide periodic thoughts on what it is, how we got to this point, and how to avoid it as we move into the future.


Metaphor Crash is starting...