Now that I’ve pretty much made the case that software cannot be intuitive, I want to show you what takes the place of intuition: the idioms. The
Spill the beans
Jump the gun
The first of these has nothing to do with spilling the beans. To “spill the beans” means that you are
The second, “jump the gun,” has nothing to do with guns. It means somebody started something too early (although the root of this phrase has to do with races and a gun firing to signify the beginning of the race).
And finally, “hang on” has nothing to do with hanging on. You might use it like, “Hang on, I’m on the telephone,” or “Hang on, I’ll be with you in a minute.” It means “wait.” (Although I suppose it could be used as in, “Hang on, Dad! Grandpa is bringing the other ladder that’s still in one piece! Don’t let go!”)
Software is filled with idioms, which are simply cues that are visual or
The notion of a window coming to the front is another idiom. Realistically, the screen isn’t layered, and you don’t have pixels behind the ones that you see containing the windows that are in back and obscured from view. But we do have an idiom: We all know that the windows have a layered look.
However, Microsoft has made a bit of a mess, because in Windows XP, you can set up your Taskbar to group windows. This is a good thing, because instead of seeing 14 Internet Explorer rectangles all squeezed onto your Taskbar, you see only one, and clicking that one gives you a small menu of all the windows in the
Idioms also take the form of icons and symbols. We have all learned what the mouse arrow represents, what the hourglass symbol is, and what a folder icon is, even when it looks a little different between versions and operating systems.
These are by no means intuitive. Consider the blinking caret that sits in the middle of the text in a Word document. Does it represent some
When you design your software, keep the idioms simple enough so that they don’t get in the way of the real purpose of the program.
If I were to build a word processor, I might consider this idiom:
The speed at which the caret blinks denotes which
You can see this is getting a bit out of hand. Yes, it’s an idiom. No, it’s not a good idiom. It’s too complicated, and it doesn’t provide a value to the user. What is the goal of the word processor? To type pages of text, not to mess around with some stupid idiom about the speed of the blinking caret. Soon you’d be more involved in trying to understand the blink speed rather than focusing on what you’re trying to type. Remember the Golden Rule of Software: Software should be invisible. The moment the
How do you design good idioms?
Good idioms are the result of a combination of established idioms mixed with common sense and careful design.
My desk is a mess. Now, if my mother, Pat, were sitting here beside me, she’d use the term she always used to describe my bedroom when I was a child: It’s a disaster . (And trust me, she wasn’t laughing at the time.)
Let me describe my desk for a moment. I have a monitor on it,
So why in the world would I want to base my computer organization on this thing that the gurus of the 1980s called the Desktop Metaphor? And tell me, where on my desk is an icon?
The desktop metaphor is a joke. But it was a good attempt. The idea was to give the people of the world something they could relate to: A desktop, nice and simple. And for the most part, it worked early on, because the computer trainer teaching the frightened secretary could say, “Think of this as your desktop.”
Other metaphors have also worked their way into the computing world. The file cabinet is one. (And Microsoft even changed terminology back in 1995, when they deemed directories as folders . Apple, on the other hand, always had folders .)
Here’s the basic problem with the folder metaphor: In my computer, I can put a folder in a folder in a folder in a folder. Try doing that with your real file cabinet, the one of the metallic persuasion. You probably could do it, but it would make for a bit of a mess. And where does the file cabinet itself fit in? Figure 1.2 is an example of a folder containing folders.
Figure 1.2: This window represents an
Now I admit, the folder metaphor has, for the most part, worked. People seem to understand the metaphor,
to a point
. However, when a user sits at the computer, and he opens a folder he has never seen before, why does he know what that is? Does he mentally make a connection to the metal file cabinet beside his desk? Of course not. Instead, the reason he understands it is that
Metaphors are (sometimes) acceptable in training situations and have little use beyond that. Do not design your software with a metaphor in mind because, frankly, people will no longer need the metaphor once they understand how to use your software. Otherwise you’ll be using a metaphor as a replacement for good idioms. Instead, focus on the idioms: few and simple.
When the newbie learned to use the folder, somebody probably said, “This is called a folder, and think of it like a folder in a file cabinet.” But after that, the trainer had to explain how to double-click the folder and show him that a window would open, and that this window contains icons, and that he can drag them to another folder, and so on. And notice what’s happening? The metaphor is gone! And is the newbie making a mental connection to the metaphor? Doubtful.
Even in training situations, metaphors can become a problem. If the student is too smart, she might try to relate every process to the metaphor, which will invariably cause confusion. Consider these metaphors: creating a folder in a folder (does that really make sense?), creating a shortcut to a program (I’ve never seen a shortcut in a folder inside a metal file cabinet). And instead of accepting everything at face value, the thinking student will start asking questions the trainer is unable to answer.
REAL WORLD SCENARIO:
I had something scary happen. And I mean really
. I noticed that the doorknob in one of the bedrooms of the old house I live in was loose. It had
on it. If I turned it just a bit, I would feel nothing happen, and only after I turned it just a little bit more would I feel it engage and begin to do its job. And so I decided to fix it. I didn’t think a doorknob could be all that complicated, even though these are vintage doorknobs. I’ve
And so I fiddled a bit and figured out how to unscrew the outer mechanism, and soon I had the whole contraption sliding out of the door. The two
I can see it now. I have my door closed in my office as I’m working hard doing all that computer stuff that we computer people do (like seeing how many web pages it’s humanly possible to read in a single day), while the family is outside enjoying life. And finally at dinnertime I’m ready to emerge and return to the living. I walk up to the doorknob
and I finally grab it
For years the neighbors would hear the screams of “Help!” emanating from that secret dark room. They would see my silhouette in the window as I peer out at them passing by, frightening them while I try to flag them down. Trapped. Unable to get out, for years upon
Now how is that for good design (or not)? Engineers can
Let’s face it, the metaphor of the desktop and the file cabinet are pretty much here to stay, like it or not. But let’s leave good enough alone and keep additional metaphors out of the business.
Besides, I don’t keep my file cabinet on my desktop. I’ve
One of my biggest gripes about programming today is that it is unnecessarily difficult. For example, in one language I have to learn how to use standard templates if I want to create a list of strings. Another language has a type called TStringList. One is certainly easier to use than the other. (However,
And so I was very excited when Visual Basic came along. Visual Basic actually made programming
. But some people might argue it made programming too easy. Alan Cooper (himself a guru in the useability world) created the original version of a development tool that soon became known as Visual Basic. What Cooper did in his proverbial garage was a
When Microsoft purchased Visual Basic and introduced version 1.0, they included an amazing feature that let people create their own
. A custom control was basically a specialized control that could perform actions that the standard controls (
Unfortunately, that’s exactly the major flaw in this thinking. While some useful controls came out (such as various spreadsheet controls), the world was suddenly
But to add horror to horrors, other programmers were actually using these things in their programs. Users would download these cool new programs and find out that they needed this file and that file to use the program. This file and that file were, of course, extra Visual Basic controls. And then when people would start up the programs, they would be treated to the crayon equivalent of an explosion in a spaghetti factory.
Come on now. This wasn’t necessary, was it? Alan Cooper would be rolling in his grave, except he’s still with us, thankfully.
A friend of mine summed it up well when he said, “There’s nothing
Fortunately, the days of
Use only the standard controls the operating system provides you. The built-in controls in Windows XP, for example, are rich with features and
are well-established idioms
. If you think you need a custom control, think again. Yes, it’s true that occasionally people really do need a custom control. But these moments are
rare. Go about your work
colors. I’m serious. First, simply call into the operating system, and let the operating system assign colors to elements such as buttons and listboxes. The operating system in turn chooses its color based on
, which are set in the Advanced Appearance dialog box shown below (for Windows). But if you must assign colors for whatever reason, pick from the list of colors
Don’t use 3D and all that other crazy stuff to “enhance” the look of your interface. (The one exception where this seems to be fine is with games. With
Avoid messing with text. There is a practical reason for this: If you obscure your text in any way whatsoever, you might make reading it difficult for visually impaired people. And a less practical reason is that it will annoy people, whether they are visually impaired or not.