Usability: Learned lessons

I’d like to share some learned usability lessons from the projects I’ve worked in, and I would be great if you could also give us some examples from your own projects.

The objective is to have a common place where we share our experiences in building highly usable applications. 

To make it simpler, we could structure the examples like this (feel free to use your own if you don’t like it):

1.       The problem/context
Just give a quick description on what was the problem you were trying to solve or some context on the functionality.
2.       The first approach
Present the first solution you implemented. I am assuming that the first version had some usability issues, if not, just present the final solution. You could also present more versions, but try to be concise.
3.       The final solution
Show us the final version with all usability issues solved (or at least the most relevant ones). We want to see how you did it, so we can get inspired (to copy) and use it on our own projects.  

So here's my first learned lesson:
1.       The problem

We had a list of servers that the users needed to group together. To help the users with the grouping process we wanted to order the list putting the most relevant ones on top. To do that we analyzed the connections between the servers and placed the ones with connections with the group on top.

How would the user know that we did this very intelligent sorting?
2.       First Approach

First we got a very nice star icon, kind of “my favorite” servers. Then we added a tooltip on it, so that the user would know what it meant… and it didn’t work. Why? The users didn’t read the tooltip because they weren’t even curious to find out why did some server had a star.

Next, we presented the user with some instructions on how smart we were to put the connected servers on top:

And then we concluded that the users didn’t even look at it…

3.       Final Solution

The first learned lesson was on how bad tooltips work. You should have them, but don’t ever expect the users to read them.

The second was more shocking… but then again, I don’t read the manual when I buy a new gadget so why would the user read the instructions?

We finally created two different lists, each own with its own title. Having them “physically” separated gave the user the correct notion that the servers on top had something different from the ones below, and the titles explained what was that difference.

Solving usablity issues does not mean that you need to change your application completely. Understand why the users are not being able to do their tasks and the solution will often be just a quick change. Using the correct layout and good headings will often solve most usability issues.

Hi Marco,

Thanks for sharing. I would like just to highlight the importance of user testing: test your solutions, it doesn't need to be in a lab. It can be a "guerrilla" (on the field) test. Marco´s lesson is a great example of how logical assumptions can fall short in real life usage.