himalia.net | community blogs

Sunday, December 09, 2007

Bad Changes In The New GMail Version


Google has launched a new version of GMail with some good new features.  However, what really surprised me were the very bad changes in the user interface of the contacts "subsystem". Google has a very deserved prestige in providing dead simple and very well designed user interfaces. However, I think they couldn't repeat themselves this time. Luckily I am not the only one this time; users care about usability and as always, problems have more repercussion.

 

I was not going to post about this, but then I thought it could be a very interesting example to show how the right models/tools can help to avoid this kind of errors. Last but not least, I strongly believe you have to fall into a lot of mistakes in the process of creating a great user interface, but if you use the right tools and you are describing things at the right abstraction level, they become evident, and you can quickly walk through the continuous prototyping process to achieve a successful design.

 

What's Wrong With The Contacts Design In The New Version Of GMail ?

The main problem is it has a bad layout. Layouts should be simple and Google knows it more than anybody. Not only simple, they have also to be familiar, recognizable (yes, copy them from other user interfaces). Layouts aren't an innovation area and simple layouts have been all already invented.

 

So, What's Wrong With The GMail Layout?

Well, first of all it has too many areas. An area is the part of the screen where you will present a UI concept. Actually, you should have so many areas as concepts you want to present on screen at the same time. And you don't want to expose your user with dozen of concepts at the same time, so you don't want too many areas. In the new version of the contacts subsystem they have 5 areas (just in that part).

 

However, five areas wouldn't be a problem is they weren't so poorly orchestrated. Area orchestration, or Layout Behavior (as I lately redefined it) is the way you assign a hierarchy to the different areas on the screen. The main pattern you should know in this field is called Visual Framework. I will translate it in this way: "Try to keep the area hierarchy always, never mind which concepts are you presenting at each time in each area". 

 

The Layout Behavior can be defined using with transitions that are represented as arrows (this is a very natural representation). Each arrow means that the target will be refreshed when any action is fired in the source. Typically you expect that top menus refresh second layer menus, left or right bars refresh the content area and so on. This approach is very interesting because you don't need to think it in terms of events and other programming-related stuff. Just answer: when an action is fired in one specific area, which area(s) will be refreshed? If you can find a simple and recognizable orchestration for your areas, it will be good enough.

 

Back to GMail, have you seen this kind of orchestration in some other place?

 

GMail contacts new GMailLayoutBehavior

   

Other problem with the chosen transitions are the transition jumps. The one from FirstTopArea to the RightArea is anti-natural because broke the logic sequence. The same happens with the transition from LeftArea to RightArea, but in this case you should add that it provokes a a little inconsistence because there is another transition from LeftArea to CenterArea.

 

Other good advice to take when possible is to define the transitions targeting contiguous areas, in order to facilitate the focus flow of your user. Why jumping to the other side of the screen?  Users don't want to guess where to look after clicking something. In this case, the user is forced to jump his focus from the left to the right in one jump. When you press something, the refreshed area should be the one the user is expecting to be, and users don't expect to move their heads all around like playing Simon in a big wall.

 

Also, there is a very ironic problem, the very strange behavior in the search box. When you search a contact, a new item is added in the left list (groups and other stuff list), while the results are added in the center list at the same time. Why? What's the purpose of the left list with two fixed items, all the groups and an intermittent search result item? Why adding that item there? Why just not showing the results as Google taught us in a dead simple way?

 

Finally, probably the most annoying error is the inconsistence. Consistence is THE fundamental behind all great designed user interfaces. When you press the "New contact" button you are directed to the RightArea, but when you press the "New Group" button (placed just at it side) a popup appears on the top left corner of the screen, while  other popup's appear centered on the screen. Added up, it provides a baffling experience for the user.

 

Random isn't a good friend of user interfaces. Actions presented in the same style and grouped together, are expected to produce the same kind of feedback in the user interface. If they are going to provide different experience they should be separated or presented with a different style (see examples below).

GMailSearch WinXPStartMenu

 

So, now you may be thinking: ok, user interface guru-wannabe, how would you improve this? But I will answer it the next post, because it is already quite long ;)

Labels: , , , ,



Thursday, December 06, 2007

Lets Build An API


Are you feeling a déjù vu? As always, we need to watch not only the picture but the full movie to understand what is going on.

As Jared Spool said, every market goes through four steps (in this order): Technology, Features, Experience and Integration.

 

We are now in the Experience phase. Web 2.0 is all about user experience, tell that to 37Signals. However, in the software industry there is an always subjacent war about platforms. Windows, Mac, Office, Google, SAP, Facebook, Data, Html, Browsers... everyone want to be the winner platform, and in this way, they have to open the doors for developers to empower their position, and so, they make a public API. Each day, someone else is entering in the API game, and this is good for all of us.

 

But the real interesting point are the assumptions in the background.

 

If you build an API and someone else can replicate your software... which is your competitive advantage? You get the database, the raids, the data center, and the 24x7 problem and the third party the advertisement?  Actually, in my modest opinion, there are two very interesting assumptions: the URL fidelity and that data remains in your side. And you know, Facebook is living from its three-tables-database (Users, Friends and Applications) and the gift-card they received from Microsoft to send a message to Google. For this reason, you and many engineers in these companies may think: "we won't put this data available through the API because this is our key data".

 

The URL fidelity is a very interesting topic. 15 years ago nobody knew about urls and now you can't get a decent one. What will happen in 10 years with urls? Who cares? In 10 years we will be in Web 7.0.

 

However, the point about the data isn't so clear anymore. This was ok until someone wrote a robot capable of stealing all your data (slides), and now, you can steal and then store it somewhere (it would be very funny to take amazon data and save it back in the EC2, would you join the project?).

 

But here is the funniest part of the history: they don't need a public API. They are using HTML as your public API and taking all the data they need, to do whatever they want. You can also use this robot and be sure I will be doing it in the future. Hey! It should be illegal! Don't tell me, and what do you think Google has been doing from the beginning? Ok, they call it crawl (not steal) and don't save it in a relational database but in a home-made File System, but this is just tech-stuff.

 

You know my point of view, users should own the data, or at least, not just [Put Your Favorite Company Here]. I would love to hear your opinion...

Labels: , ,