Archive for the ‘User Interface’ Category

The Best Keyboard Shortcut System

Monday, August 31st, 2009

I use keyboard shortcuts constantly, for everything. I believe it is fair to say that I am obsessed with anything that can save me a few seconds working. I learned this habit from of all things, video games. Even if you don’t play video games you need only to look at a gamers hands while they are playing and you can see the unbelievable speed at which actions can take place. Literally hundreds of button presses per minute are possible.

At my old company, SolidWorks, I had prodded the UI team to out the old shortcut system and bring in a new version for two reasons. First, the old shortcut system was classic clunkiness. I won’t get into it, but suffice it to say it was one of the worst implementations I could imagine. Second, the existing shortcuts were not intuitive and were really a mishmash of commands. The SolidWorks application has literally hundreds of commands and is one of the most complex desktop applications you could imagine. Even the most experienced users can’t know everything that is possible.

So it was with great pleasure when a usability project opened to maximize the use of shortcuts. The end result is the best shortcut management system I have seen devised. You can save yourself a lot of time by learning from their system. I won’t take all the credit for this implementation – PD did an excellent job of setting early specifications and I remember that the developer did a fantastic job completing this project on time and never pushed back on making UI changes. It was truly one of the best projects I got to work on. (more…)

My User Interface Philosophy

Monday, August 31st, 2009

I have a penchant for designing UI systems that are simple and straightforward. Too often systems become overcomplicated in an effort to allow any user to do anything. As a developer and experienced application end user I appreciate the ability to unlock all the power of an application, but not at the expense of usability. There is a dynamic required to balance your goals of creating an easy to use application vs providing all necessary features, and yet still making those features discoverable. My modus operandi is to:

  • Identify what the majority of users will be using the application for
  • Find what features are most important to them
  • Prototype a UI for them

It is important to do this first because as you yourself become a “power user” of your application you are going to forget what is intuitive to a new individual and what is not intuitive. After this initial design phase is complete I will go back and decide what power users, admin users, and the like will require from my application.

  • How will they be using the application?
  • What is the best way to integrate these features into the UI without disturbing the paradigm established for new users?
  • How can I keep things simple but powerful?

One of my favorite examples of “overthinking” a product is demonstrated by a marketing video for the “Microsoft iPod.” The ideas expressed are exactly the same things you should be battling as a developer and you can see how overthinking your objective can cause you to get carried away.