User Interface Design

  1. Recognize the diversity of your users
  2. Develop user profiles, considering
  3. Age,
  4. Technical knowledge,
  5. Specialty if internal users
  6. First language
  7. Level of English
  8. Visual and other handicaps
  9. Environmental factors – gloves, goggles, etc.
  10. There are at least 3 kinds of users re frequency and they may require a different or structured approach.
  11. Novice of first time users
  12. Knowledgeable but intermittent users
  13. Power users
    Examples: Printing in Word; Google searches
  14. Develop task profiles
  15. Which actions are most frequent?
  16. What are the atomic actions?
  17. Which actions often occur and the same sequence and should be grouped?
  18. Which ones are so frequent that there should be a button? Ctl-key? Pull-down menu?
  19. Consider a matrix of users (by role) vs action and fill in with frequency. Optimize for the most frequent actions.
  20. Choose interaction styles
  21. Direct manipulation – e.g. drag-and-drop, sliders, map manipulation
    May be hard to program
    Depending on users may be easy or hard to learn
    If AJAX then hard to recover
  22. Menu selection
    Easily learned
    Supports a step-by-step structure with dialog boxes
    Reduces keystrokes
    Annoying for common tasks
    Takes up screen real estate
  23. Form filling
    Easily learned
    Only possible method for text data
    Can provide assistance
    Can validate that form is completely filled in
    If filling in form from paper record, they should have the same layout
    Takes up screen real estate
    Leads to data ready to be updated/inserted in a database
  24. Command language
    Flexible
    Mostly for power users
  25. Natural language
    Heavy technical load
    Some speech is hard to recognize – e.g. unrestricted vocabulary, background noise, accents.
  26. Golden rules for interface design
  27. Be consistent
  28. Give shortcuts to power users
  29. Offer informative feedback
  30. Design dialog boxes to yield closure
  31. Promote error prevention
  32. Offer simple error correction and easy reversal of actions
  33. Make users feel as though they are in control
  34. Reduce the load on user’s short term memory
  35. Involve users in the design
  36. Test for usability, efficiency, correctness.
  37. Error prevention
  38. Make the instructions clear and complete. Assume your users have not used your interface before.
  39. Make the error messages clear (to users who did it wrong to start with); if you have a form, highlight or focus on the incomplete field
  40. If you are presenting a list of choices (radio buttons or drop down menu) make sure the list covers all possibilities and has no overlap among the choices; inform your user what to do if more than one answer is appropriate.
  41. If the action has more than one step, coach the user through the sequence (with a completed message at the end)
  42. Help the user if a command is not complete – e.g. a search for “.ed”
  43. As appropriate, make sure earlier data/steps are completed before continuing.
  44. Use standard icons as appropriate.
  45. Organize data which is displayed
  46. Refer to the same item consistently (e.g. abbreviations, capitalization, etc.)
  47. Display the data in a format which is consistent with the way users think about it. (e.g. all fields for an address go together)
  48. Make the display easy to read – neatly aligned, decimal points lined up, text left-aligned and numbers right-aligned, font face and size that are appropriate for your audience
  49. For data entry the display should match the paper forms or the normal method of conducting an interview.
  50. Reduce the memory load on a user – do not require information from one screen on a subsequent one.
  51. Make it as easy as possible (& fewest keystrokes) to enter data.
  52. For multiple screen interfaces, number the screens/steps.
  53. Use graphical displays of measure (sliders, etc.) where appropriate.
  54. Test for visually handicapped users, including color-blind users.

A good summary of basic principles, from Jakob Nielsen, one of the great usability gurus, is at
You should review his list.

Optionally, Jared Spool, another great usability guru, wrote a fascinating article at on the interplay between content, visual design and information architecture. Spool is local, btw, and if you ever have a chance to hear him talk at the Greater Boston ACM you should go – he is enormously amusing.

On the subject of gurus, the third person to llok out for is Ben Schneiderman, who litreally ‘wrote the book’ on usability.
Finally, Rong Tang at GSLIS specializes in usability and teaches courses about usability testing.