Usability

Usability refers to the interaction between the user of the computer system and the system itself. Very often this interaction is through a graphical user interface (GUI). There are several points to bear in mind when designing a user interface (from our textbook):

  1. Always test with real users
  2. Base UI designs on use cases
  3. Ensure that sequence of actions to complete a task are as simple as possible
  4. Ensure that the user knows what he or she should do next and what will happen
  5. Give good feedback, especially error messages
  6. Ensure that the user can either get out, go back or undo an action
  7. Ensure that response time is adequate
  8. Use understandable labels
  9. Ensure that UI is neat and uncluttered
  10. Consider different groups of users
  11. Provide necessary help
  12. Be consistent

Principles (www.sylvantech.com/~talin/projects/ui_design.html):

  1. The principle of user profiling - know who your user is
  2. The principle of metaphor - borrow behaviors from systems familiar to you
  3. The principle of feature exposure - let the user clearly see what features are available
  4. The principle of coherence - the behavior of the program should be internally and externally consistent
  5. The principle of state visualization - changes in behavior should be reflected in the appearance of the program
  6. The principle of shortcuts - provide both concrete and abstract ways of getting a task done
  7. The principle of focus - some aspects of the UI attract more attention than others
  8. The principle of grammar - a user interface is a language - know what the rules are
  9. The principle of help - understand the different kinds of help a user needs
  10. The principle of safety - let the user develop confidence by providing a safety net
  11. The principle of context - limit user activity to one well-defined context unless there's a good reason not to
  12. The principle of aesthetics - create a program of beauty
  13. The principle of user testing - recruit help in spotting the inevitable defects in your design
  14. The principle of humility - listen to what ordinary people have to say

Usability heuristics (www.useit.com/papers/heuristic/heuristic_list.html):

  1. Visibility of system status
  2. Match between system and the real world
  3. User control and freedom
  4. Consistency and standards
  5. Error prevention
  6. Recognition rather than recall
  7. Flexibility and efficiency of use
  8. Aesthetic and minimalist design
  9. Help users recognize, diagnose and recover from errors
  10. Help and documentation

First principles of user interface design (www.asktog.com/basics/firstPrinciples.html):

  1. Anticipation - user's want and needs
  2. Autonomy - give the user some breathing space - use status mechanisms - keep status information up to date and in easy view
  3. Color blindness - use secondary cues when color is used
  4. Consistency - levels - differences - user expectations - defaults
  5. Efficiency of the user - user's productivity, not the computer's - keep user occupied - maximize everyone's efficiency - breakthroughs in architecture, not UI - tight help messages - keywords first
  6. Explorable interfaces - well-marked roads and landmarks - stable perceptual cues - make actions reversible - always allow undo - always allow a way out, but make it easy to stay in
  7. Fitt's law - time to acquire a target is a function of distance to and size of a target
  8. Human interface objects - seen, heard, touched - standard interaction and behavior - understandable, self-consistent and stable
  9. Latency reduction - reduce user's experience of delay - make it faster
  10. Learnability - limit trade-offs
  11. Use of metaphors - let users grasp the conceptual model - appeal to user's senses
  12. Protect user's work - ensure no loss of work due to user error
  13. Readability - good contrast for text - font sizes large enough
  14. Track state - where user is, etc. - transaction service session control
  15. Visible navigation - avoid invisible navigation