Archive for the ‘Usability’ Category

UI Working Group becoming popular venue!

Thursday, July 10th, 2008

The UI Working Group is a forum for people to discuss Eclipse UI issues.  Its available as a sounding board for UI walkthroughs, providing feedback on UI design issues, guidance on best practice approaches, issue of consistency, etc.  Its members are UI expects from across the Eclipse community, so you get lots of experience at your disposal for the very low low price of, well, free!

We’ve had some great, thought provoking presentations.  Some recent activity:

  • Susan Franklin McCourt  presented a walkthrough of some UI design issues in the new P2 UI.   I know she did a lot of work preparing for it and I think that paid off in getting some good feedback and ideas.
  • This last week Kaloyan Raev and Bogdan Vatkov presented on some design issues and ideas for improvement on the base Search UI.  There was some great discussion and some talk of doing a community driven tweaklet to explore alternative designs.  We will be having a follow up call soon to discuss specifics.
  • David Carver has said that he’d like to discuss Preferences and Launching/Debugging.  We will probably do these as two sessions.
  • When these are all completed, I’d like to talk about consistency around indicating required fields in wizards, dialogs, and forms.

The schedule is getting busy!

This is great to see.  The calls are only an hour and there’s lots of discussion, so I find these sessions work best when the presenter comes with a focused, well prepared topic.  Of course “best” is a measure of what the presenter got out of it, either in new design ideas, answers to questions, or raising some issue with the hope of community engagement on the topic.

The calls are open to all Eclipse Members; anyone can join, and anyone can present.

UI BOF at EclipseCon!

Thursday, March 13th, 2008

We’re having a Usability and User Interface BOF at EclipseCon. Hosts of this event are the illustrious Mik Kersten, the jazzy Kimberley Peter, our fearless UIWG leader Bob Fraser, and yours truly. We’re hoping for good community participation, so bring your ideas, questions, complaints, and of course, beer.

Guiding the user to Preferences import/export: You can help

Friday, October 19th, 2007

The Eclipse SDK is feature rich.  So much so, that its not uncommon for us to see bugs requesting a feature when in fact the feature is there, just difficult to find.  This pains me, because knowing how much work has gone into implementing a feature, its a shame that still we fail the user because they couldn’t find it.

Case in point is a recent bug asking for the ability to save preferences outside of the workspace.  Already exsits!  Its in File->Export->General->Preferences.  Of course!  Who wouldn’t think to look there?  Even for me it took me a minute to find it, all along I was trying to figure out if we really supported it or if I just imaged it (sometimes, being overly imaginative, I confuse “we should do X” with “we did X”).

The general solution to our complex UI is, well complex.  But in this particular case, we’d see a huge benefit from having links to the import/export commands somewhere in the preferences dialog, since, gee, that’s where people expect to be able to import/export preferences.

This seems to me to be a great opportunity for community contribution, since the commands already exist, its should just be a matter of:

  1. Determining the right placement in the preferences dialog
  2. Creating the links

For an example of links in the preferences, see the page for Team->CVS->Label Decorations and note the two links on that pref page.  The bug is marked HelpWanted so roll up your sleves and help make it easier for the next guy!  As always, the platform UI team is happy to provide you with assistance.

I believe that with a number of these simple fixes we can increase the usability of Eclipse without hurting our heads on deep questions like, “Who the heck ever looks in Import/Export anyway?”.

Why every good UI team should keep a glossary

Thursday, July 26th, 2007

Now and then I write a bug report (sometimes several on the identical subject, sorry Wassim!) and I comment that a certain term may not be understood by the user. That leads to a question, “Kevin, what was it about that term that you don’t understand?”. Its a tricky question, not because I’m afraid of revealing my ignorance (I seem to be pretty good at that) but because its often difficult to judge what a user may or may not know at some point in the workflow. We get very little feedback on terminology; users seldom submit bugs saying, “I didn’t understand this word in this button”, maybe because they either assume they’re just not smart enough or maybe they get frustrated by their confusion.

Its extremely easy to overwhealm a new user. That’s why the terms we use are precious. I use “precious” in the sense that each has a cost and we must spend them frugaly. The cost is to the user in their mental load. Really what we’re talking about here is concepts, since as we introduce new concepts we make up terms to denote them, and each concept has a cost in learning/interpreting.

As developers we spend so much time on our particular application that we forget what its like not to know, what its like to be a newbie. We can’t pretend not to know because we, the authors, now know too much! And we have a tendency of either making up terms that seem self-evident to us (but perhaps not to others), or create a mountain of new and obscure terms for the user to have to climb.

One way to deal with this is by keeping track over the terms we introduce. This allows us to track the concepts.

When I was working on IBM WebSphere Integration Developer (WID), we tried to pay attention to:

  1. Which terms we used
  2. Where we used them
  3. When we introduced them

Why are these important? Lets look at each:

1. Which terms we used

Since each term costs the user in time to learn and mental memory, we wanted to ensure our word budget was being well spent. Some things we tried to keep in mind:

  • Is a new term worth the cost, or can we provide variations (adjectives to nouns) on the same concept?
  • Are the terms being applied consistently?
  • Are we using the same term for two different meanings?
  • Are we using two terms for the same thing?
  • Do the terms as a whole work well together?
  • Are we expecting the user to remember too many concepts for performing simple tasks?

2. Where we use them

Good UI’s, like good code, should be self-documenting. That’s not to say that you shouldn’t write doc (or comment your code). But many people don’t look at doc, or find it difficult to find what they need, or we don’t do a good job of documenting. By repeatedly and consistently using a smaller set of terms, we make the UI more self-evident.

3. When we introduced them

Some places in the UI provide more context for the introduction of a term, such as grouping with like commands, ability to undo to allow experimentation, explanatory banner text, etc. A good UI should introduce the concepts in a gradual manner, starting with the basics and building as the user learns more. This is tricky to do in practice though because it requires a clear understanding of the user task flows and these can be very difficult to know in open-ended applications.

If the user finds a term they’ve never seen before, say as a button in an important wizard, they’ll either learn to ignore it (and never try your wonderful feature) or be fearful of pressing it.

Conclusion

Keeping track of the “namespace” that your UI is creating is an important tool in combating complexity. A disciplined approach would be to physically keep a glossary. This allows you to see at a glance the total mental weight of the application. If you have a documentation team they’re likely already accumulating this. They’re a great source of usability feedback. But just the act of pretending in your mind to keep a glossary, thinking of consistency, will help simplify the user’s experience.

  • You are currently browsing the archives for the Usability category.
  • Pages

  • Archives

  • Categories