User Interface Readings for Software Professionals

References:

  1. Willian Strunk Jr. and E.B. White, The Element of Style 4th Edition, Allyn amp; Bacon, 1979.
  2. Ben Sheneiderman, Design the User Interface, 3rd Edition. Addison-Wesley, 1998.
  3. Donald Norman, The Design of Everyday Things
  4. Edward R. Tuftes, Visual Explanation, New 2ed Edition. Graphics Press, 2001.
  5. Edward R. Tuftes, The Visual Display of Quantative Information, 2ed Edition. Graphics Press, 2001.
  6. Jakob Nielsen, Ten Usability Heuristics.
  7. Jakob Nielson, Designing Web Usability New Riders Publishing, 2000.
  8. Anderew B. King, Speed up your Site New Riders Publishing, 2003.
  9. Douglas K. Van Duyne, James A. Landay, Jason I. Hong, The Design of Sites Addison-Wesley, 2003.
  10. Bruce Tognazzini, First Principles of Interaction Design.
  11. Wilbert O. Galitz, Essential Guide to User Interface Design John Wiley amp; Sons, Inc., 1997.

Recently I gained an interest in user interface design. I read some books and found them helpful. After years of fun in system interfaces, server programming and database design, now I know user interfaces design is also such an interesting area.

Following are my favorite passages with added short headers.

1. Trust the user's intelligence

No one can write decently who is distrustful of the reader's intelligence, or whose attitude is patronizing. (The Element of Style, page 84)

2. Place yourself in the background

Write in a way that draws the readers attention to the sense and substance of the writing, rather than to the mood and temper of the author. If the writing is solid and good, the mood and temper of the writer will eventually be revealed and not at the expense of the work. (The Element of Style, page 70)

3. Work from a suitable design

Before beginning to compose something, gauge the nature and extent of the enterprise and work from a suitable design. ... You raise a pup tent from one sort of vision, a cathedral from another. (The Element of Style, page 70)

4. Revise and rewrite

Above all, do not be afraid to experiment with what you have written. Save both the original and the revised version; you can always use the computer to restore the manuscript to its original condition, should that course seem best. (The Element of Style, page 72)

5. Lessons from everyday things

  1. The UI should project a sound system model.
  2. Keep the context information for the user.
  3. Leave only the right actions for users to do.
  4. Give the user feedback, consistently and promptly.
  5. Make it easy to recover from error.
    (Donald Norman, The Design of Everyday Things)

6. Know thy user

No one would argue against this principle, but many designers assume that they understand the users and users' tasks. Successful designers are aware that other people learn, think, and solve problems in different ways. (Design the User Interface, page 67)

7. Eight golden rules of interface design

  1. Strive for consistency. Consistent sequence of actions should be used in similar situation; identical terminology should be used in prompts, menus, and help screens; and consistent color, layout, capitalization, fonts, and so on should be employed throughout.
  2. Enable frequent users to use shortcuts. As the frequency of use increases, so do the user's desires to reduce the number of interactions and to increase the pace of interactions. Short response times and fast display rates are other attractions for frequent users.
  3. Offer informative feedback. For every user action, there should be system feedback. For frequent and minor actions, the response can be modest, whereas for infrequent and major actions, the response should be more substantial.
  4. Design dialog to yield closure. Sequences of actions should be organized into groups with a beginning, middle, and end. The informative feedback at the completion of a group of actions gives operators the satisfaction of accomplishment, a sense of relief, the signal to drop contingency plans and options from their minds, and an indication that the way is clear to prepare for the next group of actions.
  5. Offer error prevention and simple error handling. As much as possible, design the system such that users cannot make a serous errors; for example, prefer menu selection to form filling and do not allow alphabetic character in numeric entry fields. If users make an error, the system should detect the error and offer simple, constructive, and specific instructions for recovery. For example, the user should not have to retype an entire command, but rather should need to repair only the faulty part. Erroneous actions should leave the system state unchanged, or the system should give instructions about restoring the state.
  6. Permit easy reversal of actions. As much as possible, actions should be reversible. This feature relieves anxiety, since the users knows that errors can be undone, thus encouraging exploration of unfamiliar options.
  7. Support internal locus of control. Experienced operators strongly desire the sense that they are in charge of the system and that the system respond to their actions. Surprising system actions, tedious sequence of data entries, inability or difficulty in obtaining necessary information, and inability to produce the action desired all build anxiety and dissatisfaction.
  8. Reduce short-term memory load. The limitation of human information processing in short-term memory (the rule of thumb is that humans can remember "seven-plus or minus-two chunks" of information) requires that display be kept simple, multiple page displays be consolidated, window-motion frequency be reduced, and sufficient training time be allotted for codes mnemonics, and sequences of actions. Where appropriate, online access to command-syntax forms, abbreviations, codes, and other information should be provided.
    (Design the User Interface, page 74)

