Elements of User-Friendly Windows Program Design

Elements of User-Friendly Windows Program Design

by Andrew Bernhardt

INTRODUCTION

Most custom interactive business applications do not have enough attention given to the user interface. The end result are programs that may meet the original design specifications, but are difficult to use and create significantly more work and stress for the user than they should. Many times the "front-end" of an interactive software application is what makes or breaks the program.

This document describes techniques that I have found through over 20 years of experience in interactive applications that make software very user friendly. Comments, suggestions, and corrections are welcome.

DETERMINE THE USER

When it comes to designing user-friendly, interactive software, we must first determine who is going to use the software. To be truly user-friendly, a program must operate the user's way, not force the user to operate the programmer's way.

In terms of user interface design, interactive software comes in two varieties: that used primarily by novices, and that used primarily by experts. This distinction is important, because user-friendliness to an expert has a different meaning than to a novice:

A novice...

An expert...

...uses the program occasionally, or only to do a limited number of simple tasks.

...uses the program regularly to do various complicated tasks.

...tells the program what to in generalities, and expects the program to handle the specifics.

...tells the program specifically what to do and how to do it.

...expects to be walked through a process (ala, a "wizard"), with plenty of help provided along the way.

...expects the program to be flexible enough to follow the processes defined by the user.

...treats the program like a skilled carpenter hired to build a house, or a taxi driver hired to drive to a destination.

...treats the program like a tool used to build a house (the user is the carpenter), or a personally driven car.

...is generally limited to only "safe" actions. Possibly dangerous actions are more difficult or impossible to access.

...can easily do actions that are considered dangerous for novice users.

...should have easy access to common tasks, but less common tasks are harder to access.

...should have easy access to most tasks, common or uncommon.

...operates slower because he does not understand the details of what he is doing. He needs to read the instructions.

...requires the program to keep up with him because he already understands how the program operates. He has a job he needs to accomplish, maybe in a limited amount of time, and wants to avoid anything that slows him down.

While it is pretty obvious that software designed for experts can be difficult for novices to use, the opposite is also true: many times software designed for novices can be more difficult for an expert to use.

For example, there are various brands of photo-editing software on the market. Some use a menu or wizard approach: the user selects what he wants to do and the program walks him through it. This method is hostile to the expert user. Adobe Photoshop is an example of a program designed for expert users. Even though it is more difficult to use for novices, it is very easy for experts to use. This is one of the main reasons Photoshop has been number one with professionals for years.

Despite these differences, it is usually possible to make a program that is user-friendly for both novice and expert - it just requires greater thought in designing the software's front-end. (If there is a conflict between these two types of users that can't be resolved, the software needs to cater to the type of user that will be using it most.)

When designing new software, it is tempting to think of users as novices because they have never used the software before. But remember that anyone who uses a program frequently will become an expert user in a relatively short amount of time. Novices become experts, but experts never become novices. If users are going to be regularly using the program, design it for experts.

TIPS FOR ALL PROGRAMS

The following tips apply to all types of interactive Windows software, regardless of who it is written for. Many of these are just common sense, and are already pretty well known. Not all apply to every program:

HELP AND ERROR MESSAGES:

DATA INPUT:

OTHER:

The overall first-impression that a user has of a software product should be that it is easy to use, with a simple, uncluttered front-end. Then, as the user gets familiar with the program, its power and flexibility should become apparent, and yet still be seen as easy to use. The user should be able to focus on the job at hand and not struggle with the software itself.