Alex Rivera | Logout

GUI design techniques to enhance user experience

Asked 2008-09-03T23:06:44.417
45

What techniques do you know\use to create user-friendly GUI ?

I can name following techniques that I find especially useful:

  • Non-blocking notifications (floating dialogs like in Firefox3 or Vista's pop-up messages in tray area)
  • Absence of "Save" button
    MS OneNote as an example.
    IM clients can save conversation history automatically
  • Integrated search
    Search not only through help files but rather make UI elements searchable.
    Vista made a good step toward such GUI.
    Scout addin Microsoft Office was a really great idea.
  • Context oriented UI (Ribbon bar in MS Office 2007)

Do you implement something like listed techniques in your software?

Edit:
As Ryan P mentioned, one of the best way to create usable app is to put yourself in user's place. I totally agree with it, but what I want to see in this topic is specific techniques (like those I mentioned above) rather than general recommendations.

Edit
Report

4 Answers

2

If you implement a search, make it a live search like what Locate32 and Google Suggest does now. I am so used to not pressing "Enter" at the search box now.

answered 2008-09-04T00:43:14.637
0

The best technique I found is to put your self in the users shoes. What would you like to see from the GUI and put that in front. This also gives you the ability to prioritize as those things should be done first then work from there.

To do this I try to find "layers of usefulness" and add / subtract from the layers until it seems clean. Basically to find the layers I make a list of all the functions the GUI needs to have, all the functions it should have, and all the functions it would be neat to have. Then I group those so that every thing has logical ordering and the groupings become the "layers". From the layers I then add the most important functionality (or what would be used for Day to Day operation) and that becomes the most prominent part, and I work things into the feature around those items.

One of the toughest things is navigation as you have so much to give the use how do you make it helpful and this is where the layers really help. It makes it easy to see how to layout menus, how other pieces interact, what pieces can be hidden, etc.

I have found the easiest way to do this is to start by see what and how your users function on a day to day basis this which will make it easier to get in their shoes (even better is to do their job for a few days). Then make some demonstrations and put them in front of users even if they are Paper Prototypes (there is a book on this process called Paper Prototyping by Carolyn Snyder). Then begin building it and put it in front of users as it is built often.

I will also recommended the book Designing Interfaces by Jenifer Tidwell published by O'Reilly

answered 2008-09-03T23:35:36.797
0

The items in the list you presented are really situation dependent - they will vary from application to application. Some applications will need a save button, some won't. Some conditions will warrant a modal dialog box, some won't.

My top rule for designing a usable interface: Follow existing UI conventions. Nothing confuses a user more than a UI that doesn't work like anything they've ever used. Lotus Notes has one of the worst user interfaces ever created, and it is almost entirely because they went against common UI conventions with just about everything that they did.

If you're questioning how you should design a certain piece of your UI, think of a few standard/well-known applications that provide similar functionality and see how they do it.

answered 2008-09-04T00:01:24.083
0

The Coding Horror Blog regularly gives great ideas. Just some examples:

  • Exploratory and incremental learning
  • Self-documenting user interface
  • Incremental search of features/Smart keyboard access
  • Task-oriented design (ribbon instead of menus and toolbars)
  • Providing undo instead of constant confirmation

Another aspect: use scalable icons to solve the problem of multiple user screen resolutions without maintaining different resolution bitmaps.

answered 2009-05-09T21:32:06.417

Your Answer