Linked by Nicholas Blachford on Wed 11th Aug 2004 07:53 UTC
Editorial Computers are complex systems but it's a mistake to assume they need to be complex to use. However, usability is not as easy as it may first seem. It is a different discipline from software development lacking the strict logic or having a "right way". There are only differing requirements and differing collections of guidelines. Making things easy is difficult.
Permalink for comment
To read all comments associated with this story, please click here.
by drsmithy on Thu 12th Aug 2004 12:08 UTC

Trying to force a method of working on users is likely to backfire.

THat's not quite correct. Trying to "force" a method of working on users who are already used to another methodology is likely to backfire.

There's a substantial difference between those two things.

One approach to usability is to simplifying everything by removing options, this strategy assumes users are idiots and in my opinion is more likely to annoy users due to lack of options than help usability.

Most users don't care about options, they care about results.

More people will be happy if your media player has an interface they can use immediately than will be happy if it is "completely skinnable".

The ROS (Ruby Operating System) [ROS] has an ultra minimalist approach to usability guidelines, there's only 4 of them.


This is a bit like saying:
Modern law has an ultra-minimalist approach to justice:

* Respect each other or else

The proximal interface of course includes a number of principles to use when designing user interfaces, these include:


I think it'll be a long time before we'll see mainstream systems based on these principles though some applications already seem to follow similar principles (e.g. the vector graphics component of Gobe Productive on BeOS). BeOS itself had drag and drop extensively throughout the system.

Pretty much every modern GUI is built around those principles. Some (MacOS) have been doing it longer than others (Windows), but they all implement numerous examples of everything you list.

Yet despite this, placing the menu at the top does seem to be better, how can this be so?

I can only conclude there are other factors at play:


The "other factor" is the other half of Fitt's Law - target acquisition time.

Locating the menu in a window is (comparitively) a time-consuming affair. First you have to identify the relevant window, then the top of the window, then you have to move down far enough to locate the menu, *then* you have to actually move the mouse pointer to the right place vertically (the first part is just visual acquisition, not moving the mouse).

After this point, the comparison is basically identical - but as you can see the menu-in-window approach gives the menu-at-the-top approach a big head start.

There are situations, of course, where this target acquisition time is neutralised by having to move the mouse significantly further to the single menu bar - most notably in multi-monitor situations (why OS X still doesn't put a menu bar at the top of each screen I don't understand).

The most optimal menu arrangement, in terms of access time, is a pie menu centred on the current cursor position, activated by a mouseclick. Of course, it's also got some seriously negative discoverability issues, but for non-newbie users that's not a problem.

Command lines are very useful tools and they are in many cases better suited to tasks which would be difficult to represent well in GUIs. However, there is no reason they should be so complex as to require a reference book to use them, they should be available to all users, experience on other platforms has shown this can be the case with a well designed naming scheme.

Very few users perform _any_ actions that would benefit from the advantages a commandline offers, let alone perform them regularly.

A sensible naming scheme should also apply to the file system structure, it could be organised beginning along the lines of:


If usability is your goal, the file system structure - from a UI perspective - shouldn't even exist. It should be completely managed behind the scenes by the OS. There shouldn't even be a method of accessing the "filesystem" for anything except low-level programmatic housekeeping.

Installing software should be a quick, painless operation, the installer should not assume the user has an internet connection.

There shouldn't even be "applications", from a UI perspective. Users should deal with "documents".

"Installing" these "applications" shouldn't require anything more complex than a drag & drop or a context menu with an "install" item (which does nothing more than copy the appropriate files to the appropriate places *without* presenting the user with any dialogs or the like).