# Wednesday, December 17, 2008

I mean it, honestly! I have been programming for so long and have built so many apps and have looked at, and used 100’s of (web and desktop) apps, that I no longer know what a good user interface design looks like anymore.  I have lost my objectivity.

 

Think of it this way.  As a user, I have been using Outlook and Outlook Web Access (OWA) daily for I don’t know how many years, but yet it (read: both) “feels” like a good user interface design to me.  Maybe I have been “programmed” by using it so much that I just feel that way.  Which is maybe why I dislike the ribbon, but that’s another story.

 

As a side comment, Jeff Atwood at Coding Horror wrote an article called, “Avoiding The Uncanny Valley of User Interface saying, or at least I think it says from a summary point of view, that web applications should not try to mimic desktop applications.  Clearly, I don’t get it.  I believe the whole point to OWA is to indeed mimic the desktop (i.e. Outlook) as closely as possible so that I, the user, don’t have to “think” about the differences between the two email applications.  In fact, I think I would be quite pissed, as a user, that the desktop email application I use everyday and the web mail application were so different that I would have to then learn two different ways of working with email, calendars, tasks, folders, etc. Don’t make me “think” about the differences, I just want to “use” the applications.

 

I also read most of the comments form Jeff’s blog, and a few made sense to me (see below), whereas I think most were offering up their personal opinions, while valid, I know my job, as a programmer, is to give my clients what they want.  Oh sure, I have my own ideas, like many programmers, but after spending a lot of time in the trenches talking to customers over 17 years, it is clear to me that they are paying me money to get what they want – even if they don’t know what they want. <best Jack Nicolson voice> “do you get me, sweetheart?”

 

I really like Shane’s </sarcasm> comment:

 

Yeah, that "Google Maps" web app thing that acts like a desktop app, that'll never work. People only want web apps that act like web apps damn it! And all the cool AJAX features in Facebook/MySpace/Gmail, no one really wants those. They would prefer to wait for the entire page to refresh every time they make any kind of change. Or wait for a huge page to download just to make sure the page contains every bit of data that they could possibly want. Because they would prefer their "web apps" to act just like the crappy 1st generation web apps that were around before they even knew what the Internet was. Pfft.

Shane on December 17, 2008 05:55 AM

 

Or how about Daath’s comment – sounds like a Pragmatic Programmer to me:

 

For a software developer - yes.
For an average user - no. An average user simply doesn't care if it's real, doesn't search for differences, and for him/her it would be the best if the web application and the desktop application would behave the same, because it would be easier to get used to.

For a developer a software is close and personal, like another person for everyone. That's why it feels unnatural for him/her to use web apps that try to mimic desktop apps' behavior. But for an average user, web and desktop apps are nothing but utilities, things that have to be used in order to achieve a goal. They don't care, it's nothing personal for them. (Sorry for breaking your heart, you just have to realize this and move on with your life. :))

Daath on December 17, 2008 08:08 AM

 

And finally, Brian says it all:

 

What are you guys talking about! The purpose and intent of Ajax and RIA technologies is to enable web UI designers with the ability to do things that would be considered "closer" to desktop application operations than "traditional" web applications.

 

That’s because "traditional" stateless web application user interfaces sucked. What are web application expectation anyway? Type stuff... submit(postback)...wait...view result. I say rock on web ui designers! Give me drag-drop, give me background updating panels (event-driven updates). I am still waiting for some of those other crusty old desktop features like great undo/redo functionality and the ability to paste an image directly into an email body, but as they keep working the technology I am sure it's not far off.

 

For users, web apps accel because of collaboration and accessibility. Users dump outlook for web-based email so they can read their mail from home, work, school, wherever. Certainly not because Outlook's desktop user interface sucks. Users have had to trade off rich interaction for those benefits. Today, that trade off isn’t any where near as bad as it once was. Today many web apps simply rock. And that’s because of the energy and effort by many folks to bring rich (or desktop-like) interactions to the web. So let’s dispense with the noise that this is a bad thing.

Brian H on December 17, 2008 08:09 AM

 

Hallelujah, I say.  I just don’t understand why Jeff would write such a blog post.  Which brings me to my point, rather than hypothetically avoiding the uncanny valley, I want to hear about and see pictures of “good” user interface design and most importantly, why they are good.  I mean convincingly good.

 

