Title: Error Prevention and Recovery
1Error Prevention and Recovery
- An ounce of prevention...
This material has been developed by Georgia Tech
HCI faculty, and continues to evolve.
Contributors include Gregory Abowd, Jim Foley,
Diane Gromala, Elizabeth Mynatt, Jeff Pierce,
Colin Potts, Chris Shaw, John Stasko, and Bruce
Walker. Comments directed to foley_at_cc.gatech.edu
are encouraged. Permission is granted to use with
acknowledgement for non-profit purposes. Last
revision May 2007.
2Outline
- About errors
- Mistakes and slips
- Error prevention guidelines
- Error recovery guidelines
3Errors - Three Considerations
- Avoiding and preventing
- Identifying and understanding
- Handling and recovering
4Why errors are important
- Errors are unavoidable
- To err is human
- Making mistakes is part of learning
- Designers responsibility
- Understand why errors occur
- Minimize likelihood
- Allow for recognition of error and graceful
recovery
5Mistakes and Slips (Norman)
- Mistakes (hopefully avoidable)
- Incorrect reasoning about how to do something
- Wrong intention
- Incorrect mental model
- Novice behavior
- Slips (unavoidable)
- Unconscious behavior
- Think starting off to store, ending up at office
- Often done by skilled users not paying attention
6Some Types of Slips (Norman)
- Mode slips
- System in a different mode than you think
- Input interpreted differently than you expect
- Examples? Unix vi
- Forget the goal - why am I doing this?
- Interruptions or as mind wanders
- If system knows goal, make it visible
- Web site purchases, travel reservations
7Example Studies Errors Happen!
- 170 experienced UNIX users over 9 days
- Kraut et al, CHI 83
- Individual commands had error rates of 3-50
- 300 security system users over 20 months
- Mosteller Ballas, Human Factors 89
- 12,117 error messages
- Most common 11 errors -gt 65
- 2517 involved repeated errors (with no non-errors
in between) within 10 minutes - ? Bad error recovery/help
8None of Us Would Design Messages Like This..
9Or Like This
Function mode is misqueued. Enter retransfalver
in the crossberm code for disconboidance. BEEP.
GEE. MY UNDERWOOD NEVER TALKED BACK TO ME LIKE
THAT
10Error Prevention Guidelines
- Eliminate modes or provide visible cues for modes
- no invisible modes - Use good coding techniques (color, style)
- Maximize recognition, minimize recall
- Design non-similar motor sequences for commands
- Minimize need for typing
11Error Prevention Guidelines
- Test and monitor for errors and engineer them out
- Allow reconsideration of action by user (e.g.,
removing file from trash) - Avoid ambiguous and unclear prompts and messages
- as in next set of examples!
12Great (Bad) Examples
13Levels of Error Recovery
- Do nothing - not such a great idea!!
- Warn user an unusual situation is occurring -
sound, or alert box - Warn and provide advice on how to fix
- Warn and go into dialogue with user
- Fix the problem, tell the user
- Fix the problem, show the user - as in spelling
correction (user may not even notice)
14Examples
- Error
- Description ..
- Prescription .
- Prescription help .
- Prescription more specifc help .
- Error code -37
- Disk full
- Disk full recover disk space
- Disk full recover space by deleting files or
defragmenting - Disk full proceed with disk defragmentation,
otherwise delete files
15Error Recovery Guidelines
- Undo - multilevel preferred
- Cancel lengthy operation in progress
- Confirmation for irrecoverable actions
- Reasonableness checks on input data
- Did you really mean to order 5000 shirts?
- Return cursor to erroneous field, allow fix
- Quick access to context-sensitive help
16How Does This Example Fit In?
17Error Message Wording - Vocabulary
- Problem with previous example - some users will
not know what defragmentation means!! - Vocabulary
- User-oriented
- Defined in advance for commonality throughout all
messages (in style guide) - Alternatives to defragmentation ?
18Error Message Wording - Tone
- Sorry, command not recognized
- Command not recognized -(
- Command not recognized
- Command not recognized!!
19Or Even Worse
- Illegal command
- Illegal command!
- ILLEGAL COMMAND !_at_
- ILLEGAL COMMAND!
- Which may suggestto some users
20The End