Dumb Key System

The first thing you have to do for any new system is decide on its requirements. That’s a lot of fun, as you imagine all of the wonderful things your system will do that the old one never could. A bit harder, though, is thinking about what your old system does that you don’t want to lose. In their wonderful book on the subject, Gause and Weinberg show how easy it is to overlook important details like this. They give, as an example, the automated elevator, which replaced the manually-operated one, and note that people were never mugged in the old ones – since passengers were never alone. But who would have thought of that in advance?

Don’t it always seem to go, that you don’t know what you’ve got ’til it’s gone?

Of course, most people today have never even seen an elevator operator, so the story can lack relevance, but I can offer a new one: the new way that some of today’s cars turn on and off the engine. Toyota calls this a “smart key” system; Honda’s version is called, “push-button start.” The basic idea seems to be that you don’t need to take your key out of your pocket or purse. You have it near you and the car door unlocks for you. That’s very convenient when you’re carrying packages.

Even better, when the key is inside the car, you cannot lock the doors from the outside, so you cannot lock your keys in. Sounds pretty good. I assume that you can still lock the car from the inside.

Then you don’t need to take it out to insert into the ignition; as long as your key is nearby, you just step on the brake and push a button and the car starts. Smart, huh?

Well, maybe not. A while back, my wife borrowed such a car from a friend in order to visit her grandmother. She called me frantically, a few hours later. Apparently, the friend never actually gave her the key. The friend had been standing outside the car when my wife drive off, and it wasn’t until she got to her grandmother’s place that she realized that she had no way to start the car up again.

Fortunately, it was only half an hour away, so I was able to pick up the key and bring it to her, but, seriously? How in the world do you design a system that lets people drive away without the key? Obviously, it never occurred to the designers that anybody would do that, since in the old system of keys that had to be inserted in the lock, there was no way to do that. In order to take the key out, you had to turn off the car. That’s not true with the new systems.

Nor is it the only problem. Sometime later, I took my own car in to the dealer to some work, and got a ride home from one of their employees. The driver told me of something that had happened to a friend. She had gotten out of her car and gone away for the weekend – all without turning off the car. When she wanted to use it on Monday, the battery was dead. Again, you couldn’t do that in the old system.

It wouldn’t actually be all that difficult to fix this; for example, the car could beep frantically if the key is removed from the car while the engine is on. The driver would quickly realize what had happened and either put the key back or turn off the car. This need was simply overlooked, due to insufficient requirements analysis.

The problems aren’t intended simply to complain about problems with the design, but to serve as an object lesson. Any time we build functionality to replace old behavior, it is worth taking some time to brainstorm over what features of the old system we don’t want to lose, and what kinds of problems could happen in the new one. That doesn’t mean that we would have thought of these – but it is at least worth the exercise. Without it, who knows what kinds of problems we could introduce?