8. Write scenarios

Scenario writing helps to bring common understanding of design goals and is useful for managerial and customer presentation. (Design the User Interface, page 118)

9. Transform in the design process

Design is a process ...
The process is radically transformational ...
Design intrinsically involves the discovery of new goals. (Design the User Interface, page 99)

10. Prefer breadth in menu tree design usage

Several empirical studies have dealt with the depth-breath tradeoff, and the evidence is strong that breath should be preferred over depth. In fact, there is reason to encourage designers to limit menu tree to three levels: when the depth goes to four or five, there is a good chance of users becoming lost or disoriented. (Design the User Interface, page 118)

11. Form-filling design guideline

  1. Meaningful title
  2. Comprehensive instruction
  3. Logical grouping and sequencing of fields
  4. Visually appealing layout of the form
  5. Familiar field labels
  6. Consistent terminology and abbreviations
  7. Visible space and boundaries for data-entry fields
  8. Convenient cursor movement
  9. Error correction for individual characters and entry fields
  10. Error prevention
  11. Error messages for unacceptable values
  12. Optional fields clearly marked
  13. Explanatory messages for fields
  14. Completion signal
    (Design the User Interface, page 262)

12. Measure user performance

Once systems are released, developers perform continuous performance evaluations by interviews or surveys, and by logging user performance in a way that respects the privacy of users. If you are not measuring, you are not doing human factors! (Design the User Interface, page 150)

13. Log usage

Logs of usage provide valuable data about the task sequences and frequencies. (page 118) Software logs should capture the frequency of use for each page, or at least for each component of a database. (Design the User Interface, page 579)

14. Test and refine

Extensive testing and iterative refinement are necessary parts of every development project. (Design the User Interface, page 89)

15. Think clearly

Many of our examples suggests that clarity and excellence in thinking is very much like clarity and excellence in the display of data. When principles of design replicate principles of thought, the act of arranging information becomes an act of insight. Visual Explanation, page 9)

16. Use the smallest effective difference

Make all visual distinctions as subtle as possible but still clear and effective.

Relevant to nearly every display of data, the smallest effective difference is the Occam' razor ("What can be done with fewer is done in vain with more") of information design. And often the happy consequence of an economy of means is a graceful richness of information, for small differences allow more differences.

Minimal contrasts of the secondary elements (figure) relative to the negative space (ground) will tend to produce a visual hierarchy, with layers of inactive background, calm secondary structure, and notable content. And, conversely, when everything (background, structure, content) is emphasized, nothing is emphasized; the design will often be noisy, clustered, and informationally flat.

Based on universal ideas of figure-ground, large-motion-covers-small motion, hierarchical layering, and content-driven design, the strategy of the smallest effective difference applies to all display technologies ... (Visual Explanation, page 73, 74)

17. Let information be the interface

Right from the start, the opening panel shows the scope of information make available. Only a small part of the screen is devoted to computer administration ... Free of icons, decorative logotypes, and navigation apparatus, about 90% of the images is substance, a contextual overview describing the reservoir of data. In an architecture of content, the information becomes the interface. Rather than sequentially stacking up little bits of data to be unveiled gradually, this flat interface surfaces 45 options at once, distribute the information in space rather than time. (Visual Explanation, page 146)

18. Be sensitive to the information

Information-sensitive designs are exacting and laborious, requiring a deep appreciation of the particular content at hand. (Visual Explanation, page 148)

19. Measure the informational performance of a screen

