Yesterday, I was discussing a simple feature with Vishwas when the discussion veered towards the very subjective domain of usability. After spending almost an hour in the discussion, I thought to myself if there is a way to think about usability when implementing a feature.
Let me put things in perspective here. The feature being discussed was “The ability to allow a user to select a facebook photo or upload a photo in our facebook lifeblob application ?” Vishwas already had a gallery like view for the facebook photos and needed to figure out how the upload gets integrated in the view.
Vishwas: Lets add a file chooser element and an upload button above the gallery. That way, we get both the options on the same page.
Me: Sure. What happens when the upload button is clicked?
Vishwas: The photo gets uploaded and gets added to the collage.
Me: Hey, wait a min. Isn’t that confusing? I just thought that the photo would get uploaded and show up in the gallery.
Vishwas: Why do you want the user to go through an extra click? If the user did not select a photo in the gallery, he/she obviously wants the uploaded photo to get added to the collage.
Me: Well, yes – but that’s not what the text on the button tells me. It just says “Upload”. Plus there is a gallery below which intuitively makes me feel that the photo will get shown there.
Vishwas: But thats an unnecessary extra click for the user. The user will drop off if we make him/her do that.
… and this discussion goes on and on.
Two quick observations from this discussion:
a) As developers, we tend to optimize everything. Vishwas is not trying to find out the most intuitive way for upload – he is trying to find the path that goes through the least clicks.
b) There is a fear that getting the user to do that extra click will make them drop off.
The user perspective:
A user thinks very differently. Based on initial screen, a user has an expectation set before he/she performs an action. If your implementation deviates from that expectation, you are asking for serious trouble. In simple words, if you call the button “Upload”, you should only upload the photo and show the user a message indicating whether it was successful or not. Or call the button “Upload and add to collage” in the first place and don’t set the wrong expectation by showing a gallery below it.
As for reducing clicks, everyone seems to be obsessed with it these days, but in my opinion it is not such a big deal ( of course, I assume that you are not adding extra steps that are not necessary ). As long as users understand the value of an action and have belief that your app will do what the action says, they will be happy to do not just one, but a few extra clicks. When you skip steps, you shatter this belief and in most cases, this is what causes the user to drop off.
Usability is plain common sense when you look at your application dispassionately from a user perspective. When in dilemma, err on the side of giving user more information than less.