Admit it. As testers, users, and developers of software, we all have our pet peeves—those recurring bugs and misfeatures that we love to hate. And as much as we might like to try to be positive and articulate how we think software should behave in the best of all worlds, sometimes negative examples are called for.
Negative examples tend to be more memorable. They illustrate problems keenly, and—especially in the case of user experience (UX)—they can be surprisingly useful for teaching the overarching principles behind why something is a bad idea.
With all that being said, here are the top five UX problems that I have a hate on for.
- Forcing the user to choose an option when it's the only option. Surprisingly often, I'm confronted with dropdown boxes that contain only one choice but that I have to select anyway. If there's only one choice, shouldn't it be selected by default?
- Interstitials that aren't related to what the user is trying to accomplish. Popups that urge people to "Download our free app!" or "Take our survey!" by getting in the way of the website they are trying to read seem unlikely to elicit a positive response. It's even worse when such an interruption disrupts a user's workflow, forcing them to start their task all over again.
- Lack of information scent. If the resource I'm looking for on a website isn't immediately obvious, the site needs to provide some hint as to where I should look for it. Digging through all the menus is no fun, and hinting at a path that doesn't lead to what I'm looking for makes it seem like it's probably not on the site at all.
- Input "validation" that disallows legitimate data. Credit card inputs are a frequent offender here. Credit card numbers have spaces between groups of digits because it makes them easier to read, and allowing spaces in the input makes it easier for people to key them in correctly. It's a trivial programming task to filter out all the non-digits. So why are users forbidden to enter them? Other examples I've run into include rejecting email addresses that include a third-level domain as supposedly invalid (e.g., email@example.com) and requiring a phone number without allowing a country code.
- Session expiry that discards state. Ever put several items into a virtual shopping cart, then get called away from your computer, only to return and find that your session has timed out and your cart has been emptied? How about having the equivalent happen when you've spent an hour working your way through a multi-part online form? While session expiry is sometimes a good idea for security reasons, instead of jettisoning information that the user may have spent significant time entering, it's usually a better idea simply to require them to re-authenticate and let them pick up where they left off.
I think the common themes underlying many UX issues—including the ones above—often boil down to two things: 1) forcing the user to do work that the software should have done for them, or 2) assuming that the software developer knows better than users what they want or need.
What about your UX pet peeves? Are there any themes that tie them together? A few pointed examples can shed a lot of light on why certain design decisions aren't user-friendly and help you avoid the most egregious UX problems.
Rick Scott is a Canadian philosopher-geek who's profoundly interested in how we can collaborate to make technology work better for everyone. Rick's an incorrigible idealist, an open source contributor, and a staunch believer in testing, universal access, and the hacker ethic. When he's not in front of a computer, you'll find Rick hiking, making cupcakes, or honing his viola technique.