Thursday, February 11, 2010

"Easy to Use"

Many projects I work on have the "easy to use" requirement:
  • "The signup process should be user friendly"
  • "The API must be easy to use"
  • "Untrained users must be able to generate reports easily"
It's a laudable goal. Sure, some things really do take a rocket scientist (see: transporting someone to the moon). For a lot of things, though, it doesn't have to be hard. Making your software easy to use makes a lot of sense most of the time.

How on earth do you test "easy to use"?

It's a form of usability testing. It has nothing to do with what the software does, but with how that action or activity is presented to the person or thing consuming the software. Let's assume for the moment that we don't have a usability lab, a lot of time, or extensive training. We're going to be doing poor man's usability testing.

Our task now is to go from each person's opinion to something we can agree constitutes "easy to use". We have to take our benefit - ease of use - and make it into something we can actually measure. To do this, we break "ease of use" down into three separate things:
  • Task accomplishment
  • Ease of discovery
  • Ease of use
Task accomplishment describes how efficiently a user can accomplish a given task or purpose with the software. For example, a task might be "sign up for this great new service", and we might decide that we want users to be able to do this in under three clicks and one form. That count is somewhat arbitrary, but hopefully comes from comparison with similar or competitive products. Now that's something we can measure, and we can raise a flag if we start to violate that policy. We've defined, at least for this one task, our "ease of use" requirement.

Ease of discovery refers to a brand new (untrained) user, and how quickly that user can figure out how to successfully interact with the system. Usually this is also task oriented, and the goal is for the user to discover how to accomplish a task. For this test, you'll want to find someone not familiar with the software. Sit them down in front of the system and ask them to accomplish a list of tasks - no helping! See how long it takes. Depending on your budget, time, and rigor this one can go far to screen capture and recording mechanisms, etc.

Ease of use refers to someone who knows how to use the system and how simple it is to accomplish their tasks. Basically, it's like ease of discovery, except you get to train the user up front. There's also some overlap with the task accomplishment test, but rather than counting steps, you're looking at the user's actions.

If you can do full usability testing, that's great. Please do. If you can't, though, and if you have a requirement to test something "easy to use", you can at least start testing that, too.

No comments:

Post a Comment