Building Great User Interfaces

An entry about user experience (ux) | thoughts Publication date 4. April 2008 11:31

Designing user interfaces is something that should not be taken lightly, as it is far from trivial to make beautiful, intuitive applications. Take the redesigned Ribbon interface introduced in Office 2007, for example - Microsoft spent tons of time and money on research to get it right - they didn't just go with some random idea that seemed good - they made damn sure it was a good idea:

"So, one of the biggest reasons that we decided to do the new user interface for Office 12 is simply that, for the first time, we have the data we need to make intelligent decisions. Anything we would have done in the past would have been based more on guesswork and bias than on reality. Data is just one input to the design process, of course, but there's something extraordinarily empowering about knowing which commands people use often and which they don't. And knowing which commands are used in sequence with which other commands. And which commands are used 7x more with the keyboard than with the mouse. And how big people's screens are... and how much of the time they use Excel maximized... and how many documents they use at once... and which commands literally are never used... and which are used much more frequently by East Asian users... and on and on..." (Why the UI, part 6 by Jensen Harris)

Obviously, most of us aren't in a position to do the same - in fact where I work we don't even have any designers; all user interfaces are made by us developers. What we can do, however, is learn from the great applications around us and take inspiration from people who have threaded the path before us.

An Apple A Day...

Say one thing for Apple, say that they know how to design user interfaces. And to help developers on their platform to make applications that benefit from this, they've got a document up on their website titled Apple Human Interface Guidelines. Some of it is very OSX-specific, but there are chapters that are worth a read - especially the Human Interface Design Principles chapter, which talks about things like reflecting the users mental model...

"The user already has a mental model that describes the task your software is enabling. This model arises from a combination of real-world experiences, experience with other software, and with computers in general. (...) Before you design your application’s user interface, try to discover your users’ mental model of the task your application helps them perform. Be aware of the model’s inherent metaphors, which represent conceptual components of the task."

...being forgiving...

"Encourage people to explore your application by building in forgiveness—that is, making most actions easily reversible. People need to feel that they can try things without damaging the system or jeopardizing their data. Create safety nets, such as the Undo and Revert to Saved commands, so that people will feel comfortable learning and using your product."

...the importance of modelessness...

"As much as possible, allow users to do whatever they want at all times. Avoid using modes that lock them into one operation and prevent them from working on anything else until that operation is completed."

...and much more. If you find yourself developing user interfaces, on any platform, this is sound advice to take to heart and apply - your users will love you for it!

Be the first to rate this post

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Powered by BlogEngine.NET 1.4.5.0

Welcome!

My name is Fredrik Kalseth, and this is my blog - thanks for visiting! I am fortunate enough to work with what I love for a living, and this blog is essentially the biproduct of that.

I work as a senior consultant for Capgemini, and am also an active participant in the Norwegian .NET community, as an avid attendee but also as a speaker (most recently at NNUG and MSDN Live).

As a developer, I have a wide circle of interest. My primary passion is for agile, test-driven development, with focus on best practices and clean code. That said, I also love to work on the frontend, especially with web development.

On Twitter? My handle is fkalseth. On LinkedIn? I`m there too.

NDC 2010

The conference to attend this summer happens June 16th-18th in Oslo, Norway. Are you going? Be sure to catch my talk on AOP while you're there!

 

Disclaimer

This is a personal blog; any opinions expressed here are my own and do not necessarily reflect those of my employer. All content herein is my own original creation, and as such is protected by copyright law. Unless otherwise stated, all source code posted on this blog is freely usable under the Microsoft Permissive License.

What Readers Talk About

Comment RSS