I work for an ecommerce company that designs and builds large scale ecommerce web applications.  When it comes to good user interface design, our customers are predominantly always asking for two things:

 

  1. Can our customers (easily) find the product(s) they want easily with the minimal amount of mouse clicks? This all about navigation and search.

 

  1. Can our customers (easily) buy the product(s) they want easily with the minimal amount of mouse clicks? This is all about conversion, i.e. turning “browsers into buyers” as quickly as possible.

The point I am making is in my ecommerce web app world, there is a purpose to the user interface design, the key word being design.  The ecommerce web app is “designed” to fit the requirements for the intended end users.  We, as programmers, use a lot of interesting technologies, like AJAX, to fulfill these requirements, but the end user could care less what technologies or techniques are used to fulfill these two requirements.

 

Bad user interface design to me is the opposite of fulfilling these requirements in the context of what I do for a living. And if I put my customer hat on while I am shopping online, if I can’t find what I am looking for easily, I give up.  As a programmer, I give up even sooner, particularly with a web application that is loaded with so many links, 5 navigation bars, and tons of “stickers”, I already know this is going to be really painful to find what I want, so I just give up - sooner.  The consequence is that ecommerce site just lost my revenue, which hits the bottom line.  Everything else after that is irrelevant.

 

Another reason why I think Outlook for the desktop and Outlook Web Access for the web are so successful is because if you use the desktop app and then have to use OWA, the learning curve is almost zero, so it is instantly usable and adopted by the “user.”  I.e. I can find what I want easily and I can transact my email easily – no think time differences between the two apps.

 

I can give another example of good user interface design coming from my 5 year old daughter, who plays web based games on the internet and locally on my computer (i.e. “desktop” games).  She already knows that it is either going to be the arrow keys or the WASD keys to move around in the game.  I only had to show her once and it is consistent with the many games she plays.  Adult note – yes, I (or more correctly, my wife) limit the time and type of games she can play on the computer.  Heck, she even knows how to hit the green “play” button in Visual Studio to run some of the XNA games I am working on, but that is another story.

 

One criterion that makes for a good user interface design, even if it was arbitrarily chosen, is consistency.  Example, the ubiquitous “File” menu, in and of itself, in addition to that it is the same for Outlook desktop application and OWA, plus many, many other desktop applications that share the File, Edit, etc. paradigm.  It is a bit strange to me that not too many web applications take this same approach.  Why not?  And I mean from a user perspective, not a programming one.

 

Of course, Microsoft broke this paradigm with the ribbon, but I think they were actually trying to solve a different problem then good user interface design, see Office 2007 and the Killer Ribbon.

 

So what makes a good user interface design?  I am genuinely asking.  Like I say, I am so close to it that I feel I have lost objectivity.  Not completely mind you, but as a firm believer in The Design of Everyday Things, I have a sense that our industry has moved off the mark somewhat and after reading Jeff’s post, and some of the comments, there are a group of software folks that seem to have forgotten the basic “aesthetics versus function” argument.  E.g. if the iPod was not so easy to use from a user perspective, it would not matter how cool it looked.  Some may see it differently, but my ecommerce customers see it the same way as well.  If the ecommerce site is “flashy” but no-one can find or buy anything easily, then it is nothing more than eye candy as opposed to an ecommerce business, producing revenue.

 

So what makes a good user interface design?  Show me one (links, pictures, descriptions, all good) and tell me why.  Thanks!

Wednesday, December 17, 2008 11:06:47 PM (Pacific Standard Time, UTC-08:00)  #    Comments [6]
Thursday, December 18, 2008 3:26:42 AM (Pacific Standard Time, UTC-08:00)
I'm always interested in UI discussions, as I belong to the minority of non-visual people that feels increasingly baffled by all this new and fancy visual crap everywhere around us. I acutally feel threatened by all the visual elements that mean nothing to me. It wasn't so bad a few years ago when those elements actually had some marking that gave you clues about what can you do with them (ie buttons had edges that made them stand out), but today it's just one flat surface without any interaction clues. Give me OS X and I'll just stare at it. Give me a modern ajax webapp and I'll hate it in about 30 seconds.

My desktop is empty, no icons, no pannels, so nothing bothers me visually. Everything is nicely hidden away in a left mouseclik menu. My workplace is the shell, usually streched fullscreen. This way I can focus on my work and everything I want to know is just a manpage away. Added benefit is that almost no mouse usage is required.

So as you realized above, good UI enables users to do what they want in the fastest and most efficient/least resistance way. For me this means text shell. And I feel like an endangered species ;)
Thursday, December 18, 2008 5:05:27 AM (Pacific Standard Time, UTC-08:00)
This comment is probably going to come across a little rash, but this would be my first example of good UI design. Or perhaps wordpad, in windows XP. Personally, I detest your line of thinking, and i havn't found a great web "app" yet.

