I’m the first to admit that I don’t think about User Interface design. In fact, I’m of the mantra that everyone should be as technically savvy as I am. This changed recently when I worked with a newly hired UI person at Care2. A lot of the stuff that seemed like annoying “features” made a lot of sense in the terms she used.
This experience has led me to search around the web for articles on UI techniques. I found an excellent article at Joel on Software called User Interface Design for Programmers. This is the best hands on article I’ve seen so far. Here is a brief overview for those too busy to read the entire article:
A user interface is well-designed when the program behaves exactly how the user thought it would.
If you think about it this makes a whole lot of sense. If you can learn one thing from this article this is it. Users get frustrated when they encounter programs that don’t perform the way the expect them too. This is why Windows users hate Macs and vice versus, because the UI doesn’t perform the way they are used to UI’s performing.
Every time you provide an option, you’re asking the user to make a decision.
Programmers love to make extremely flexible programs. The author makes a good point about providing options: Most users do not change the default settings and when they do there is no propagation of those changes in settings. This means even if user does change their settings they have to make those same changes on every computer they use.
Good computer UI uses affordances
Simply put make your controls appear to be controls. Doors have large bars that afford to be pushed. You should make the buttons and text on your site afford to be pushed.
Users don’t have the manual, and if they did, they wouldn’t read it.
This is very important for everyone to remember. How many user manuals have you read? I can honestly say I’ve read none. I’ve read tech books, etc., but I have not read a user manual per se. Your program should work as expected and with very little effort on the user’s part.
The articles is much more in depth with perfect real world examples. There are lots of big pictures as well. The article is overall thoughtful and well written. If you program applications for a living this is a must read.