Computer
Application Interfaces: In what ways can be expedite software productivity and
make it more efficient?
Designing interfaces for computer
software is essential to enable users to perform tasks as quickly and
efficiently as possible. Interfaces are
the essential link, the point of communication between human operators and the
devices and support systems providing information and carrying out
instructions. Of course, attaining this
goal bolsters both the sales and user satisfaction upon which all software
vendors depend to remain competitive.
Yet however sensible this goal is, however
simple it seems, the means to achieve it is much more complex. It requires the implementation of methods from
a multifaceted discipline known as human-computer interaction, or HCI. HCI draws from other relevant and
long-standing disciplines such as psychology, sociology, cognitive science and
graphic design. Empirical evaluation
provides developers to compare prototype designs to their users' evaluations in
an informed and intelligent manner, to revise the design to yield the lowest
error rates, fastest performance and lowest cost.
Consider communication itself. It is the
act of conveying intended meanings from one entity or group to another via
mutually understood means of exchanging meaning. While language is most
commonly the means of exchange between humans, communication between user and
application is much the same.
·
Clarity,
unambiguous clicks or keystrokes sent to the program as commands, and clear
messages sent back to the user in response to a command.
·
Brevity, to
simplify and expedite a series of user actions without the program displaying
progressively distracting content of those actions. This might also involve a
tab control, or tab controls within tab controls, for the entire interface if
the application has multiple groups of related functions that could more
briefly appear in a single tab page.
·
Consistency in
the interface so that the user recognizes patterns.
·
Familiarity,
where design retains the location and operation of functions commonly used in
other software, such as exiting, opening, saving or closing files, to remain
the same
Embarking
on the Design
Interface design should begin even
before more expensive programming effort begins. Developers should first ask potential users
to educate them about their needs so that they can evaluate successive versions
of the interface as efficiently as possible.
Interface design is characterized by three basic principles:
1.
Focus on users and tasks. Interface
problems are detected long before the complete package is delivered.
2.
Empirical evaluation.
Representatives of the user population thoroughly test successive
interface designs so that they prove satisfactory once the vendor releases the
software.
3.
Iterative design and revision. Designs are
rarely perfect at first. Developers can
better identify and correct problems with successive prototypes in an iterative
design-test-redesign-retest process executed in a timely fashion
This ideal user-computer interface
design process takes place in three stages: first, a requirements analysis, where a system is operationally
defined. Analyses for both users and
tasks are performed to find out how users interface with the functions and
modes of the interface's operation.
Developers identify design constraints and activities, set a schedule
and identify resource requirements. They
also analyze comparable software and define user roles and requirements.
Second, an empirical evaluation tests models of the interface to enable
developers to understand how the system should operate from a user's point of
view. Alternative designs are introduced
and tested repeatedly to optimize user performance. Screens and displays are developed,
interactions specified, procedures defined.
Developers also define tradeoffs and users aids, and conduct simulations.
And third, test and implementation of a full interface by users ensures
optimal performance. In this third
stage, the interface is integrated into the actual software. It verifies displays, dialog boxes, control
and procedures, conducts both individual and group tests with users, plans the
integration with a larger system, allows for a training plan and user documentation,
verifies that the software meets all the user's specifications, and at last,
implements a fully integrated system.
Such a system analysis approach avoids
common, costly mistakes. It focuses on
the functional requirements from a user- and task-oriented perspective. It avoids expensive changes in design before
the software is ever released, so that later updates won't wind up becoming
corrections instead of enhancements.
Software testing which should be conducted as soon as an executable
software is created, but the point of contact at which the user interacts with
the software—the interface—deserves as much attention.
Consistency
in design
In the design process, consistency is
key to efficient learning and user of software, and applies to many aspects of
the interface such as screen layouts, colors, interaction and navigation, and
the definition of data elements.
Software typically requires multiple windows or dialogs and should be
crafted with regularity.
On the downside, inconsistent interfaces
lead users to errors and frustration.
For example, the meaning of a comment is different depending on
context. If you delete one record from
a database table, will you inadvertently delete all the records from the table? Users can also make errors when the procedure
for implementing a command changes from one context to another.
But if design is consistent, developers
empower users to learn more easily and not tax their memory with operations
that are similar in nature, but too diverse in the means of their execution. When users learn one part of the system, they
should be confident that it applies with all other parts of the system.
And there are many ways to achieve this:
either on a command-based basis, menu selection or direct manipulation, or a
combination of any of these three. This
takes place at the top level, while decisions for the second level of
interaction establish how users perform actual work through the interface. That consistency also extends to comparable
software. Users may be familiar with the
manner in which the same function is executed—such as the basic menu functions
of File > Open, Close, Save, Exit—so they will come to expect the same
regularities. Specific elements of the
interface, such as data entry screens, highlighting, text, graphics and tables
are also critical to user performance.
There are two methods for evaluating
consistency:
·
a questionnaire
method to gather a detailed assessment
for most of the aspects in the interface after they work with it for a period
of time. In a variation, developers can
also conduct a structured interview.
Questionnaires have the advantage of providing a standardized and quantitative
approach to assessments, though has the disadvantage of relying on the user's
memory about his experience.
·
a "thinking
aloud" method, where users verbalize their impression of the software
while they are interacting with it. A
system analyst records what is said and asks for clarification when necessary. The only disadvantage is that it doesn't
provide the quantitative results that a questionnaire would.
These methods can, however, be combined
to maximize the benefits, so that any violations of the user's expectations can
be better identified. The heightened
awareness of those violations reveals a point in operation where developers
could program alerts, such as a dialog box, enabling the user to choose for
certain whether he wants to perform a particular operation. They also help identify inadvertent problems
that result from system shutdown or commands that change system status and
result in data loss.
User
Characteristics
Designers also need to be aware that not
all users share knowledge about how a system operates, so they often establish
three levels of experience: novice, intermediate and expert. Another consideration is that some software
would require permissions to access certain types of data but be prohibited
access others. A well-designed interface
meets the needs of all users.
We usually tend to let the computer
decide when and how much help to provide.
One good rule of thumb to avoid user frustration is to rely entirely on
user-controlled aids, to provide a level of interaction in a dynamic manner. That way, users can control the amount of
assistance depending on their particular expertise.
Also beneficial for development are user
models, reflecting the actual work that users perform. The interface could be designed to mirror
workflow, especially if it exists in a graphic form, to minimize the frequency
the user needs consult help. Designers
can then build features to assist and not inadvertently hinder users in the
tasks they set out to perform. The
revision of task models, sequences of mental and physical operations users
would perform, goes a long way to minimize the keystrokes, mouse movements and
other actions necessary to complete a task.
Moreover, user acceptance of an
interface, his ease and willingness to do work using it, is as at least as
important as usability. The factors
involved include the time required to learn enough to run the software, as well
as the time needed to complete tasks, similarity among different tasks the
software is designed to perform, and ease of recovery from errors. Designers can also use questionnaires to
gauge user acceptance on top of its actual operation.
******
No comments:
Post a Comment