Users are not Engineers

I think for some engineers, the greatest problems in an engineer’s life are due to the simple fact that most people are not engineers. And that is not to say that engineers are better people, despite the fact that some do believe this. Engineers just think in components, systems, and solutions. That is to say, when presented with a problem the engineer is more interested in the how, why, and solution, rather than just the solution on its own.

A good example of this is the following situation, an engineer named Henry has created an application that loads massive amounts of data and presents it to the user in a simple and intuitive way. Needless to say, his application is a hit and people are dying to use it. However, when importing the data for the first time, the user is asked to specify the data file and two optional fields, which if filled in can not contain any white space. One of these fields, is label “Name.” When this field has any white space put in it, an error message of “All fields must have valid Oracle identifiers” is returned.

To anyone who has used an Oracle database system, this message is painfully clear. To an engineer who is not familiar with Oracle the problem is obviously that there is a limitation on the character set allowed in the name field. A quick search for what legal Oracle identifiers are will result in the proper knowledge learned. However, to other users, what are they left with?

These users are not stupid, they just come from a different mind set. They see an error, and wonder what they did wrong. Upon reviewing the information they entered they will conclude that they did nothing wrong. Nothing told them they could not use spaces in the name field. Names are just names and are non important information used to quickly identify things. However, in this system counterpoint is true. The name is special and specifically an Oracle identifier, but that was never relayed to the user and it is expected they know what an Oracle identifier is. The user is left in a lurch without any more information provided to them.

One might argue that the user could/should go and search for the information. The user possesses the skills to seek out this knowledge and correct themselves, so why don’t they? The simple answer is they don’t know what to look for. Understanding how computational systems work is not part of their daily life. If it were, they would be working in the IT industry. Chances are, they aren’t.

So the phrase “Oracle identifier” jumps out to engineers and not to most normal people. Those who do notice it, might still get lost searching for what its real meaning is. At that point, Henry is taking a chance that they know what Oracle means to his system and that if they do search for the information they end up at reading about database systems and not the Roman oracles who predicted the future.

This whole situation could be avoided by simply replacing the current error message with something along the following lines: “The name field can not contain spaces.” Better yet would be to have the field not use the label “name,” but “identifier.” The label “name” is too informal and doesn’t convey the strictness that “identifier” does. Also, when an error in the field is encountered, specifically stating all the requirements of the field would help the user not fall into yet another error. A good message could be, “The Identifier field can not contain any spaces or the characters {}[],. .”

This would allow Henry’s users to import their data and not fall into trouble with optional fields. Henry’s problem was not understanding that each person has knowledge specific to what they do and experience in life. Expecting users to extrapolate information is never a good practice. A simple exercise would be to sit back and take in your application from some one who is like my mother, who knows nothing about computers or computer systems. She is smart, intelligent, self educating, and she can run circles around me with knowledge on how to deal with people, but throw a computer error at her from a complex system and she is dead in the water calling me. So pretend your mother (or sister, brother, grandma, whoever) is using your system and reading your error messages. Would they understand them? Would they understand them if they knew nothing about the technologies your application uses?

Try to remember every problem is like a giant pit. One side is the user, the other side is the solution, and right in the middle is the problem. Engineers know how to build the bridge and users only know how to jump. Try not to make them jump so far.

  • Reddit
  • del.icio.us
  • Google Bookmarks
  • StumbleUpon
  • Technorati
  • Digg

2 Responses to “Users are not Engineers”

  1. Joe B said:

    Aug 24, 07 at 9:19 am

    It’s surprising how often this simple fact escapes those actually doing the development of an application.

    I, for one, am guilty of forgetting this simple fact more than once.

    Thanks for your insight!

  2. Justin T said:

    Aug 28, 07 at 3:18 pm

    It’s true that users are not engineer, but it’s also true that the more technical a user, the easier and further they will get in any application. Knowing the basis of how a directory path works in Windows, will help you understand when navigating through Unix via command line for the first time.

    The engineer should not be oblivious to the user’s viewpoint, but there are some assumptions the engineer has to make on the user’s technical level. If an engineer builds a software application for computer users, he would expect that the user knows basic computer skills such as navigating through windows, and how to open up an application. There is a gray area between which the engineer and the user meet, and that gray area should be shared knowledge. An Oracle exception is not part of the gray area, how to open an application, should be.


Leave a Reply