The term "user friendly" is used broadly in the software trade to a point where it is almost meaningless. In the context of application programs, there are at least three types of friendliness which need to be specified, each depending on the skills and familiarity of the potential user. Each of the types of program friendliness requires different modes of operations and different documentations.

It should be noted that systems that are targeted to one set of users may be inappropriate for the others or at least inefficient. Most systems are a balance among friendliness facilities and a targeted to a number of potential system users.

6.1 Learner Friendly

Learner friendly systems are designed to allow the user immediate access to most of the facilities of the program. The user is expected to be familiar with the basic computer system. That is, he should be able to use the keyboard and know the components of the system. Learner friendly system should generally be menu driven with on-line help facilities. Additional facilities, such as pop-up menus, the use of a mouse, or a light pen, may be included to help the new user.

The Users Guide for learner friendly systems must be complete with "all" likely to be used commands including OS (Job Control) commands. The inclusion of tutorials on using the system is recommended if difficulty is found with first time users. However, this is an expensive facility to be included and should be developed only with the approval of the client.

  • Users' Guide required;
  • Menu driven system recommended;
  • Reference Manual is required
  • Tutorial suggested.

6.2 User Friendly

A "user" for this classification is an experienced practitioner of the program. Furthermore, we assume he uses the program routinely. In this context, the user interface is designed to make the program as efficient as possible for the user. Usually a command mode program control environment is used. This tends to minimize the input commands necessary.

Experienced users tend to push systems to their limit. User friendly systems, therefore, need to be robust with board sets of capabilities. This usually requires sophisticated files capabilities and internal program controls. Such users also tend to require interaction among programs. Such facilities should be included in the program and in the Users' Guide.

  • Users' Guide required;
  • Reference Manual required;
  • Command driven recommended; and
  • Full Technical Documentation is required

6.3 Programmer Friendly

"Programmers" in this classification refers to "power- users", who will wish to modify the code as well as interact with other systems. Language and systems programs (data base managers and spreadsheets) have programming facilities inherent in the code. In these cases, modifications in the application programs can be added on either directly using the system or by linking to outside programs.

Programmer friendly application codes are manifest by (1) open and well-documented source codes and (2) internal facilities to modify the underlying logic. It should be the policy of suppliers to make the source code for all contracted programs available to the appropriate clients upon request for the specific application on contract. The client, therefore, has the ability to examine in detail the structure of the code and to make modifications.

Inclusion of many potential logic modifying options within the code can be an expensive undertaking. Such options should only be included when there is a high likelihood that they will be used or when requested by the client.

  • Annotated documentation is required;
  • Full Technical Documentation is required;
  • Users' Guide recommended; and
  • Technical Notes as needed.
  • 6.4 On-Line Help

    Systems can be designed with on-line help facilities. These consist of: (1) a menu of suggestions and definitions, (2) a tutorial of how to use the system, and (3) contextual assistance on the process of using the system. For systems that are solely command oriented system, on-line help, usually includes lists of command with the appropriate syntax and definitions.

    6.4.1 On-Line Tutorial

    On-line tutorials consist of an on-screen users guide. It can be integrated into the application program where it can be brought up during a working session. If it is being used in, this context care needs to be taken to assure the sufficient memory is available.

    6.4.2 Contextual Help

    Contextual help consists of facilities that track the user's position in a program. This type of help facility can be combined with the tutorial. Unfortunately, this type of help commands is difficult to make and can cost more than the development of the base system.