Software Usability - Find the shortest path to achieve your goals.

I just downloaded the recently release Open Office 3.0 productivity suite. On first launch of the software, I was prompted to register the software in order to help Sun determine the global market share. I didn’t mind doing this so I clicked the Register button. What transpired was a very long process requiring me to fill out a form for the Sun Developer Network, receiving a registration email which I then had to validate. After this registration process was complete, I still had to go back to the original Open Office registration page which, in the end, didn’t actually work. Sun in one stroke ticked me off before I had a chance to even see the software. I’ve given up my time and my email address and our mutual goal (registering the software) wasn’t achieved. Not a great first impression and very poor customer service. However, it is valuable to reflect on this experience when designing your own software.

The point is, determine what the most significant thing that you want your users to do and give them the shortest path to achieving this goal. Goal driven design is nothing new and agile developers tend to already think this way. If Sun’s goal is to determine market share, here is one alternative to the process.

  1. "Do you want to register now and help Sun get a snapshot of the global market share of Open", Yes / No
  2. <li>Clicking Yes takes you to a <strong>simple</strong> form that asks for email address and password and a submit button.</li>
    <li>Customer fills in email address and password, clicks register.</li>
    <li>Sun could then send a single email to me explaining the benefits of the more full fledged program. If I do not choose to opt-in to the full program then Sun still has what they want, a registered user of Open Office, with minimal hassle on my part.</li>

On further thought, Sun could make this simpler:

  1. On first launch, ask the user if they would like to provide feedback to Sun.
  2. If the customer agrees then on each launch, send a ping to Sun's database with information on who is using the software.

This is a gross example but represents some real world UI lunacy we are often faced with. Make sure you give your customers the easiest path to achieving their goals.

Joe Cotellese @JoeCotellese