Tuesday, June 22, 2010

Design for Troubleshooting

Designers, both hardware and software, need to make it easier for normal users to figure out what is causing the problem when their is a failure with their systems.

I just got back from the Post Office, where I was apparently the first customer of the day, and the postage machine at the window didn't work. The postal worker took the cover off, checked that no labels were jamming it, tried winding it forward to make sure it wasn't jammed, put the cover back on, tried to print again. It still didn't work. Took the cover off, again, fiddled with it, put the cover back on, tried it again. Through several repetitions, until another worker opened their window, and I was able to mail my item.

Any time you design something that needs to have a protective cover, include a "troubleshooting switch", a manual switch that can allow the machine to operate as long as it is held down, for troubleshooting problems. It is very useful to be able to see precisely where the problem is, which you can't do with a cover in place; in addition to speeding things up not to have to repeatedly remove and replace a cover. Such a switch should require the operator to continuously hold it down, so it will only operate while his attention is actually on the machine. And it should be designed so that it can't be used that way normally. Unless there really isn't any need for the protective cover in the first place.

In complex computer applications, this would mean allowing the user to step through an operation so they can see where the failure occurs. Or at least providing more informative error messages as to where the failure happened. I just signed up with a new ISP, and at the last step received a whole page of "failure notices"; which failed to identify the problem very well. I have been using computers for 15 years, even though I am not a programmer, so I managed to figure out it was some sort of error in formatting the input, so I backed out and tried resubmitting my information and finally got it to work.