TUESDAY, FEBRUARY 28, 2006
I was reading an article today. It was nothing special, just telling us why normal people cannot/will not program (which I disagree with). However, it did have a quote that I found insightful:
In Don Norman's wonderful book "The Psychology of Everyday Things" (now called "The Design of Everyday Things" in paperback) he provides these "principles of good design" (at the end of Chapter 2):
Visibility. By looking, the user can tell the state of the device and the alternatives for action.
A good conceptual model. The designer provides a good conceptual model for the user, with consistency in the presentation of operations and results and a coherent, consistent system image.
Good mappings. It is possible to determine the relationships between actions and results, between controls and their effects, and between the system state and what is visible.
Feedback. The user receives full and continuous feedback about the results of actions.
I haven't read the book, but let me give some quick examples about what these mean.
Visiblilty - The user doesn't have to perform any action to determine what is going on currently. It is obvious that a page is loading, or a file is being downloaded, or database record is being processed. Also, if the user is able to do something besides said action, those actions are present on the same "layer" as the current action (ie, not hidden beneath a menu).
Good mapping - This is extreemely important for web development. The user needs to know exactly what is going to happen if he clicks a link or submits a form. In some ways it is more important for a web-app than a normal application because the modified data is stored on a server which the user doesn't have access to.
Also, making sure that all the green buttons with an arrow do the same thing. Consistency is the key for usability. If I have a menu on the left side, I cannot just put it at the top for some pages if I run out of room.
Feedback - I am sure this is important for websites, but I cannot think of a good example right now (I can think of some, but they are too obvious). It is important for standalone applications, a great example is the mouse cursor changing to an hourglass when a process is executing.
Anyway, I am always looking for ways to make my applications (usually web-based) more user friendly. I have come a long way--mostly due to the fact that Infinity Technologies' applications were for very computer-illerate people. But even still, I often find myself taking a path that is obvious for a computer-person but convoluted (or confusing) for most people. A good example is a newletter signup form. *I* am inclined to just put a textbox up with a submit button (maybe say "Email:" next to it). I do this because if I were to go to a website asking to sign me up, I would know what to expect.
However, lots of people won't do it because it isn't obvious enough (not to their discredit). Having something like "Enter your email address in the box below to receive email updates." is much better. Then have the input box have large type and enough room to fit a standard address. Also, make sure the submit button is clear (eg, have it say "Subscribe" or "Register" rather than an image with a circle in it).
Paying some attention to the way a visitor sees your site makes all the difference. Don't assume that everyone intuitively knows what to do next.
There is a website that I like that discusses usablility issues, it is called flow|state. I have mentioned it before.
Posted by Chet at 6:18 PM
Post a Comment
Feel Free To Share Your Thoughts
You can use [b], [u], [i], and [url]
More About Me
Philosophy for Understanding Theology
20,000 Leagues Under the Sea
Settlers of Catan
Misc Arduino projects