An error-tolerant design (also: human-error-tolerant design) is one that does not unduly penalize user or human errors. It is the human equivalent of fault tolerant design that allows equipment to continue functioning in the presence of hardware faults, such as a "limp-in" mode for an automobile electronics unit that would be employed if something like the oxygen sensor failed.
Use of behavior shaping constraints to prevent errors
Use of forcing functions or behavior-shaping constraints is one technique in error-tolerant design. An example is the interlock or lockout of reverse in the transmission of a moving car. This prevents errors, and prevention of errors is the most effective technique in error-tolerant design. The practice is known as poka-yoke in Japan where it was introduced by Shigeo Shingo as part of the Toyota Production System.
Mitigation of the effects of errors
The next most effective technique in error-tolerant design is the mitigation or limitation of the effects of errors after they have been made. An example is a checking or confirmation function such as an "Are you sure" dialog box in computer software for an action that could have severe consequences if made in error, such as deleting a file (although the consequence of inadvertent file deletion has been reduced from the DOS days by a concept like the trash can in Mac OS, which has been introduced in most GUI interfaces). Adding too great a mitigating factor in some circumstances can become a hindrance, where the confirmation becomes mechanical this may become detrimental - for example, if a prompt is asked for every file in a batch delete, one may be tempted to simply agree to each prompt, even if a file is deleted accidentally.
Another example is Google's use of spell checking on searches performed through their search engine. The spell checking minimises the problems caused by incorrect spelling by not only highlighting the error to the user, but by also providing a link to search using the correct spelling instead. Searches like this are commonly performed using a combination of edit distance, soundex, and metaphone calculations.
- Publications by SoarTech (may rather be changed or removed) (pdf)[dead link]
- Making reliable distributed systems in the presence of hardware errors (thesis, pdf, long)