Interface and the Evolution of a User

A speedskating coach of mine once told me that fitness is never static. An athlete is always getting slightly more or less fit. The same thing applies to any technical skill, like software. You are always either gaining skills or losing them.

For example, let's talk about Microsoft Word. When is the last time you created a macro? If you do it all the time, you can probably do it without thinking. If you have done it before, but not lately, you will remember that the ability is there but probably can't find it on the Ribbon. If you've never done it, you might not even know what a macro is or why you would want one.

So for just one skill, making macros in Word, that's a really basic overview of what an advanced, intermediate, and beginner user might be. A program like Microstation has hundreds of skills and you might be a beginner, intermediate, or advanced user for each skill. And, of course, your skills are either improving or diminishing at all times.

Most people hate being beginners. They don't like the feeling of not knowing how to do something, they don't like that it takes forever to get things done, and they don't like feeling like they are not contributing to the team they are on.

At the same time, most people don't want to be power users. They will learn how to do what they need to do and maybe a little more. Some people love to learn (I'm one of them) but even major learning addicts only have so many hours in the day. They might have things besides software they want to learn more about. Maybe they have a hobby or are going to school at night or have kids who need rides to sports. Or maybe all three.

It's usually only the folks who use a program all day every day who become major power users. We all know someone who knows ten times more about a program than we could ever imagine. That level of skill takes a long time and a lot of hours of experience to build.

So we end up with a lot of people who are more or less OK at using a program, but only at the skills they use regularly. They know what the program can do (they saw it in training or read about it or heard about it) and maybe even did it once before, but can't remember how. They might need a reminder here and there. They can work on their own and generally get a project done but might struggle with the more advanced features in the software. They can probably use their most common commands without reading each prompt. They can handle everything on smaller jobs but just aren't up to a major airport terminal project. If you're like most companies, the majority of your users are at this skill level.

For these intermediate users, the ideal program design is one with commands that match the way the users think about their tasks as closely as possible and has Help that speaks to them in their own vocabulary about the tasks they are trying to accomplish (more on that in another post).

As someone gets better at a program, they might make little changes to their interface. They might set a common task interface to Panel Layout Mode (hiding the labels) or change to Toolbars instead of Task Interfaces. They might edit some shortcuts to get to the commands faster (but only for the commands they are using all the time). They might ask the office CAD Manager about how to get some screen space back.

So, thinking about users this way, no one ever really "graduates" from one level of user to another. It's something that happens gradually over time. It's almost impossible to call someone "intermediate" or "advanced" without specifying which software skills you are classifying. Someone who can do awesome production drafting work might never have opened the character animation tools.

My point in all this? I think good User Interface design helps users improve their skill levels, no matter what level they might be.

Come back next week as I ponder how to make things "easier" for people who already use a program and may not be happy about change!

-Tom Waltz
Tom.Waltz@bentley.com