The quality of system output is dependent on the quality of system input.1
The garbage in–garbage out principle is based on the observation that good inputs generally result in good outputs, and bad inputs, barring design intervention, generally result in bad outputs. The rule has been generalized over time to apply to all systems, and is commonly invoked in domains such as business, education, nutrition, and engineering, to name a few. The “garbage in” metaphor refers to one of two kinds of input problems: problems of type and problems of quality.2
Problems of type occur when the incorrect type of input is fed into a system, such as entering a phone number into a credit card number field. Problems of type are serious because the input provided could be radically different from the input expected. This can be advantageous in that problems of type are relatively easy to detect, but problematic in that they represent the maximum form of garbage if undetected. Problems of type are generally caused by a class of errors called mistakes—incorrect actions caused by conscious actions. The primary strategies for minimizing problems of type are affordances and constraints. These strategies structure input and minimize the frequency and magnitude of garbage input.
Problems of quality occur when the correct type of input is fed into a system, but with defects, such as entering a phone number into a phone number field but entering the wrong number. Depending on the frequency and severity of these defects, problems of quality may or may not be serious. Mistyping one letter in a name may have minor consequences (e.g., search item not found); trying to request a download of fifty records but typing five thousand might lock up the system. Problems of quality are generally caused by a class of errors called slips—incorrect actions caused by unconscious, accidental actions. The primary strategies for minimizing problems of quality are previews and confirmations. These strategies allow the consequences of actions to be reviewed and verified prior to input.
The best way to avoid garbage out is to prevent garbage in. Use affordances and constraints to minimize problems of type. Use previews and confirmations to minimize problems of quality. When input integrity is critical, use validation tests to check integrity prior to input, and consider confirmation steps that require the independent verification of multiple people. Consider mechanisms to automatically flag and, in some cases, autocorrect bad input (e.g., automatic spelling correction in word processors).
See also Errors, Feedback Loop, and Signal-to-Noise Ratio.
Redesigned Form