Wednesday, July 15, 2009

Productivity & Location Awareness

The iPhone has retaught me the power of location awareness in user interfaces. I have lots of iPhone applications (about 90 at the current count, but, in my defense, some of those are saved bookmarks), and until the iPhone 3 update, touching the icon is the only way to invoke them. Because I have so many, I started organizing them on desktops based on usage (for example, I have a travel desktop, a food desktop, hyperlink desktop, etc). This became too arbitrary, so I recently just went alphabetical for all but the first desktop, which has a special hot key to get back to it, making it the perfect place for really oft-used applications.

The point is that I've rearranged my iPhone icons several times. It continues to surprise me how quickly I remember the desktop and location on the desktop of a given application. I very quickly learn where the applications I use all the time (TripIt, I'm looking at you) and can get there really fast. I find that even though Spotlight now works on the iPhone, I still generally go directly to the application via the icon.

While clearly launchers like Quicksilver, Spotlight, and Launchy work better for the huge numbers of applications you find traditional computers, the power of location awareness suggests several things for the builders of applications.

  • Don't move stuff around.

navigation controls are hyperlinks. But, because of add placement, they move around slightly, turning reading the groups a game of "Whack-a-Mole". I use either the NumberFox plugin or Firefox's incremental hyperlink search (the apostrophe hotkey) rather than chase the stupid hyperlinks with a mouse.

I hate applications that move menu options around based on usage. Consistency is important for usability. In fact, I use the Mac's the Smart Menu Search feature, which allows you to incrementally search for menu items without regard for their physical location, as my favorite menu affordance.

  • Context sensitivity makes it hard to leverage location awareness.

Context sensitivity for toolbar buttons makes it hard to definitively learn where something lives, which kind of dooms the ribbon user interface metaphor in modern versions of Office. While I understand the need for a rethought user interface metaphor for the huge number of features (perhaps that's the underlying problem?), having a context-sensitive set of toolbars means that, to become really effective, you have to memorize each combination of buttons and the corresponding locations. Not having used the ribbon much (I avoid Office applications pretty assiduously), I can't say whether you eventually build up the cognitive ability to utilize location awareness.

  • User interface designers should understand Fitt's Law

Pop quiz: what?s the biggest clickable target on your screen? It?s the one right under your cursor, which is why the right-mouse menu should have the most important things on it. The target right under your mouse is effectively infinitely large. Second question: what?s the next biggest target? The edges of the screen because you can accelerate as fast as possible to the edge and not overshoot it. This suggests that the really important stuff should reside on the edges of the screen. These observations come from Fitt's Law, which states that the ease of clicking on a target with the mouse is a combination of the distance you must navigate and the size of the target.

The designers of Mac OS X knew this law, which is why the menu bar resides at the top of the screen. When you use the mouse to click one of the menu items, you can ram the mouse pointer up against the top of the screen and you are where you want to be. Windows, on the other hand, has a title bar at the top of each window. Even if the window is maximized, you still must carefully find your target by accelerating to the top, and then use some precision mousing to hit the target. For right-handed users, the upper right corner is an easy mouse target. What's there on the Mac? Spotlight, the universal search utility. What's there on Windows? Nothing unless your application is full screen, and, if it is, it's the close button (which suggests the most important thing you can do to a Windows applications is close it).

There is a way to mitigate this for some Windows applications. The Microsoft Office suite has a Full Screen mode, which gets rid of the title bar and puts the menu right at the top, like Mac OS X. There is help for developers, too. Visual Studio features the same full-screen mode, as does IntelliJ for Java developers. If you are going to use the mouse, using your applications in full-screen mode makes it easier to hit the menus because it takes advantage of location awareness and consistency.

Regardless of the power of location awareness, for sophisticated computer users (like developers), location awareness doesn't scale. You should spend the time to learn the keyboard shortcuts for every possible thing you need to do. It takes longer, but it scales almost indefinitely. In fact, I turn toolbars and buttons off in IDEs and Emacs and take the time to learn how to get to what I need without reaching for the evil mouse. I'm curious to see how much I start using Spotlight on the iPhone as the number of applications I have keeps growing (which seems inevitable at this point).


Carsten said...

I really enjoyed your post. Mostly because it was very relevant to my late considerations about shortcuts for improving my productivity. I am implementing GTD so I am constantly focusing on productivity improvements.

I am a shortcut nerd and I am always trying to avoid reaching for the mouse because it makes my arm hurt.

Just 5 minutes before reading your post I decided to use the spotlight feature on my iPhone for the first time because I wanted to open a TV guide application and I had no idea where on my iPhone it was located. I realized from the TV guide that, as usual, TV was a waste of time, so I reached for my iPhone again to read some feeds in my favorite app NetNewsWire. I saw your post from this blog and had a laugh because it was so relevant to me.

Last week I rediscovered the apostrophe hotkey in FF which you also advocate using. I learned about it a couple of years ago but just never got the hang of it and it slipped my mind, but now I am using it all the time.

I am a recent PC -> Mac convert on my home computer - well actually it has been a little over a year now - and I am still missing the easy shortcut access in MS Windows to for instance the File and Edit menues through alt f and e. I have been surfing the web for solutions but have not found a proper solution, so I have just sticked to my touch pad on the Mac Book Pro even though it is just as bad as the mouse.

You mention the Help Menu Search which I have tried out but just did not find good enough. Having tried it again I have decided to give it a try and let it become part of my daily routines. Actually I discovered that I can also type the name of a bookmarks folder in FF which can be quite useful.

I am on a Danish Mac so the Help Menu Search is invoked with command + shift + 7.

By the way I am a great fan of your work. I have seen you live at JavaOne, at JAOO and several years ago at Hindsgavl, Denmark when you attended the conferene of the Danish JUG "JavaGruppen". I have used your video "Clean up your Code" from NFJS to show to junior developers in my company to give them a brief introduction to improving the code quality :-)

Well - good luck to you finding new shortcuts that can make you more productive.

Jerry Callen said...

I, too, enjoyed this post.

I hate applications that move menu options around based on usage.

In general I agree - but then there are things like the electric buffer list in emacs, which floats the most recently selected buffer to the top. I love that, because I'm typically bouncing around between a small number of buffers at a time, and this keeps the ones I currently care about within a few keystrokes of each other. But, then, that's a key-board-driven selection menu, not a mouse-able menu...