Error Messages Are Evil
_This post is part of a series in which LinkedIn Influencers analyze the state and future of their industry. _Read all the posts here.
Originally published by LinkedIn, May 10, 2014
Error messages punish people for not behaving like machines. It is time we let people behave like people. When a problem arises, we should call it machine error, not human error: the machine was designed wrong, demanding that we conform to its peculiar requirements. It is time to design and build machines that conform to our requirements. Stop confronting us: Collaborate with us.
I hate error messages. They are insulting, condescending, and worst of all, completely unnecessary. Evil, nasty little things. They cause us to do unneeded work, and often destroy the work we have already done.
"But," programmers will ask, "how can we eliminate error messages, especially when the user has actually made an error?"
The "user"? Stop calling me that: I'm a person, a living breathing person, with feelings. Get rid of, the word "user." Hey, we are people. So people make errors? Whose fault is that? Usually its the computer's, the system's, or, in actuality the people who designed or programmed it.
Our technology is designed by technologists who know what is good for that technology, namely highly precise, accurate, detailed information. Well, that ay be good for machines, but what about what is good for people? People are bad at precision and accuracy. At monitoring dull stuff for long periods. Force us to do those things, to act like machines, and of course we will fail. You call it human error: I call it machine error, or if you prefer, bad design.
Why not make the system for people? Eliminate error messages. Replace them with collaborative messages. Consider Apple's error message at the start of this essay. I had a file name that I wished to change. Moreover, I decided I wanted it to appear at the top of the alphabetical listing of files, so I decided to make the first character a period (which Apple calls a "dot"). I carefully typed a long new file name, ". Template for working documents" starting it with a period, believing that this would force the machine to order the file names the way I wanted them to be, not the way it wanted to do it.
"Bad, bad," says Apple, don't you know better? Starting a file with a dot is our secret way of marking system files. You can't do that: start all over again." And then it rudely discarded all my work.
That's not very helpful, Apple. And here I thought you were the company that understood people. How am I supposed to know your secrets? And even if I did do it wrong by your obscure standards, why did you discard my work? Why not let me fix it?
What would a collaborative message look like? Like this:
Sorry, but you started the file name with "dot" and files that start with a dot are restricted for system use. You may start with any alphanumeric character or symbol except for dot: please edit the file name and hit "save."
_(_And the stuff I so carefully typed would be there, allowing me to get rid of the offending "dot" and make any other modification I wished, Right there in the message!)
That's still not the best way to do things. A truly collaborative system would tell me the requirements before I did the work. If there are special ways you want stuff entered, tell me before I enter it, not afterwards. How many times must we endure the indignity of typing in a long strong only to be told afterwards that it doesn't fit the machine's whims (more accurately, doesn't fit the whims of the programmer)?
Where else can this philosophy be applied? How about in the entering of new passwords, where after much thought you enter a carefully generated one, only to be told that it doesn't have enough characters, or lacks upper and lower case both, digits, or non-numerical characters, and of course when you supply these, then you will be told that that particular character is not allowed. Or how about the entry of phone numbers or dates where you are only told the proper format after you have entered it the way the entire world understands except for this computer program, whose programmers wanted it in a way that was the least amount of work for them?
Or how about .... Well, you get the idea.
How do we manage this change? Cast shame on systems that scold rather than collaborate. Insist on a people-centered design philosophy. Get rid of the term "human error." That term almost always really means "bad design," or such awful procedures that human error is almost guaranteed. Force people to do inhuman things and they will make errors. (Like not telling them how to do something the way you want until after they do it the way you don't want, so you can scold them.)
Error messages punish people for not behaving like machines. It is time we let people behave like people. When a problem arises, we should call it machine error, not human error: the machine was designed wrong, demanding that we conform to its peculiar requirements. It is time to design and build machines that conform to our requirements. Stop confronting us: Collaborate with us.
*****
Don Norman wears many hats, including Director of the newly formed program, Design at UC San Diego, cofounder of the Nielsen Norman group, professor (Harvard, UC San Diego, Northwestern, KAIST, Tongji), business exec (former VP at Apple, executive at HP, and now cofounder of a startup), on company boards and company advisor, and author of best-selling books on design: Emotional Design, Living with Complexity, and Design of Everyday Things. Learn more at jnd.org.