Direct measurement of content and non-content provides a quantative assessment of the interface; these measures of the informational performance of a screen include:

  1. The proportion of space on the screen devoted to content, to computer administration, and to nothing at all;
  2. character counts and measures of typographic density (making comparison with printed material as well as computer interfaces);
  3. the number of computer commands immediately available (more are better, if clearly but minimally displayed).

Applied thoughtfully, these measures may help to restrain the spatial imperialism of operating systems and of interface-metaphors -- and thereby enhance the richness of content displayed. (Visual Explanation, page 150)

20. Draw attention to substance

Graphical display should ... induce the viewer to think about the substance rather than about methodology, graphic design, the technology of graphic production, or something else ... (Visual Explanation, page 13)

21. Excellence

  1. Graphical excellence consists of complex ideas communicated with clarity, precision, and efficiency.
  2. Graphical excellence is that which gives to the viewer the greatest number of ideas in the shortest with the least ink in the smallest space.
  3. Graphical excellence is nearly always multivariate.
  4. And graphical excellence requires telling truth about data.
    (Visual Explanation, page 51)

22. Editing and redesign

T. S. Eliot emphasized the "capital importance of criticism in the work of creation itself." Probably, indeed, the larger part of the labor of an author in composing his work is critical labor; the labor of sifting, combining, constructing, expunging, correcting, testing: this frightful toil is as much critical as creative. (Visual Explanation, page 100)

23. More substance, less junks

  1. For non-data-ink, less is more.
  2. For data-ink, less is bore.
    (Visual Explanation, page 175)

24. Clearly portray complexity

What is to be sought in designs for the display of information is the clear portrayal of complexity. Not the complication of the simple; rather the tasks of the designer is give visual access to the subtle and difficult -- that is. (Visual Explanation, page 191)

25. Ten usability heuristics

  1. Visibility of system status: The system should always keep users informed about what is going on, through appropriate feedback within reasonable time.
  2. Match between system and the real world : The system should speak the users' language, with words, phrases and concepts familiar to the user, rather than system-oriented terms. Follow real-world conventions, making information appear in a logical order.
  3. User control and freedom: Users often choose system functions by mistake and will need a clearly marked "emergency exit" to leave the unwanted state without having to go through an extended dialogue. Support undo and redo.
  4. Consistency and standards: Users should not have to wonder whether different words, situations, or actions mean the same thing. Follow platform conventions.
  5. Error prevention: Even better than good error messages is a careful design which prevents a problem from occurring in the first place.
  6. Recognition rather than recall: Make objects, actions, and options visible. The user should not have to remember information from one part of the dialogue to another. Instructions for use of the system should be visible or easily retrievable whenever appropriate.
  7. Flexibility and efficiency of use: Accelerators -- unseen by the novice user -- may often speed up the interaction for the expert user such that the system can cater to both inexperienced and experienced users. Allow users to tailor frequent actions.
  8. Aesthetic and minimalist design: Dialogues should not contain information which is irrelevant or rarely needed. Every extra unit of information in a dialogue competes with the relevant units of information and diminishes their relative visibility.
  9. Help users recognize, diagnose, and recover from errors: Error messages should be expressed in plain language (no codes), precisely indicate the problem, and constructively suggest a solution.
  10. Help and documentation: Even though it is better if the system can be used without documentation, it may be necessary to provide help and documentation. Any such information should be easy to search, focused on the user's task, list concrete steps to be carried out, and not be too large.
    (Jakob Niesen web site)

26. Information architecture

Instead, the site should be structured to mirror the users tasks and their views of the information space. (Designing Web Usability, page 15)

27. Less navigation, more information

Unfortunately, we see many sites that spend more screen space on navigation than they do on information ... Navigation is a necessary evil that is not a goal in itself and should be minimized. (Designing Web Usability, page 18)

As a rule of thumb, content should account for at least half of a page's design, and preferably closer to 80 percent. Navigation should be kept below 20 percent of the space for destination page, although navigation options may account for much higher proportion of home pages and intermediate navigation pages. (page 22)

28. Show all alternatives for navigation

A navigation interface needs to show all the available alternatives at the same time so that users can make an informed decision as to which option will satisfy their needs best. Not only it's annoying to have to move the mouse around to see options, it is outright user-hostile to require users to keep the previously seen options in their short-term memory while they consider additional choices. (Designing Web Usability, page 196)