Good UI means surprising the user as little as possible, and nobody expects the quirks that come with mimicking an established interface. So for the sake of the software industry, stick with html, or stick with win32 api.. please : ( ... at least until you can make a web application that is as responsive as it's desktop C - assembly equivalent, supports proper OLE drag and drop, and uses native widgets in a native and sensible manner.

It is the quirks that ruin Everything. Java, GTK, XUL, your web framework, you name it. They look terrible alongside explorer.
mapq
Thursday, December 18, 2008 5:07:55 AM (Pacific Standard Time, UTC-08:00)
I think this is a good interface, and decidedly undesktop like. http://zoomii.com
Thursday, December 18, 2008 6:06:38 PM (Pacific Standard Time, UTC-08:00)
I think good interface design is an interface that follows the ergonomics of the human mind- In particular its perceptual faculties. Zoomii is particularly good because it exploits our particularly attuned and evolved spatial memory. The entire workspace maintains a shape that is easy to navigate. This is in opposition to most applications and websites where you can only look at one tiny part of it at a time, and are generally given very little indication of where you are spatially. Mainly, this is because a website cannot be mapped to something resembling a physical space. It's an abstract space, and we're just not as good at navigating abstract spaces as we are at navigating physical spaces.

The other thing that makes the interface good is that it's able to convey a huge amount of information at one time, and yet the image on the screen is uncluttered. You can always clearly see where your navigation things are, and which bit is the content. The navigation controls never move around- they're always in the same place no matter how you've scrolled or moved or zoomed, so you never have to stop and hunt, or stop and scroll back to the top of a page, or move a window out of the way to get back to basics.

There is a huge amount of information, so search is paramount, and this is apparent- search is a first class citizen in the navigation box. it is not shunted off to the side. And it actually works really well. The search results are presented as a grid of book covers with no accompanying information- exactly as you would find them on a book shelf in a bookstore. If you want the additional information, you can obtain that as a seperate action- Similar to picking up a book and examining it more closely.

and finally, it only gives the user information that they've explicitly requested, and know they're getting. It is not attempting to bombard the user with confusing advertising messages, or cajoling to go to this part of the site or that part of the site. The user always has a clear sense of where they are and what they're doing. I think zoomii has an interaction model which should be zealously copied by everyone.

Thursday, December 18, 2008 9:28:38 PM (Pacific Standard Time, UTC-08:00)
Hi Jure, thanks for posting and I get your minimalistic “user interface design”, for you it is perfect and that is all that really matters, doesn’t it? Who cares what other people think :-)

Hi mapq, thanks for posting. I think Breton has found a good web app, see his comments.

Hi Breton, thanks for posting. Yes, I totally agree, zoomii is a great user interface design. I also like your synopsis of why it is good, thanks for posting this info. I actually had fun interacting with zoomii and spent quite a bit of time on it. What do you think of this example of something similar? You need to download Silvelight in order for it to work though...

I remember many years ago being part of a team that built banking applications in a programming language called Smalltalk. For the different banking roles, we had different “physical” desks with drawers and mortgage calculators, forms, scribble pads, etc., that emulated various roles (i.e. different physical desks and objects within and on the desk) in a bank. While the graphics were a bit hokey, what truly amazed me was when we were training the bank employees on the new software. The very first person sat down and looked at the screen and said, cool, I know what this is and proceeded to just “use” the software because it mimicked his physical work space.

When I saw zoomii, I was instantly reminded of the banker’s software. Thanks for pointing this out and you are right, we should be copying this type of interaction model a lot more.
Friday, December 19, 2008 4:00:29 AM (Pacific Standard Time, UTC-08:00)
I'm unfortunately allergic to silverlight so I cannot comment on that example. fortunately, microsoft made an extremely high quality javascript version of their deep zoom client http://livelabs.com/seadragon-ajax/gallery/

The ironic thing about it is it looks *way* better in any browser other than IE.

I have yet to read "The Design of Everyday Things" but I have seen it being highly reccomended many times. I'm a huge fan, personally, of Jef Raskin's "The Humane Interface", a huge portion of which is devoted to zooming interfaces, and why jef raskin thinks the "ZUI" (zooming interface) should replace the GUI. One or two of his reasons I've shamelessly stolen and used here.
Comments are closed.