One of my favorite things to do is observe how people use software. This is partly self-interest since user interface development is a part of my job and watching people use software makes my job easier.
One of the biggest difficulties can be summarized thusly: Most people do not expect software to ask them questions.
One case illustrates the point. A friend of the family, a doctor, needed her OS reinstalled. During the installation process she had to leave before providing a logon password. I chose the simplest password I could think of (“password”) and set the windows password hint to “your password is password”.
A few days later I received a call wherein she indicated that she was unable to logon to her computer. She had even clicked on the “click here for your password hint” link which displayed the hint “your password is password”. This doctor was somewhat more computer savvy than most – she conducted business remotely over her PC and had been using software for years.
As soon as she re-read the password hint to me over the phone (by then I’d forgotten about it) she immediately said, “Oh! Silly me…” and proceeded to logon using “password” as her password.
This problem spans nearly every level of computing expertise. I’ve seen it in first time users, teenagers, adults, programmers, attorneys, doctors and, on at least one occasion, computer science professors.
It’s difficult because it is nearly impossible to write software that does much of anything without, at some point, needing to ask the user a question.
Developers have tried to approach this problem in a variety of ways. With a text based user interface there’s the prompt that must be answered to proceed. But often user’s aren’t expecting to be prompted. So they start the program, wait a few seconds, then switch to something else. They’re usually quite annoyed to discover, possibly hours or days later, that the program hasn’t done anything because it is waiting on the user to answer a question.
With graphical user interfaces there are several attempts to address the issue. There’s the famous popup (formerly known as a modal dialog box). Users find popups annoying and they suffer from the same problem as text based prompts.
There’s the “flashing taskbar icon” wherein Windows tries to alert users that a program needs their attention. The major benefit of this approach is that it doesn’t interrupt the user thereby reducing user frustration. The downside to this approach is that users will often fail to see the flashing icon.
There are other more exotic approaches: use of audio, video, biometric interfaces, etc… As sensors become cheaper and more ubiquitous these approaches will probably gain traction as they provide a way for software to get answers to its questions without asking users.
In a sense this problem arises from the general purpose nature of the personal computer. Most tools that people use are capable of only a limited number of uses. It’s rare for a tool to have to ask you a question before it can be used (imagine a hammer asking you “how hard do you want to hit this nail?”). Tools that require answers to more than one question are rarer still. Software turns this on its head as it’s rare to find a software program that needs you to answer at most 1 questions for it to be usable.
Until computers can read minds, something us humans have yet to perfect, I think this problem will only be solved by incorporating basic computer literacy into the education that everyone receives. Basic computer literacy must include creating the expectation that computers will ask users questions.