Understanding HCI

Timely Feedback, Error Prevention and Recovery

Keep it simple.

Give easy access to the features that most users will need most of the time; features used less often or by only a subset of users are placed less prominently.

Optimize the design for the most frequent or important tasks.

Understanding how users will use the software / website / multimedia product you are designing is critically important. Designers should use that understanding to anticipate the information, task flows, and features that users require at key points within the user experience.

Feedback

Provide appropriate, clear, and timely feedback to the user so that he sees the results of his actions and knows what is going on with the system.

For example, progress indicators let users know that their system is healthy and is carrying out their request.

Alert users when they take actions that will result in the loss of data.

All the information included in the feedback should be meaningful to the average user.

Help and documentation

Ensure that any instructions are concise and focused on supporting the user's task.

Forgiveness

Allow reasonable variations in input. Prevent the user from making serious errors whenever possible, and ask for user confirmation before allowing a potentially destructive action.

Error recovery

Provide clear, plain-language messages to describe the problem and suggest a solution to help users recover from any errors.

Undo and redo

Provide "emergency exits" to allow users to abandon an unwanted action. The ability to reverse actions relieves anxiety and encourages user exploration of unfamiliar options.

Applications must provide users with the ability to freely explore applications (which includes the ability to make mistakes) without fearing permanent damage.

Default values

Use proper default values when supporting complex tasks. Use good defaults so that users can complete tasks relatively easily and quickly rather overwhelming them with choices.

Flexibility.

Let users customize the application to meet their unique needs. For example, specialized users could be given a way to make secondary choices more prominent in the product, such as defaulting to large or high contrast text, or a narrow or wide screen width.s

Also, don't limit users by artificially restricting their choices to a "correct" sequence.

Flexibility is also enhanced by letting users select options in various sequences and in letting them modify default values.