# Usability for Nerds/Software/Interaction schemes

On the general level, there are very different ways that the communication between human and computer can be implemented. These are called interaction schemes. The most common are:

# Batch job

Description. The user enters a series of commands, program code and input data on punched cards, or other storage medium, and puts the pile of cards into a card reader. The reply comes out on a printer. This method was common in the 1970's when personal computers were not available.
Advantages. Technically simple. Many users can share a single computer.
Disadvantages. Difficult to learn the commands. The user has to re-run the whole batch every time they have made a small change.

# Command line interface

Description. This is a purely text based communication, typical for text based screens and terminals. The computer issues a prompt, i.e. a sign that it is waiting for a command. The user types a command and presses the Enter key. The computer executes the command and then replies on the next line, reporting the result. A new prompt appears on the next line.
Examples. The command line interface is known from DOS, UNIX, and Matlab.
Advantages. Easy to implement. Uses few computer resources. Fast to use. If the user often uses a certain series of commands then they can store them in a file and execute all the commands by just calling the command file. (In DOS this is called a batch file, in UNIX a shell script, in Matlab an M-file). Commands can be generated automatically by scripts or other applications.
Disadvantages. Difficult for beginners: It takes a long time to learn and remember the commands. Misspelled commands cause not very helpful error messages. You cannot see which possibilities you have. You need a printed manual. A user cannot easily handle multiple tasks simultaneously.

# Menus

Description. The available commands are listed on a screen or display. The user chooses a specific command by pointing to it or by pressing a key associated with it.
Varieties.
* On a mouse menu you click with the mouse on the name of the command.
* A touch screen system is like a mouse system, but the screen is touch sensitive so that you can point with your finger rather than with a mouse. The screen has drawings of keys or menu items, each with the name of a command on it.
* On a keyboard menu there is a function key associated with each command name. The name of the key is usually written to the left of the name of the command.
* In a softkey system, the function keys are placed right outside the edge of a screen or display. A text next to each key tells its function. The function of each key depends on the state of the system.
* In a voice response system, there is a recorded voice saying: Press 1 for this, press 2 for that, ... This is used in telephone exchange systems.
Hierarchical menus. If there are many choices then they are usually structured so that each item in the main menu opens a submenu with more choices. The menus can be structured hierarchically to any depth.
Advantages. Useful for beginners. The users can see immediately which options they have. Instructions are hardly needed.
Disadvantages. Experienced users that often do the same command find it tedious to work their way through several levels of submenus. Detailed information like names and numbers cannot be entered.

# Forms

Description. A form has several fields that the user can fill in with information. When all necessary information has been entered, the user presses the Enter key or clicks an OK button.
Varieties. A form can have text fields for entering names or numbers; check boxes for Yes/No information; radio buttons or drop down menus for information with a limited number of choices; indications of whether a particular information is optional or required; cut-and-paste facilities for copying text from somewhere else; Cancel, Reset, and Help buttons; a "what's this" facility for explaining a particular field; and tabs for exposing multiple pages of the form.
Advantages. A form is very useful for beginners as well as for experienced users. The interface is self-explaining. The user can see immediately which information is required. They can cancel the operation if they don't have the required information. They can fill out the fields in any order. The fields can be pre-filled with default values. Many facilities can be added as mentioned above under varieties.
Disadvantages. The choice of default values can be difficult. The user is likely to use the mouse even though the keyboard may be more effective, because the interface doesn't indicate which keys to use for going to the next field, changing the state of radio buttons and drop-down menus, for activating OK, Cancel, Help, etc. Existing implementations of the "what's this" context help are not self-explaining so that the novice user who needs it most is unaware of its existence. Likewise, the cut-and-paste function is very useful and time-saving, and most systems have it, but the user is not informed about this facility.

# Graphical interface

Description. Objects are shown on the screen and the user can manipulate them directly with a mouse, trackball, joystick, mouse-pen, digitizer, etc.
Examples. In the Windows file manager, you can move a file by drag and drop. You can change the size of a window by dragging its border. Programs for drawing and painting. Video games.
Advantages. Useful for everything that has to do with geometry. Intuitively understandable. Indispensable for software that produces or manipulates images. Useful for manipulating complex data that can be represented graphically.
Disadvantages. Doing precise movements with a mouse or similar device can be very fatiguing and cause strain injuries. Using the keyboard instead may not be possible. The objects on the screen may be intuitively understandable, but it is not obvious to the beginner which objects can be moved, resized, painted, etc., and how.

# Speech communication

Description. The system has a voice recognition device for input and a speech synthesis device for output. The system works much like the old command line interface: The user speaks a command and the computer replies with a confirmation that the command has been understood and executed.
Advantages. The user is not tied to a chair, keyboard and screen, but can walk around and use their hands and eyes for other tasks. Useful for controlling machines in dirty working environments.
Disadvantages. Difficult to implement. Error prone. Slow. Useless in noisy environment. Disturbs other people. The user has to learn the vocabulary and syntax of commands. A printed manual is needed.

# Gesture based

Description. The user makes gestures or moves with their body. A video camera or sensor detects the gestures and the software interprets the gestures.
Advantages. The user can make natural movements. Useful for games and exercise.
Disadvantages. Difficult to implement. Error prone. May respond to movements not intended as messages for the machine. Slow. Requires a lot of space. The user uses energy for moving. Disturbs other people.
Example. Nintendo Wii game console

# Program or script

Description. The user writes a series of commands in a particular programming language. The program is compiled or interpreted by other software to produce a complex functionality.
Advantages. Useful for complex functionality including conditional commands, loops, etc. that is reused many times.
Disadvantages. The user has to learn a programming language.
Help →