Knobs are fun. I turn on the gizmo, twiddle the knobs and see what happens. What is not fun, is if I turn on the gizmo, and it just sits there and does NOTHING until I twiddle the knobs in JUST the right way. Even worse is a gizmo where I twiddle the knobs and the first thing that happens is that damn thing catches fire. There are too many gizmos out there to play with to deal with this stuff.
But, you are thinking, that’s what makes gizmos FUN! It’s fun when things catch fire. It’s FUN when it takes hours to set the knobs in just the right way before the thing works. It’s FUN to show off how you have this giant panel and how EXPERT you are in flipping all the switches and setting all the knobs so the thing works. It’s FUN to watch all those lights go on and off.
I think that way too. And it’s a disease. The engineer’s disease. When I was very young, I didn’t realize it’s a disease. I thought, because it’s fun for me, it’s gotta be fun for everyone else, right? It’s fun to to fiddle with equipment, take apart appliances, to assemble pack furniture and read thick manuals. But then I came to realize that it’s not fun for everyone.
It’s a bit like a stamp collection, or your wedding photos. It’s a very personal pleasure to spend hours pouring over a stamp collection which may not be shared by visitors. You only show them the stamps or the photos if they ASK for them. Otherwise, you’re just being selfish and self-centered and your guests won’t have fun at your place.
It’s kind of the same with building things. When I start building something I often start out simple. I start out with some wood, or some wire, or an empty file on a computer. After some time passes things have gotten complicated. That’s FUN. As I go on I often end up with something that is so elaborate, that has so many knobs and switches even I don’t know how it works, or what some knobs do. I have to read my own manual.
Sometimes I find that I’ve forgotten to write a manual. Sometimes, after a while, I lose interest, and I put it in a drawer, or in the basement and start working on something new. That’s OK, because the pleasure is in the building and getting lost in the complexity, and I’m just building it for me. It’s different when you build things that you want other people to use, however.
Good design: minimize controls, give feedback, don’t explode
Old school radios are a good example of good design. There are two large knobs on the box. One knob is for volume, the other is for station. In the beginning you have to twist the volume knob a little hard, to get it to the ON position, from then on it’s twist to make it louder or softer.
The other knob is to tune the station. It’s pretty quick to learn the controls, and you get an effect pretty quickly. You click the volume switch and you hear this hiss. You twiddle the station knob and THINGS HAPPEN.
Best of all, there was hardly any way you can twist the knobs and have the radio explode in your hands.
This illustrates to me two principles one should follow when building something for others: minimize controls and always give feedback. This reduces the barrier for users trying out and experimenting. And, of course, don’t explode. That’s rude.
Good design: Do something right away, keep options, but behind a panel
Another principle, which is a little harder for me to express, is ‘immediate effect’: getting the device to do something useful should not take a lot of fiddling. Ideally just turning on the gizmo and doing the simplest thing should produce a useful result. At most, a user should have to twiddle one knob to get things going.
It’s often fairly easy to set up some defaults so that the machine works right away. However, it is important to make sure the user has choices, and knows they have choices. It is important to have a panel, clearly marked, that an experienced user can flip open to expose the GIANT array of knobs in all their glory and fiddle away to their heart’s content to fine tune what they want.
What is difficult is to make sure that the user doesn’t make the device explode by a bad combination of settings. Sometimes it is too hard to predict what will happen and all we can do is disclaim warranty, but often we can set interlocks that prevents users from blowing themselves up, and that is good engineering, often the very best.
Perfection is achieved … with time and experience
So, the engineer’s disease is not in making complex things. Not only is that fun, it is often very necessary. The engineer’s disease consists of making things more complex than needed and then throwing the complexity in the faces of others.
Building complexity for complexity’s sake is only a disease when it is done in public. In private you can do as much obscene engineering as you want. But in public, one should respect the time and patience of others. This is where experience and exposure become important. When engineering a system, we have to learn when to say no and not add yet another knob without making the device too simple and too specialized.
The other important side to Engineer’s disease, is in exposing too much functionality too soon. It’s fun (and in a malicious, immature way, I should add) to intimidate and impress friends and relatives by showing them this GIANT wall of knobs that runs your magic machine with all the blinking lights. But it’s no way to treat colleagues and strangers.
Here, it is important to really talk to people who are not so interested in how the system is built, but rather interested in using it on a daily basis. Insights from such users will allow one to learn how to best get out of the way of them when they try to use your gizmo to do their work.
There are many commonly used expressions that capture these thoughts. I have two favorites.
Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away. – Antoine de St-Exupery
But, what is stopping us then?
Not that the story need be long, but it will take a long while to make it short. – H D Thoreau
(This second one is pretty popular and has many versions. I find Thoreau’s version to be the wittiest and pithiest)