29. Use whitespace

As with all layout, whitespace is not necessarily useless, and it would be a mistake to design overly compact page. If you have the choice between separating two segments of content by a heavy line or by some whitespace, it will often look better to use the whitespace solution, which will typically also download faster. (Designing Web Usability, page 18)

30. Simplicity wins

A general principle for all user interface design is to go through all you design elements and remove them one at a time. If the design work as well without a certain design element, kill it. Simplicity always wins over complexity, especially on the Web where every five bytes saved is a millisecond less download time. (Designing Web Usability, page 22)

31. Be fast, please

Every web usability study I have conducted since 1994 has shown the same thing: Users beg us to speed up the page downloads. In the beginning my reaction was along the lines of "Let's just give them better design, and they will be happy to wait for it." I have since become a reformed sinner believing that fast response times are the most important design criterion for web pages; even my skull isn't thick enough to withstand consistent user pleas year after year.

Research on a wide variety of hypertext system has shown that users need response times of less than one second when moving from one page to another if they are to navigate freely through an informational space. Traditional human factors research into response time also shown the need for response time faster than one second.

  1. One tenth of a second (0.1) is about the limit for having the user feel that the system is reacting instantaneously, meaning that no special feedback is necessary except to display the result.
  2. One second (1.0) is about the limit for the user's flow of thought to remain uninterrupted, even though the user will notice the delay. Normally, no special feedback is necessary during delays of more than 0.1 but less than 1.0 second, but the user does lose the feeling of operating directly on the data.
  3. Ten seconds (10.0) is the limit for keeping the user's attention focused on the dialogue. For longer delays, users turns to other tasks while waiting for the computer to finish.

If the same action always takes the same time, the user will learn what to expect. (Designing Web Usability, page 42)

32. Speed must be overriding criteria

Slow response times often translate directly into a reduced level of trust, and they always causes a loss of traffic as users take their business elsewhere.

Considering the fundamental facts in both human factors and computer networking, there is only one conclusion: Web pages must be design with speed in mind. In fact, speed must be the overriding criterion.

(Designing Web Usability, page 45-46)

33. Avoid complex tables

Complex table often take a long time to render, so to cut down on the complexity of your tables, split the information into several tables. In particular, the top table should be simple and fast to render. (Designing Web Usability, page 50)

34. Use one style sheet

Use a single style sheet for all the pages on your site ... One of the main benefits of style sheet is to ensure visual continuity as the user navigates your site.

Always use linked style sheet instead of embedded styles. Only by referencing an external file will you get the maintenance benefit of being able to update the look of your entire site with a single change. Also, by pulling style definition of your pages, you make them smaller and faster to download. If you use a single style sheet for your entire site, that file will be a single download once and for all. (Designing Web Usability, page 81)

35. Use specialized terminology on intranet

[E]employees perform better when more specialized terminology is used; precise language helps them understand exactly what is being discussed. (Designing Web Usability, page 266)

36. Efficiency, memorability, error reduction

For intranet design, efficiency, memorability, and error reduction become the most important usability attributes. Because employees may use the intranet every day, they will soon become experienced users, and the efficiency with which they can navigate the intranet and get their work done will determine their productivity. (Designing Web Usability, page 266)

37. Guide line for web page speed

  1. Load under 8.6 seconds (non-incremental display).
  2. Decrease these load times by 0,5 to 1.5 seconds for dynamic transactions.
  3. Minimize the number of steps needed to accomplish tasks -- to avoid cumulative frustration from exceeding user time budgets.
  4. Loader under 20 to 30 seconds (incremental display) with useful content within 2 seconds.
  5. Provide performance information and linear feedback.
  6. Equalize page download times to minimize delay variability.
    (Speed Up Your Site, page 25)

38. Avoid cutting-edge technology

Cutting-edge technology gets in the way of user goals. Research shows that users don't want it; they just want to get their information.

Use a simple layout with minimal distractions, offer interesting well-chunked and delineated content, and make navigation and performance transparent. (Speed Up Your Site, page 36,37)

39. Use fixed layout option for tables

Microsoft claims a 100-fold improvement using the fixed layout option of Internet Explorer 6+. The fixed algorithm allows the table to be rendered progressively to the screen, one row at a time. (Speed Up Your Site, page 75)

