Study of the Human Factors in Software Engineering

advertisement
CSC 532 Term Paper
Study of the Human Factors in Software Engineering
Sree Harsha Pothireddy
Lousiana Tech University
shp003@latech.edu
Date: 23rd October 23, 2003
Study of the Human Factors in Software Engineering
Abstract
The purpose of this paper is to identify the essentiality of defining Human Factors and
Human Computer Interaction (HCI), which are imperative for the design and
development of any software work. It presents the underlying idea for incorporating
these factors into the software life cycle and shows the diverse applications of Human
Computer Interaction in various fields.
Keywords
Software Engineering, Human Factors, Human Computer Interaction (HCI), Usability,
Ergonomics.
Introduction
As Chapanis defined, “Human Factors discovers and applies information about
human behavior, abilities, limitations, and other characteristics to the design of tools,
machines, systems, tasks, jobs, and environments for productive, safe, comfortable, and
effective human use” (1).
With its origins in Industrial Revolution, Human Factors became widely
incorporated discipline during the World War II. Many giant companies came to
recognize that the success of a product depends upon a solid Human Factors design and
Human Computer Interface (HCI) design, which “is a sub-discipline concerned with the
specification, design, evaluation/testing and implementation of interaction computing
systems for human use and with the study of major phenomena surrounding them” (2).
Since then, the design and development of HCI has been rapidly developing into
a full-fledged engineering field for achieving proper system usability. The particular
field aims in providing users with a cost effective and satisfactory way of software
development. HCI continues evolve into a discipline, which has its own defined and
managed processes. In turn, individuals from various fields who utilize a varied range of
methods to develop user-friendly software techniques would use these processes.
Study of Human Factors is essential for every software manager since he/she must
be acquainted with how his/her staff members interact with each other. Generally,
software products are used by a variety of populace and it is necessary to take into
account the abilities and precincts of such a group to make the software more useful and
popular.
Objective of HCI and Human Factors Design
The central purpose of HCI and Human Factors design is to create products that
meet the operability and learn ability goals. This design should meet the user’s needs by
being effective, efficient, and consistent but also of high quality yet keeping an eye on the
major concern of the consumer in most cases, that is, affordability.
The engineering discipline for designers and developers must focus on the
following:





Users and their psychology.
Amount of work that the user must do, including task goals, performance
requirements, and group communication requirements.
Quality and performance.
Information required by users and their jobs.
Network of relationships between the environment, users, jobs, technologies, and
resources.
Benefits











Elevated user satisfaction
Decreased training time and costs
Reduced operator stress
Reduced product liability
Decreased user fatigue
Decreased incidence of cumulative disturbance
Decrement of operating costs
Limited dependence on operation manuals
Lesser operational errors
Greater system performance and dependability
Improved efficiency and effect ability
Biased Approach to Human Factors
It is often visible that people take Human Factors not too seriously because it is
often regarded as common sense. Many companies heavily channel their resources and
time towards factors of software development like planning, management, control, and
progress. They often neglect the fact that they must present their product in such a way
that it is easy to learn and implement and that it should be aesthetic in nature.
Who does this?
Interface designers and Engineering Psychologists apply systematic Human
Factors techniques to produce designs for hardware and software.
Usability Testing
A systematic approach is required in the design process in Human Factors Design
and, thus, Usability is required. As America’s Former Vice-President Al Gore once
stated, “American industry and government will become even more productive if they
take advantage of usability engineering techniques. (3)” Dedication to usability in the
software development cycle can elevate sales and user satisfaction.
Usability is a software quality characteristic that surveys on software usability
cost and benefits and it can simply be defined as the external attributes of software
quality. The process of involving the users in the development life cycle ensures that the
product is user-friendly and is widely accepted.
Usability aims at the following:

Shortening the time to accomplish tasks,

Reducing the number of mistakes made,

Reducing learning time,

Improving people's satisfaction with a system.
Components of Usability
•User interface design
•Website design
•Rapid prototyping techniques
•Groupware
•Usability evaluation
•Digital design
•Digital typography
Some Factoids about Usability

A common notion that the software developers have is that HCI Engineering adds
only to the development time and cost but does not really yield any satisfactory
results. However, according to the recent research has shown that the Usability
engineering has presented reductions in the product-development cycle by over
33-50%. Moreover, 63% of all software projects overran their estimates, with the
top four reasons relating to usability.

A hard and fast rule that software companies are following now a days after
realizing the importance of HCI and Usability is that “user should be involved
before and not after development” (3).

During the holiday season, Creative Goods tested ten commerce sites in 1999. It
found that 39 percent of the shoppers failed in their shopping attempts because the
sites were too difficult to use. When using the e-commerce site’s search engine,
56 percent of the search attempts failed. $3 billion profits would have been made
even if only 25 percent of these search attempts were successful. (3)

A Human Resource Department of a company complained of disused data entry
screens for processing a job application. Human resources and usability experts
guesstimate that cutting processing time in 25% if one screen was used. It takes
about four hours to process one application, which costs around one hundred
dollars. If the company receives around a thousand applications each year, it
would take one hundred thousand dollars to process these applications. However,
the company can save twenty five thousand dollars if one screen approach is to be
implemented since it will cost only two thousand four hundred to implement the
system. (3)
Benefits of Usability








