Preventing User Error

http://stfleming.github.io/icl-eie1-ucis-preventing-user-error/

Human error? No, bad design.

_"a common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools"_ -- Douglas Adams

Root Cause Analysis

- **Air Force:** It was pilot error -- the pilot failed to take corrective action - **Inspector General:** That's because the pilot was probably unconscious - **Air Force:** So you agree, the pilot failed to correct the problem
### Outline * classification of errors * state machines * some terrible calculators
### Outline * **classification of errors** * state machines * some terrible calculators
### Errors * Slips - action performed is not the same as the one intended * Mistakes - wrong goal or plan was formed
Calculator 1: a calculator
Calculator 2: a calculator with signifiers
Calculator 3: a calculator with an unconventional layout
Calculator 4: another calculator with an unconventional layout
Calculator 5: yet another calculator with an unconventional layout
Calculator 6: more unconventional layouts?
### capture-slips * conforming to conventions is important * avoid having procedures follow the same opening sequence

Memory-Lapses

Calculator 7: the friendly advice calculator
Calculator 8: the polite friendly advice calculator

State Machines for design

### Calculator state machine * numbers (**num**) - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 * operators (**op**) - +, -, *, / * clear command (**c**) * equal operator (**=**)
Calculator 9: a calculator with an interactive state machine
Calculator 10: the mode calculator
Calculator 11: the mode calculator state machine
Calculator 12: the mode switch calculator

description-similarity slips

Calculator 13: the calculator with different buttons
Calculator 14: the calculator with a more distinct clear button
Calculator 15: the calculator with a more distinct clear button and more

Memory Lapses: making the internal state visible

Constraints: forcing function

Calculator 16: a calculator with constraints based on the internal state
Calculator 17: a calculator where internal state is even more explicit

the importance of undo

Calculator 18: the undo calculator
### Conclusion * Errors - slips - mistakes * Slips - Capture Slips (**conventions**, **different sequences**) - Description Slips (**different buttons**) - Mode Slips (**avoid**, **reduce friction**) - Memory lapses (**interruptions**, **reduce steps**) * State Machines