Study of the Human Factors in Software Engineering
Sree Harsha Pothireddy
Lousiana Tech University
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.
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:
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
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! Task-oriented 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 task-oriented.
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 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.
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 learn- ability therefore hold the same significance in software design as functionality and efficiency.
References: (1) What is a human factor?
(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://www.ergonomics.org.uk 6) Usability: http://www.usabilityfirst.com
7) Quality in use: Incorporating human factors into the software life cycle – Bevan ,Nigel