Make the system do the work, not the user.
One of the benefits of working in software design is the fact that software is capable of extremely complex algorithms in a matter of milliseconds. System are smart. I could ask you to tell me what 876,543/3.7 is and it would either probably take you a few minutes or more on paper (unless you’re a real long division math wiz) or you’ll use some sort of computational device do to the work for you in seconds. The answer is 236,903.51 for those about to do the math.
Why is this important? Because in this complex world of exponentially growing information resources and attention grabbers, systems reduce some of the workload and make our lives more efficient, easier.
This leads me to a golden rule about system design and error handling.
Rule: Never make the user do, what the system can do on their behalf – especially when trying to interpret input.
Note: Now, of course I have to caveat this rule with an it depends clause, because of course this won’t always be true. However, most of the time I’d say you can rely on it as a mental shortcut to stick by.
Examples: So what are some examples you might ask? Well, the first that comes to mind is the U.S. Phone Number. The user asked to input their phone number may do so in many formats (assuming an open text box) such as (123)456-7890, or possibly 123.456.7890, maybe even 1-123-456-7890. They are all valid phone numbers that fit into a standard format of a 3 digit area code followed by 7 digits divided into two sets of 3 and 4 digits.
Lucky for the user, software can be programmed with these rules, so that regardless of which way the phone number above is entered, the system can take apart each piece and store the number in a standard format for later use.
When this rule isn’t used, you end up asking the user to do work, that the system should have been able to handle. I ran into a great example of what not to do today (see the graphic below.) I wanted to print only two pages of a long pdf, so I specified the pages I wanted to print and hit the Print button.
To my surprise this resulted in an error. It took me a minute to realize what had caused the error in the first place (which is a separate design issue).
So what happened? It appears that the space I put after my comma, which separated the two page numbers was not acceptable. Had I not inserted this space the document would have printed just fine. Unfortunately, because this text input was not programmed to remove spaces, or use spaces as a delimiter, the software couldn’t move forward without me. This is a classic example where the system should have been smart enough to understand my input instead of requiring me to write it in the systems pre-determined format.