2012-04-10

Situational illiteracy

I’ve often wondered over the phenomenon that error messages apparently instantly remove the ability to read from the person viewing them.
“Aaah, my program crashed! Now I'll have to randomly click icons until the problem goes away!”
“This popup says ‘Connection lost, please check your Ethernet cable’. Would it be this cable that’s fallen to the floor?”

sigh OK, that’s enough smug superiority for now. There are of course reasons for this behaviour. Too much software generates too many useless error messages:
  • A common method is by not catching the error at all and instead getting a stack dump from the underlying runtime system, which may be useful to a debugging programmer, but not to a working user.
  • Or, if the programmer has bothered to trap the error, the error message is still mostly intended for debugging (“Stack overflow in function getResCompFlow().”) and does not suggest to the user either how to avoid it or how to proceed from a bad state.
  • And then we have the opposites: the too brief message (“Syntax error”) vs dozens of long lines of information, with the possibly useful message hidden in the middle.
  • Many error messages do a very bad job of analysing the problem situation and either suggest something very vague (“Error, please retry”), or something completely incorrect. (“Couldn’t connect, please check your Ethernet cable.” Actually I mistyped my password.)
  • And so on…
So, the end result is that users are conditioned to believe that error messages will not contain any useful information–even when they actually do so. Now what still surprises me is that methodical checking of possible error sources apparently is not even the last resort for many people, who rather prefer wildly clicking at anything in sight in the hope that the error will go away. Is there anything in computer systems that conditions people to believe this will work?

No comments: