User Interface Design 1. Recognize the diversity of your users a. Develop user profiles, considering i. Age, ii. Technical knowledge, iii. Specialty if internal users iv. First language v. Level of English vi. Visual and other handicaps vii. Environmental factors – gloves, goggles, etc. b. There are at least 3 kinds of users re frequency and they may require a different or structured approach. i. Novice of first time users ii. Knowledgeable but intermittent users iii. Power users Examples: Printing in Word; Google searches c. Develop task profiles i. Which actions are most frequent? ii. What are the atomic actions? iii. Which actions often occur and the same sequence and should be grouped? iv. Which ones are so frequent that there should be a button? Ctlkey? Pull-down menu? d. Consider a matrix of users (by role) vs action and fill in with frequency. Optimize for the most frequent actions. e. Choose interaction styles i. 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 ii. Menu selection Easily learned Supports a step-by-step structure with dialog boxes Reduces keystrokes Annoying for common tasks Takes up screen real estate iii. 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 iv. Command language Flexible Mostly for power users v. Natural language Heavy technical load Some speech is hard to recognize – e.g. unrestricted vocabulary, background noise, accents. 2. Golden rules for interface design a. Be consistent b. Give shortcuts to power users c. Offer informative feedback d. Design dialog boxes to yield closure e. Promote error prevention f. Offer simple error correction and easy reversal of actions g. Make users feel as though they are in control h. Reduce the load on user’s short term memory i. Involve users in the design j. Test for usability, efficiency, correctness. 3. Error prevention a. Make the instructions clear and complete. Assume your users have not used your interface before. b. 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 c. 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. d. If the action has more than one step, coach the user through the sequence (with a completed message at the end) e. Help the user if a command is not complete – e.g. a search for “.ed” f. As appropriate, make sure earlier data/steps are completed before continuing. g. Use standard icons as appropriate. 4. Organize data which is displayed a. Refer to the same item consistently (e.g. abbreviations, capitalization, etc.) b. 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) c. 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 d. For data entry the display should match the paper forms or the normal method of conducting an interview. e. Reduce the memory load on a user – do not require information from one screen on a subsequent one. f. Make it as easy as possible (& fewest keystrokes) to enter data. g. For multiple screen interfaces, number the screens/steps. h. Use graphical displays of measure (sliders, etc.) where appropriate. i. 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 http://www.useit.com/papers/heuristic/heuristic_list.html You should review his list. Optionally, Jared Spool, another great usability guru, wrote a fascinating article at http://www.uie.com/articles/information_interplay/ 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.