Products should work for you, not the other way around (and a horrible Outlook example)
When building software, you often encounter a case where you expected user input in some form, but it arrives at another. Excellent products do not reach such situations because they know what to expect from their users. Generally speaking, the situation of receiving “bad” input can be divided to two cases:
- You just don’t know how to figure the input out
- You know exactly how to figure the input out, because you know of a specific user behavior that leads them to behave differently from what you want them to do, but you insist on your own way
Number 2 is bad. This week I encountered one of the worst examples of this scenario, in one of the most baked products in the world: Microsoft Outlook (of which I’m a fan, by the way).
I input a bunch of email addresses separated by commas, and got this dialog:
I was so pissed off at that. So Outlook doesn’t accept my input, but also has the nerve to tell me it knows what I input, and *literally* asks me to go and do some work that will take me time, but could be solved programatically in a trivial manner. Modern products don’t do such things anymore. In case I didn’t mention it yet - I got pissed off.
The lesson here is simple: if you know of a user behavior that leads users to generate input you’re not adjusted to - just adjust yourself. Be good to your users and work for them. Not the other way around.
The Importance of Right-Left-Up-Down Standards in Product Design
Yesterday I created a meeting on my Android smartphone (Galaxy Nexus running ICS), filled in all the details, invited a couple of people, and then accidentally cancelled it. I had one of those “WTF just happend??” moments.
So I came back to the screen, and I noticed that the “Done” button was on the right and the “Cancel” button was on the left. I scratched my head, like, literally scratched my head, and tried to figure out why I automatically pressed “Cancel” instead of “Done”. And then I realized. When adding or editing contacts on Android, the “Done” button is on the left, and I do that way more often than creating meetings (which I usually do on my laptop). Below is a screenshot.
As you can see, when adding/editing a contact, the “Done” button is on the left, but when adding/editing a meeting, the “Done” button is on the right. This just begs to trick users into automatically choosing the wrong option.
This realization gave me a strange feeling of deja-vu. I spent a minute trying to figure out why. And then it hit me- on Android, I always had a feeling that the “Copy” button jumps from place to place and has no standard. Sometimes it’s at the bottom, sometimes at the top, and every time I need to copy something I find myself searching for the button and finding it somewhere else.
I thought it doesn’t make sense that the button really is someplace else every time, so I started playing with copying in various scenarios to understand the situation. After a few minutes I got it. When you’re marking uneditable text (e.g. when you’re viewing an email from ifttt), then the copy button appears on the bottom, as the leftmost icon. But when you’re editing text, the copy button appears on the top, as the second icon from the right. Wait WHAT??
On the one hand, it’s clear that the toolbox for editing text is different from the toolbox for marking uneditable text (e.g. you can’t paste). But on the other hand, deciding the toolbox should be absolutely totally completely different is way too extreme. And what says “absolutely totally completely different” more than putting one at the bottom and the other at the top.
So next time you design an OS, please figure out what your common user functions are (e.g. saving stuff and copying text), and make sure the’y standardized across the user experience. And when I say “standardized” I mean “always in the same place”. Thank you.
Users can’t read anything, and if they could, they wouldn’t want to
I recently wrote something about an experience I had with my iPad when I just opened it up. I got plenty of angry responses telling me that since I didn’t read the manual I’m not allowed to complain (in other words, RTFM).
Such comments really piss me off. Not because I should not read manuals (I actually do in most cases), but because good products should not expect me to. I’ve written about it in the past, but here’s a short piece of text written 12 years ago by Joel Spolsky that sums it up in the best way:
When you design user interfaces, it’s a good idea to keep two principles in mind:
- Users don’t have the manual, and if they did, they wouldn’t read it.
- In fact, users can’t read anything, and if they could, they wouldn’t want to.
Reading this text many years ago had a great effect on my life. I recommend you read it through: Designing for People Who Have Better Things To Do With Their Lives.
And again I’ll stress the point - sometimes you must have a user manual. In most cases you should probably include a user manual for those looking for it. But you should aspire to build products that most people can just start using, without reading anything in advance.
User guides, updating stuff, and a LinkedIn frustration
So I decided I want to post my tweets on my LinkedIn timeline. I noticed most of my friends do it, so why not me.
I Googled for “posting tweets on linkedin” and sure enough the first link was what I was looking for:
I clicked the link, and arrived at a simple explanation in the LinkedIn learning center:
In this article there’s the great sentence “you have the option to share all tweets, to share only tweets that contain #in or #li, or not to share tweets at all.“
Three options, very simple, even with a screenshot of radio buttons: 1) Yes, share all tweets; and 2) Share only tweets that contain #in. Perfect.
In the learning center, at the bottom of this article, there’s the following link:
So I can even change the settings directly from the article. But when I click it, this is what I get:
What does this mean? Where’s the “Share all tweets”? If the “Share only tweets that contain #in” is not selected, does it mean it automatically shares all tweets? If so - how to I stop it? If not (which would make more sense), how do I share all tweets?
I came from a user guide on a learning center to find out the product is different. I’m confused and frustrated.
What’s the lesson?
- Maintaining learning centers is a bitch. It’s difficult and requires lots of maintenance.
- But if you do it - do it properly. Connect the product release people with the content people to make sure everyone is in sync, and don’t let such things happen.
- If you A/B test visual pieces like that, it becomes even more difficult. One crazy option is to maintain different content for different users based on the cookie so that people who get different versions will also get different guides (assuming they have a cookie). But that’s a maintenance hell that probably doesn’t justify the cost. Am I part of an A/B test in this specific case on LinkedIn? Who knows…