It is easy to think of an error as being caused by a wrong input from the user.
But people make mistakes in predictable, systematic ways. So it is possible to
“debug” the communication between the user and the rest of the system just as
you would between other system components.