A look into the world



Download 9.4 Mb.
Page4/30
Date28.05.2018
Size9.4 Mb.
#52195
1   2   3   4   5   6   7   8   9   ...   30

Goal-oriented: "What kinds of things can I do with this program?"

  • Descriptive: "What is this? What does this do?"

  • Procedural: "How do I do this?"

  • Interpretive: "Why did this happen?"

  • Navigational: "Where am I?"

    The essay goes on to describe in detail the different strategies for answering these questions, and shows how each of these questions requires a different sort of help interface in order for the user to be able to adequately phrase the question to the application.


    For example, "about boxes" is one way of addressing the needs of question of type 1. Questions of type 2 can be answered with a standard "help browser", "tool tips" or other kinds of context-sensitive help. A help browser can also be useful in responding to questions of the third type, but these can sometimes be more efficiently addressed using "cue cards", interactive "guides", or "wizards" which guide the user through the process step-by-step. The fourth type has not been well addressed in current applications, although well-written error messages can help. The fifth type can be answered by proper overall interface design, or by creating an application "roadmap". None of the solutions listed in this paragraph are final or ideal; they are simply the ones in common use by many applications today.
    The principle of safety

    -- Let the user develop confidence by providing a safety net
    Ted Nelson once said "Using DOS is like juggling with straight razors. Using a Mac is like shaving with a bowling pin."
    Each human mind has an "envelope of risk", that is to say a minimum and maximum range of risk-levels which they find comfortable. A person who finds herself in a situation that is too risky for her comfort will generally take steps to reduce that risk. Conversely, when a person's life becomes too safe -- in other words, when the risk level drops below the minimum threshold of the risk envelope -- she will often engage in actions that increase their level of risk.
    This comfort envelope varies for different people and in different situations. In the case of computer interfaces, a level of risk that is comfortable for a novice user might make a "power-user" feel uncomfortably swaddled in safety.
    It's important for new users that they feel safe. They don't trust themselves or their skills to do the right thing. Many novice users think poorly not only of their technical skills, but of their intellectual capabilities in general (witness the popularity of the "...for Dummies" series of tutorial books.) In many cases these fears are groundless, but they need to be addressed. Novice users need to be assured that they will be protected from their own lack of skill. A program with no safety net will make this type of user feel uncomfortable or frustrated to the point that they may cease using the program. The "Are you sure?" dialog box and multi-level undo features are vital for this type of user.
    At the same time, an expert user must be able to use the program as a virtuoso. She must not be hampered by guard rails or helmet laws. However, expert users are also smart enough to turn off the safety checks -- if the application allows it. This is why "safety level" is one of the more important application configuration options.
    Finally, it should be noted that many things in life are not meant to be easy. Physical exercise is one -- "no pain, no gain". A concert performance in Carnegie Hall, a marathon, or the Guinness World Record would be far less impressive if anybody could do it. This is especially pertinent in the design of computer game interfaces, which operate under somewhat different principles than those listed here (although many of the principles in fact do apply).
    The principle of context

    -- Limit user activity to one well-defined context unless there's a good reason not to
    Each user action takes place within a given context -- the current document, the current selection, the current dialog box. A set of operations that is valid in one context may not be valid in another. Even within a single document, there may be multiple levels -- for example, in a structured drawing application, selecting a text object (which can be moved or resized) is generally considered a different state from selecting an individual character within that text object.
    It's usually a good idea to avoid mixing these levels. For example, imagine an application that allows users to select a range of text characters within a document, and also allows them to select one or more whole documents (the latter being a distinct concept from selecting all of the characters in a document). In such a case, it's probably best if the program disallows selecting both characters and documents in the same selection. One unobtrusive way to do this is to "dim" the selection that is not applicable in the current context. In the example above, if the user had a range of text selected, and then selecting a document, the range of selected characters could become dim, indicating that the selection was not currently pertinent. The exact solution chosen will of course depend on the nature of the application and the relationship between the contexts.
    Another thing to keep in mind is the relationship between contexts. For example, it is often the case that the user is working in a particular task-space, when suddenly a dialog box will pop up asking the user for confirmation of an action. This sudden shift of context may leave the user wondering how the new context relates to the old. This confusion is exacerbated by the terseness of writing style that is common amongst application writers. Rather than the "Are you sure?" confirmation mentioned earlier, something like "There are two documents unsaved. Do you want to quit anyway?" would help to keep the user anchored in their current context.


    The principle of aesthetics

    -- Create a program of beauty
    It's not necessary that each program be a visual work of art. But it's important that it not be ugly. There are a number of simple principles of graphical design that can easily be learned, the most basic of which was coined by artist and science fiction writer William Rotsler: "Never do anything that looks to someone else like a mistake." The specific example Rotsler used was a painting of a Conan-esque barbarian warrior swinging a mighty broadsword. In this picture, the tip of the broadsword was just off the edge of the picture. "What that looks like", said Rotsler, "is a picture that's been badly cropped. They should have had the tip of the sword either clearly within the frame or clearly out of it."
    An interface example can be seen in the placement of buttons -- imagine five buttons, each with five different labels that are almost the same size. Because the buttons are packed using an automated-layout algorithm, each button is almost but not exactly the same size. As a result, though the author has placed much care into his layout, it looks carelessly done. A solution would be to have the packing algorithm know that buttons that are almost the same size look better if they are exactly the same size -- in other words, to encode some of the rules of graphical design into the layout algorithm. Similar arguments hold for manual widget layout.
    Another area of aesthetics to consider is the temporal dimension. Users don't like using programs that feel sluggish or slow. There are many tricks that can be used to make a slow program "feel" snappy, such as the use of off-screen bitmaps for rendering, which can then be blitted forward in a single operation. (A pet peeve of this particular author is buttons that flicker when the button is being activated or the window is being resized. Multiply redundant refreshing of buttons when changing state is one common cause of this.)
    The principle of user testing

    -- Recruit help in spotting the inevitable defects in your design
    In many cases a good software designer can spot fundamental defects in a user interface. However, there are many kinds of defects which are not so easy to spot, and in fact an experienced software designer is often less capable of spotting them than the average person. In other cases, a bug can only be detected while watching someone else use the program.
    User-interface testing, that is, the testing of user-interfaces using actual end-users, has been shown to be an extraordinarily effective technique for discovering design defects. However, there are specific techniques that can be used to maximize the effectiveness of end-user testing. These are outlined in both [TOG91] and [LAUR91] and can be summarized in the following steps:


    • Set up the observation. Design realistic tasks for the users, and then recruit end-users that have the same experience level as users of your product (Avoid recruiting users who are familiar with your product however).

    • Describe to the user the purpose of the observation. Let them know that you're testing the product, not them, and that they can quit at any time. Make sure that they understand if anything bad happens, it's not their fault, and that it's helping you to find problems.

    • Talk about and demonstrate the equipment in the room.

    • Explain how to "think aloud". Ask them to verbalize what they are thinking about as they use the product, and let them know you'll remind them to do so if they forget.

    • Explain that you will not provide help.

    • Describe the tasks and introduce the product.

    • Ask if there are any questions before you start; then begin the observation.

    • Conclude the observation. Tell them what you found out and answer any of their questions.

    • Use the results.

    User testing can occur at any time during the project, however, it's often more efficient to build a mock-up or prototype of the application and test that before building the real program. It's much easier to deal with a design defect before it's implemented than after. Tognazzini suggests that you need no more than three people per design iteration -- any more than that and you are just confirming problems already found.


    The principle of humility

    -- Listen to what ordinary people have to say
    Some of the most valuable insights can be gained by simply watching other people attempt to use your program. Others can come from listening to their opinions about the product. Of course, you don't have to do exactly everything they say. It's important to realize that each of you, user and developer, has only part of the picture. The ideal is to take a lot of user opinions, plus your insights as a developer and reduce them into an elegant and seamless whole -- a design which, though it may not satisfy everyone, will satisfy the greatest needs of the greatest number of people.

    One must be true to one's vision. A product built entirely from customer feedback is doomed to mediocrity, because what users want most are the features that they cannot anticipate.


    But a single designer's intuition about what is good and bad in an application is insufficient. Program creators are a small, and not terribly representative, subset of the general computing population.

    Some things designers should keep in mind about their users:


    Most people have a biased idea as to the what the "average" person is like. This is because most of our interpersonal relationships are in some way self-selected. It's a rare person whose daily life brings them into contact with other people from a full range of personality types and backgrounds. As a result, we tend to think that others think "mostly like we do." Designers are no exception. Most people have some sort of core competency, and can be expected to perform well within that domain.
    The skill of using a computer (also known as "computer literacy") is actually much harder than it appears.
    The lack of "computer literacy" is not an indication of a lack of basic intelligence. While native intelligence does contribute to one's ability to use a computer effectively, there are other factors which seem to be just as significant, such as a love of exploring complex systems, and an attitude of playful experimentation. Much of the fluency with computer interfaces derives from play -- and those who have dedicated themselves to "serious" tasks such as running a business, curing disease, or helping victims of tragedy may lack the time or patience to be able to devote effort to it.
    A high proportion of programmers are introverts, compared to the general population. This doesn't mean that they don't like people, but rather that there are specific social situations that make them uncomfortable. Many of them lack social skills, and retreat into the world of logic and programming as an escape; As a result, they are not experienced people-watchers.
    The best way to avoid misconceptions about users is to spend some time with them, especially while they are actually using a computer. Do this long enough, and eventually you will get a "feel" for how the average non-technical person thinks. This will increase your ability to spot defects, although it will never make it 100%, and will never be a substitute for user-testing.
    ERGONOMIC GUIDELINES FOR USER-INTERFACE DESIGN
    The following points are guidelines to good software interface design, not an absolute set of rules to be blindly followed. These guidelines apply to the content of screens. In addition to following these guidelines, effective software also necessitates using techniques, such as 'storyboarding', to ensure that the flow of information from screen to screen is logical, follows user expectations, and follows task requirements.
    Consistency ("Principle of least astonishment")

    • certain aspects of an interface should behave in consistent ways at all times for all screens

    • terminology should be consistent between screens

    • icons should be consistent between screens

    • colors should be consistent between screens of similar function


    Simplicity

    • break complex tasks into simpler tasks

    • break long sequences into separate steps

    • keep tasks easy by using icons, words etc.

    • use icons/objects that are familiar to the user


    Human Memory Limitations

    • organize information into a small number of "chunks"

    • try to create short linear sequences of tasks

    • don't flash important information onto the screen for brief time periods

    • organize data fields to match user expectations, or to organize user input (e.g. auto formatting phone numbers)

    • provide cues/navigation aids for the user to know where they are in the software or at what stage they are in an operation

    • provide reminders, or warnings as appropriate

    • provide ongoing feedback on what is and/or just has happened

    • let users recognize rather than recall information

    • minimize working memory loads by limiting the length of sequences and quantity of information - avoid icon mania!


    Cognitive Directness

    • minimize mental transformations of information (e.g. using 'control+shift+esc+8' to indent a paragraph)

    • use meaningful icons/letters

    • use appropriate visual cues, such as direction arrows

    • use 'real-world' metaphors whenever possible (e.g. desktop metaphor, folder metaphor, trash can metaphor etc.)


    Feedback

    • provide informative feedback at the appropriate points

    • provide appropriate articulatory feedback - feedback that confirms the physical operation you just did (e.g. typed 'help' and 'help' appear on the screen). This includes all forms of feedback, such as auditory feedback (e.g. system beeps, mouse click, key clicks etc.)

    • provide appropriate semantic feedback - feedback that confirms the intention of an action (e.g. highlighting an item being chosen from a list)

    • provide appropriate status indicators to show the user the progress with a lengthy operation (e.g. the copy bar when copying files, an hour glass icon when a process is being executed etc.)


    System messages

    • provide user-centered wording in messages (e.g. "there was a problem in copying the file to your disk" rather than "execution error 159")

    • avoid ambiguous messages (e.g. hit 'any' key to continue - there is no 'any' key and there's no need to hit a key, reword to say 'press the return key to continue)

    • avoid using threatening or alarming messages (e.g. fatal error, run aborted, kill job, catastrophic error)

    • use specific, constructive words in error messages (e.g. avoid general messages such as 'invalid entry' and use specifics such as 'please enter your name')

    • make the system 'take the blame' for errors (e.g. "illegal command" versus "unrecognized command")


    Anthropomorphization

    • don't anthropomorphize (i.e. don't attribute human characteristics to objects) - avoid the "Have a nice day" messages from your computer


    Modality

    • use modes cautiously - a mode is an interface state where what the user does has different actions than in other states (e.g. changing the shape of the cursor can indicate whether the user is in an editing mode or a browsing mode)

    • minimize preemptive modes, especially irreversible preemptive modes - a preemptive mode is one where the user must complete one task before proceeding to the next. In a preemptive mode other software functions are inaccessible (e.g. file save dialog boxes)

    • make user actions easily reversible - use 'undo' commands, but use these sparingly

    • allow escape routes from operations


    Attention

    • use attention grabbing techniques cautiously (e.g. avoid overusing 'blinks' on web pages, flashing messages, 'you have mail', bold colors etc.)

    • don't use more than 4 different font sizes per screen

    • use serif or sans serif fonts appropriately as the visual task situation demands

    • don't use all uppercase letters - use and uppercase/lowercase mix

    • don't overuse audio or video

    • use colors appropriately and make use of expectations (e.g. don't have an OK button colored red! use green for OK, yellow for 'caution, and red for 'danger' or 'stop')

    • don't use more than 4 different colors on a screen

    • don't use blue for text (hard to read), blue is a good background color

    • don't put red text on a blue background

    • use high contrast color combinations

    • use colors consistently

    • use only 2 levels of intensity on a single screen

    • Use underlining, bold, inverse video or other markers sparingly

    • on text screens don't use more than 3 fonts on a single screen


    Display issues

    • maintain display inertia - make sure the screen changes little from one screen to the next within a functional task situation

    • organize screen complexity

    • eliminate unnecessary information

    • use concise, unambiguous wording for instructions and messages

    • use easy to recognize icons

    • use a balanced screen layout - don't put too much information at the top of the screen - try to balance information in each screen quadrant

    • use plenty of 'white space' around text blocks - use at least 50% white space for text screens

    • group information logically

    • structure the information rather than just presenting a narrative format (comprehension can be 40% faster for a structured format)


    Individual differences

    • accommodate individual differences in user experience (from the novice to the computer literate)

    • accommodate user preferences by allowing some degree of customization of screen layout, appearance, icons etc.

    • allow alternative forms for commands (e.g. key combinations through menu selections)


    Web page design

    Download speed is a critical aspect of web page design. Remember that when you check your pages locally in your browser you aren't experiencing normal web delays! Regardless of your modem speed, pages will only download at the fastest rate of the slowest link in the 'chain' from a server to the browser. The following tips will help to speed downloads and aid comprehension of your web page materials:




    • avoid using 'blinks' unless these are absolutely necessary - blinks are distracting, use fonts, sizes, colors to attract attention

    • keep backgrounds simple and muted

    • minimize audio and video use, this really slows download time

    • use animated files (e.g. animated .GIFs) sparingly

    • use thumbnail .GIFs linked to larger .GIFs

    • specify .GIF size (HEIGHT, WIDTH) - this speeds download times

    • use 'ALTs' for .GIFs where only the .GIF provides the link - this provides linked text information to those only browsing in text mode

    • use image maps sparingly - they are slow and can be annoying - using an invisible table can often give similar results with much faster downloads

    • use frames sparingly and consistently - use absolute widths for frames, scroll bars, avoid menus for small numbers of items, also check that users don't get stuck in a frame

    • avoid 'construction signs' - web pages are meant to be dynamic and therefore should be changed/updated regularly - they are always under construction - try to tell users when content was last changed and what changes were made

    • minimize use of Java, Javascript, Applets (e.g. ticker tape status bars) - they are cute but often provide little useful information content and slow downloads

    • remember that 50% of users have monitors 15" or less and at 640 x 480 resolution, so use a maximum window width of 620 pixels or flexible window widths and test your pages in your browser at low screen resolutions and limited colors (256 or less)

    • provide contact information at the home page location in your site


    General principles to follow when designing any programme.

    Download 9.4 Mb.

    Share with your friends:
  • 1   2   3   4   5   6   7   8   9   ...   30




    The database is protected by copyright ©ininet.org 2024
    send message

        Main page