Saturday, March 11, 2017

Computer Application Interfaces: In what ways can be expedite software productivity and make it more efficient?

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.

******

Within just a few decades, computers have become indispensable to the home and workplace.  But as H. P. Lovecraft pointed out, such revolutionary change invariably brings out fear—of failure, of success, of looking incompetent, and more broadly, of the unknown.  What better gift can software developers bestow on the working world than interfaces that provide employees control over their performance, certainty about their tasks,  extend their capabilities, and render the only key to self-esteem and worker satisfaction—accomplishment?

No comments:

Post a Comment