Back when I learned how to drive, the only question about how to start a car was where to put the key. Dashboard, steering column or (for Saab enthusiasts) the floor. From there, they all worked the same. Turn, hear motor crank, continue.
But now, things aren’t so simple. Push-button ignition. Quirky hybrids. Keys you don’t insert anywhere. To the point that even I, Mr. Software Master, took 10 minutes to start a rental car.
I had no problem starting the car when I pulled out of Hertz in the morning. But after a client visit, I had problems. I started the car, but it wouldn’t move. It was a hybrid, so I didn’t expect to hear engine noise, but I couldn’t see any “ready” sign either. So I kept trying. Finally, I called Hertz for a tow.
I was waiting on hold when it hit me: Maybe I didn’t turn the ignition key far enough. Lo and behold, I turned the key further and the car started to move. Boy, did I feel stupid. But on the other hand, I realized I depend on the engine’s cranking noise to let me know things are working. No cranking noise and I have to think through the problem.
Having to think through the obvious isn’t limited to me. Another tech friend had a similar problem trying to lock a rental car trunk. He locked it, but every time he checked, it was unlocked. Until he realized the key was a proximity lock – the trunk would only lock once he walked away.
This relates to my own work in two ways. One, whatever we do, we should design things in a consistent way. If we build parameters in one way for a client, we should always build them that way. People shouldn’t have to think. (A lesson some large software vendors still need to learn.)
Two, of course, I should be more sympathetic when people don’t understand what I’ve presented. After all, I couldn’t even start a car.