CookConsulting.com


User-Centered Design: Debugging the User's Experience


As a programmer, you spend a fair amount of time debugging and handling errors that occur in development, and although this is to be expected the, the errors that have the most impact occur in front of a user. Often software engineers are lulled into a false sense of security by a few successful trials of their own.


Each user has their own style of interaction, which is probably why customizations and preference setting are so popular with users. It also helps explain why users are so good at uncovering shortcomings and conditions that promote errors. Thorough testing and well-trained users are excellent prevention methods, but they are rarely wholly effective. Further measures are required.


"An error? You must be mistaken. We don't allow that..."
The best approach to error prevention is to not allow errors to occur: given proper checking, users should not be able to enter information that would generate an error. For JSP development, this often means using client-side JavaScript code to restrict functionality and guide user interactions. For example, you might prevent a user from submitting an order that doesn't include a delivery address. Or you might structure a page in such a way that a user can enter only numeric values for a price or a phone number. Of course, with each restriction you must somehow alert the user that the current input is unacceptable and must be corrected before they submit an order or move on to a confirmation page, for example. If part of the end-user specification requires that the JSP application function on browsers that do not support JavaScript, you must use an intermediary page that checks values. Although adding an extra "check values" page is ugly, it's an architectural solution that works around the restriction of client-side JavaScript.


Restricting user interactions to prevent errors is a good idea, but it's a principle that you must fight for and implement vigilantly. New features and shortcuts can easily compromise this approach, and you should never become overconfident in your ability to prevent errors.


Last, let's not forget that users dictate the needs of an application, and their reasonable expectations should be honored whenever possible. Restricting users is okay when a user's action involves an obvious oversight and especially when it would cause an error. However, developers and designers must communicate what's expected of the user and what the user is allowed to do. If the user hasn't been given enough information, they have every right to be annoyed.
 
 
 

Essential Books On User Interface Design: