I recently read an online article written by Jeff Atwood, a popular software & human factors blogger, titled “Crash Responsibly“. The gist of his article was basically that we as software developers need to protect the users of our software from unknown errors and even from catastrophic crashes. I agree wholeheartedly.
Everyone who writes software should make sure that their application is self-reporting of it’s own problems. Never depend on the user to tell you that your software is misbehaving. Of course, you should also have a means for the user to manually report problems, but that should be a secondary means that you find out about your software’s bugs, issues, and crashes.
Software developers should also hide the gory details of their errors from their users by default. There are always some software savvy or curious users who will want to know exactly what went wrong, but most users just want to know that something bad happened and the software developers have been notified and they are on the case and working diligently to correct it. There should probably be a means for the savvy or curious user to see more details and also a means for the user to report the problem, but again, these are both secondary. The primary error screen should be simple and easily understandable by the general public and no gory implementation details nor debugging details should be exposed to the user by default.
Wow. I’m a full time software designer and I don’t think I can fully understand what this error message is trying to tell the user. I understand the “no server available” and the “timed out after 10 seconds” parts, but I’ll admit I had to look up the word “idempotent”. That’s not a word your typical user needs to be exposed to. Most users will probably even laugh at you when they see this error message because it looks like you completely made up a word.
So blockbuster.com, please crash responsibly!