40. Make the Back and Forward buttons work

The browser's built in Back and Forward buttons and LOCATION BREAD CRUMB (K6) are both mechanisms that give customers easy exits on the web. (The Design of Sites, page 69)

41. Start with low-fidelity prototype

Research shows that designers who work out conceptual ideas on paper tends to iterate more and explore the design space more broadly, whereas designers using computer-based tools tend to take only one idea and work it out in detail.

Nearly everyone of the designers we have talked to has observed that the discussion is qualitatively different when people are presented with a high fidelity prototype. Clients often respond with comments like, "I do not like your color scheme," or "These two buttons need to be aligned correctly." When presented with a low-fidelity prototype, however, clients are more likely to say something like "These labels on the navigation bar do not make sense to me," or "You're missing a link to the shopping cart here on the page. In other words, with low-fidelity prototypes, which lack irrelevant details like color, font, and alignment to distract the eye, people focus on the interaction and on the overall site structure. (The Design of Sites, page 77)

42. Put important stuff "above the fold"

On the web, above the fold refers to what your customers can see on your Web page without having to scroll down. Visitors do not always realize that they can scroll down, or that there is more information below. Therefor it makes sense to put all the vital links and content at the top. (The Design of Sites, page 508)

43. Funnel customer to finish tasks

Customer often need to complete highly specific tasks on web sites, but pages with tangential links and many questions can prevent them from carrying out these tasks successfully.

  1. Minimize the number of steps required to complete a task.
  2. Provide a process bar to let customers know where they are in the process.
  3. Remove unnecessary links and content while reinforcing the brand.
  4. Use pop-up windows to provide extra information, without leading visitors out of the process funnel.
  5. Make sure the back button always works.
  6. Always make it clear how to proceed to the next step.
  7. Prevent errors where possible, and provide error messages whenever errors do occur.
    (The Design of Sites, page 462)

44. Optimize user productivity, not the computer's

Look at the user's productivity, not the computer's. Bring to the user all the information and tools needed for each step of the process. Any time the user must wait for the system to respond before they can proceed, money is being lost. (Tog: First Principles of User Interface Design, page 36)

45. Characteristics of user interface (selected)

  1. Provide visual appeal by following these presentation and graphic design principles
    - Provide meaningful contrast between screen elements.
    - Create groupings.
    - Align screen elements and groups.
  2. A system should look, act, and operate the same throughout.
    - The function of elements should not change.
    - The position of standard elements should not change.
  3. The user must control the interaction
    - Actions should result from explicit user requests.
    - Action should be performed quickly.
    - Action should be capable of interruption or termination.
  4. The context maintained must be from the perspective of the user.
  5. Avoid modes since they constrain the actions available to the user.
  6. Minimize eye, hand, and other control movements.
  7. Make common actions simple at the expense of uncommon actions made harder.
  8. Permit the user to focus on the task or job, without concern for the mechanics of the interface. Working, and reminders of working, inside the computer should be invisible to the user.
  9. People's requirements always take precedence over technical requirements.
    (Essential Guide to User Interface Design, page 35)

46. Develop a mental model

The goal of the graphical system designer is to facilitate the development of a useful mental model of the system by presenting a meaningful conceptual model of the interface. Mental models in using a system are derived from the system's behavior, including factors such as the system inputs, actions, outputs (including screens and messages), and its feedback and guidance characteristics. Documentation and training also play a formative role. (Essential Guide to User Interface Design, page 80)

47. Good screen design (selected)

  1. Always assumes a light source is in the upper-left corner of the screen. (page 124)
  2. Provide an obvious starting point in the screen's upper-left corner. (page 95)
  3. Maintain a top-to-bottom, left-to-right flow. (page 120)
  4. Organize for top-to-bottom scanning. (page 120)
  5. Align data into columns. (page 160)
  6. Create unity by
    - Using similar sizes, shapes, or colors for related information.
    - Leaving less space between elements of a screen than the space at the margins. (page 103)
  7. Minimize the alignment points, especially horizontal and columnar. (page 105)
    - Provide standard grids of horizontal and vertical lines to position the elements.
  8. Use rules and borders sparingly.
    Essential Guide to User Interface Design, page 95)