The user interface, or UI, is how a user interacts with an application. The application doesn’t matter if it’s a computer application, a mobile phone app, or even your microwave oven.
The study of how people interact with computes/apps/etc is called Human Computer Interaction, or HCI.
In his book on interface design, Theo Mandel [Man97] coins three golden rules:
- Place the user in control.
- Reduce the user’s memory load.
- Make the interface consistent.
Place the user in control
It is said a good UI is much like a joke. If you have to explain it, it isn’t good. Therefore it should be intuitive to your user.
Don’t make the user do unnecessary steps. Years ago when the military was building applications, there was a rule that you had to be able to get to any other screen in 3 clicks or less. No unnecessary steps. (we’ll revisit this in a minute.)
Provide different ways to do something. For example CTRL-P, or File > Print. Both do the same thing, but allow the user to choose what is easier for them.
Make it so steps are undoable (CTRL-Z).
Casual users don’t need to worry about technical aspects. This is especially true during setup an configuration. WordPress is one of the most common and easiest blogging software apps to install because of their famous 5-minute install, which in reality only takes about 90 seconds. (Almost) No technical skills are needed.
Reduce the User’s Memory Load
Remember the military example from above. They don’t want soldiers, under fire, having to try to recall the 15 steps it takes to load the next screen, or taking a long path to get there. Everything had to be readily accessible.
Establish meaningful defaults. – Remember WordPress from before, for most people it works out of the box. Anyone can add to it, but out of the box, it does 90% of what you need, maybe more.
Define intuitive shortcuts. CTRL-P makes sense to print. ALT-SHIFT-L-P (for line printer) doesn’t.
Define the interface based on a real world metaphor. This can be taken to an extreme, and you should fix things that are broken in the real world, but being familiar goes a long way.
Disclose information in a progressive fashion. The interface should be organized hierarchically. That is, information about a task, an object, or some behavior should be presented first at a high level of abstraction. More detail should be presented after the user indicates interest.
Make the Interface Consistent
I remember reading about a software that had 11 different ways to exit the application based upon where you were in it. That is not easy to use.
The vi editor under Unix is very powerful, but hard/confusing to use if you are not a power user.
Allow the user to put the current task into a meaningful context. Many interfaces implement complex layers of interactions with dozens of screen images. It is important to provide indicators (e.g., window titles, graphical icons, consistent color coding) that enable the user to know the context of the work at hand. In addition, the user should be able to determine where he has come from and what alternatives exist for a transition to a new task.
Maintain consistency across a complete product line. A family of applications (i.e., a product line) should implement the same design rules so that consistency is maintained for all interaction.
If past interactive models have created user expectations, do not make changes unless there is a compelling reason to do so. – Think about how hard it was to learn to use Office 2007 if you were used to a previous version. It was a HUGE gamble, but one they had to take.
Introduction to User Interface Design was originally found on Access 2 Learn