Romantic Keyboards
Advanced users need toolbars like Lance Armstrong needs training wheels. As application designers and programmers we must pay attention to how user needs change as they progress towards advanced user status. And, in doing so, we must help them to learn and maximize the right tool for the job.
Mouse-al Abuse
If you're lucky enough to know an expert user or two, take a look at their fingers. They seldom leave the keyboard. [1] Because a majority of potentially advanced users also tend to be good typists, their performance is inversely proportional to the number of times have to use a mouse. We should exploit this formula by encouraging them keep their fingers on the keyboard.
Staying on the keyboard is why experienced Emacs and VI users are often several times faster than a new fangled IDE or MS Word user (excluding formatting, etc). For tasks like programming and data entry, the large, friendly icons on toolbars are best left as advertisements.
When trying to drive an application from A to B, toolbar icons are like giant freeway signs saying "Gas-Food-Lodging -> Exit 27." This is great for taking a trip to some place new. The problem is, many semi-experienced keyboard 'travelers' stagnate because they completely ignore the shortcut function that would, for example, bold a selected word.
Instead of selecting the word and pressing Ctrl-B, they proceed like robots to obey the giant freeway sign saying "Exit here for bold font." They exit the keyboard, go to the mouse, click the toolbar icon, do a thing or two, get their fingers reoriented to the keyboard and, at last, get back under way. Multiply this time lost by the number of times they'll do this in a day and it's a lot of time wasted.
Placing Blame
Users who continue to use toolbars after
graduating from beginner-user
status are still using training wheels on their Tour de France-style
road
bike. It's waist of the rider and bike's potential. Even so, it's not
all their fault. Applications tend to discourage progression towards
advanced user status by welding the training wheels to the bike. They:
- Don't give a main menu option for a certain feature (only on the toolbar or in the right-click menu)
- Don't provide keyboard shortcuts for often used features (forces you to navigate to the function)
- Make it hard to reduce UI clutter: defaults show more things than you actually need
- Default configurations that always target beginner users
Staying in the Mode
Like sensitive romanticists,
applications should be designed to get and keep their user in right
mode as long as possible. By keeping them in the appropriate mode for
any given task, we save our users time and encourage their progress
towards the consummate joy of advanced user status.
For example, when doing data entry, your fingers are primarily on the keyboard. So, all functions related to data entry like copy/paste, aligning headers, adding footnotes, etc. should be easily accessible from the keyboard.
Do Dreyfus Things
Dreyfus showed us how we progress from Beginner to Expert
as we acquire skills. If usability design were to ally itself with this
model, it would go a long way towards better support for varying kinds
of users.
But, tackling every aspect of usability as it relates the Dreyfus model would mean losing my job, paying alimony, and would probably never be read. So, instead, I'll end this post by proposing a short list of things that will light the user fire and keep it lit:
- Include all navigation, editing, and viewing options in the main menu
- Provide shortcuts for every user-function
- Make toolbars optional and easily configurable
- For every focusable item, support a context sensitive menu
- For every focusable item, have a shortcut menu that can accessible by a shortcut
- Reuse standard shortcuts for common functions
[1] To become an advanced keyboard user, first learn to type without looking at the keyboard. Then do this: every time you go to use your mouse, stop and ask, is this function in the main menu? To find out, click Alt-<menu shortcut> to browse. When you find the function you were looking for, don't press Enter to select it! Type the Ctrl-<shortcut> instead. Do this repeatedly and in no time, you'll start blowing past the standard mouse user.

Just a note of caution: I used Emacs, with its strong emphasis on Ctrl- key sequences, for perhaps 7 years. 13 years later, I'm still suffering from the Repetitive Stress Injuries that experience caused. I also know plenty of other folks who've had similar experiences.
So, before you get too keen on this approach, make sure you're taking good care of your hands. I use the MS Natural Keyboard, which helps, but intense periods of typing are still rather problematic for me. I'm currently using Dragon Naturally Speaking, but programming using it ain't so easy.
Good luck.
Posted by: James Synge | May 16, 2005 at 04:37 PM
Oddly enough, the two actions (of all cognitive, perceptual and motor actions) that take the most time is (1) moving from the mouse to the keyboard then re-centering your hands, and (2) moving from the keyboard to the mouse and the finding the cursor on the screen, which often is not even close to where the insertion point is located. When it comes to a user’s performance on a task, allowing them to keep their hands on the keyboard by providing appropriate keyboard shortcuts is an often overlooked facet of design.
On a side note, I have really needed to learn how to type correctly for a long time - maybe this is the answer...
http://www.daskeyboard.com/
Posted by: shep.mckee | June 07, 2005 at 05:29 PM