Elevated sales and consumer satisfaction
Advertising advantage
Increased productivity and efficiency
Decreased training costs and time
Lesser support and maintenance costs
Reduced documentation and support cost
Increased satisfaction, performance, and productivity (For users)
Reduced development and maintenance costs and improved sales (For companies)
HCI Engineering
This recently developed engineering field deals only with the Human Factors and
Human Computer Interaction. It integrates human factors with software engineering for
better usability. HCI professionals become a part of the software development team and
interact with them to develop the most easily usable Graphical User Interface (GUI).
They understand from the development team on what they want to develop and think as
the end user. “The cost differential for a 0.8 second performance difference in each
transaction spread across all operators accounted for a potential savings of $2,400,000 per
year.” (4) The central concern of the HCI Engineering team is the end-user. Whereas the
main concern of the product team is technology and its implementation.
From Producers to Consumers
While half of the typical programmer’s time is spent interacting with other
colleagues, thirty percent of the time he/she will spend working alone and the other
twenty will be spent in activities such as travel and training. All the group members can
be categorized in three different orientations, which are task-oriented, self-oriented, and
interaction-oriented.
The success of a product begins from the office of the software engineers! Taskoriented software engineers are motivated by the intellectual challenge of software
development and self-oriented software engineers are motivated by personal success,
whereas, interaction-oriented individuals are motivated by the presence of colleagues.
However, it has been noted throughout the history that the most successful and efficient
groups are constructed of individuals from each category with the group leader taskoriented.
Very well-built communication is required between the members of the software
development group in order for the group to work efficiently. The size and structure of
the group, the social status and characteristics of group members, and the physical work
environment of the group are some of the factors that are likely to affect the intra-group
communications. Through observation it has been noted that physical environment of the
project meetings also affect the communication process. Many times informal meetings
rather than formal meetings produce better results. Meeting rooms are also supposed to
accommodate the entire group in privacy away from any disturbances and distractions.
Not only face-to-face communication but electronic communications, that is,
telephone and electronic mail systems, is also needed for immediate and effective
communication. Individuals should be provided with a massive amount of computer
power, since software engineers demonstrated elevated degrees of productivity when
he/she is provided with an individual work station. Personal computer workstations also
make possible the formal and informal group meetings and also make it easier for
workers to gain access for computer and electronic communication systems.
The so-called egoless programming, which is a style of project group working
that views programs as the property of and the responsibility of everyone in the group
regardless of which member of the group was responsible for their production, is also
essential to achieve results that are effective. Nevertheless, the Human Factors of the
consumer will affect the fate of the product finally.
“User involvement is one of the 12 best influences on software engineering.” (3)
User involvement is the top factor that decides the software development project success,
where as the lack of user input is the top factor that challenges that same project.
Vasburgh et al once reported that “productivity was about 50 percent higher than average
when customers had a high level of participation in the requirements specification.” (3)
Ergonomics:
Ergonomics is a branch of Human computer interaction that can be defined as the
application of scientific information concerning humans to the design of objects, systems
and environment for human use. It deals with the technological and work situations of a
particular individual. It puts human needs and capabilities at the focus of designing
technological systems. (5)
Ergonomics has a wide range of applications in everyday life but related to software
engineering, the field of ergonomics strives for a greater efficiency, productivity and
ease. For example:




Design of Computers and peripherals so that they are easier to understand and
use.
Planning and implementation of works and jobs so that effective results are
produced.
Design of equipment and work areas of offices and laboratories so that they
are appealing to the user and provide utmost safety.
Design of information to make the use of handbooks and displays easier.
Software Ergonomics:
Software ergonomics is a branch of ergonomics which aims at the adequate
design of computer supported work. It is concerned with the problems of subject matter
and interaction, system functionality and handling. To make the user understand the
software easily, the designers interact with the programmers and make the dialog boxes,
menus, input/output display designs less complicated.
Conclusion:
For a software product to be successful with the customer, a software engineer
needs to develop his/her product is such a way that it is easy to understand, learn and use.
Human factors play a very important role in the software lifecycle. A software engineer
must always keep in mind the end user who is going to use the product and should make
things as simple as possible and provide the best, at the same time not being too hard at
his/her pocket. Usability testing and Software ergonomics deal also deal with the
effective designing of a product. Since human computer interaction and software
ergonomics are a new concept in the field of software engineering, they have a wide
scope of being developed later on. Any software engineer should realize that software
systems are predominantly interactive and aspects of user friendliness and easy learnability therefore hold the same significance in software design as functionality and
efficiency.
References:
(1) What is a human factor?
http://www.webword.com/whatishumanfactors.html
(2) Human computer interaction – A Brief Introduction, Seffah, Ahmed.
Human computer interaction: Past, Present and Future.
(3) Al Gore,
http://www.upa-mtl.org/dl/usability-economics.pdf
(4) Integrating Human factors with software engineering practices.- Hefley E. William,
Buie A.Elizabeth, Lynch F.Gene.
http:// citeseer.nj.nec.com/cache/papers/cs/3118
(5) Ergonomics:
http://www.ergonomics.org.uk
6) Usability: http://www.usabilityfirst.com
7) Quality in use: Incorporating human factors into the software life cycle – Bevan ,Nigel
National Physical Laboratory, Middlesex,UK.
Download