Agile usability engineering is a method created from a combination of
agile software development
In software development, agile (sometimes written Agile) practices include requirements discovery and solutions improvement through the collaborative effort of self-organizing and cross-functional teams with their customer(s)/ end user(s), ...
and
usability engineering
Usability engineering is a field that is concerned generally with human–computer interaction and specifically with devising human–computer interfaces that have high usability or user friendliness. It provides structured methods for achieving ...
practices.
[Memmel, T (2006). Agile Usability Engineering. Retrieved 4 November 2013 from http://www.interaction-design.org/encyclopedia/agile_usability_engineering.html] Agile usability engineering attempts to apply the principles of rapid and iterative development to the field of
user interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
design.
Early implementations of usability engineering in
user-centered design
User-centered design (UCD) or user-driven development (UDD) is a framework of process (not restricted to interfaces or technologies) in which usability goals, user characteristics, environment, tasks and workflow of a product, service or proc ...
came into professional practice during the mid–late 1980s. Early implementations of agile software development evolved in the mid-1990s. It has only been within the past few years that the
human-computer interaction community have seen widespread acceptance of agile usability engineering.
History
When methods such as
extreme programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, P ...
and
test driven development were introduced by
Kent Beck
Kent Beck (born 1961) is an American software engineer and the creator of extreme programming, a software development methodology that eschews rigid formal specification for a collaborative and iterative design process. Beck was one of the 17 ori ...
, usability engineering had to become light-weight in order to work with agile environments. Individuals like Kent Beck have helped to shape the
methodology
In its most common sense, methodology is the study of research methods. However, the term can also refer to the methods themselves or to the philosophical discussion of associated background assumptions. A method is a structured procedure for bri ...
of agile usability engineering by working on
project
A project is any undertaking, carried out individually or collaboratively and possibly involving research or design, that is carefully planned to achieve a particular goal.
An alternative view sees a project managerially as a sequence of even ...
s such as the
Chrysler Comprehensive Compensation System
The Chrysler Comprehensive Compensation System (commonly referred to as "C3") was a project in the Chrysler Corporation to replace several payroll applications with a single system. The new system was built using Smalltalk and GemStone. The softwa ...
. Such time-driven projects have helped individuals experience and understand the best methodologies to practice while working in an agile environment.
An early example of usability engineering in an agile software development environment can be found in the work of
Larry Constantine
Larry LeRoy Constantine (born 1943) is an American software engineer, professor in the Center for Exact Sciences and Engineering at the University of Madeira Portugal, and considered one of the pioneers of computing. He has contributed numerous ...
and Lucy Lockwood who designed a browser-resident classroom information
management system
A management system is a set of policies, processes and procedures used by an organization to ensure that it can fulfill the tasks required to achieve its objectives. These objectives cover many aspects of the organization's operations (including ...
. During this process, the design team worked directly with an education team, which served as both
subject-matter expert
A subject-matter expert (SME) is a person who has accumulated great knowledge in a particular field or topic and this level of knowledge is demonstrated by the person's degree, licensure, and/or through years of professional experience with the s ...
s and representative
end user
In product development, an end user (sometimes end-user) is a person who ultimately uses or is intended to ultimately use a product. The end user stands in contrast to users who support or maintain the product, such as sysops, system administrat ...
s to develop initial user role
model
A model is an informative representation of an object, person or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin ''modulus'', a measure.
Models c ...
s and an inventory of task cases. This process mimics
participatory design
Participatory design (originally co-operative design, now often co-design) is an approach to design attempting to actively involve all stakeholders (e.g. employees, partners, customers, citizens, end users) in the design process to help ensure t ...
. With this material, mock-ups were iteratively designed to achieve the desired goal of “the stringent design objective of enabling immediate, productive use of the system based on a single-page tutorial.”
[Constantine, L. L., Lockwood, L. A. D. (2002). Usage-centered engineering for web applications. IEEE Software, 19(2), 42-50. ]
The following table displays the differences and similarities of light-weight processes compared to heavy-weight processes as suggested by Thomas Memmel.
Methods
Many projects that are used in the agile software development process can benefit from agile usability engineering. Any project that cannot use
model
A model is an informative representation of an object, person or system. The term originally denoted the plans of a building in late 16th-century English, and derived via French and Italian ultimately from Latin ''modulus'', a measure.
Models c ...
s and representatives will have issues in an agile usability engineering environment, as the projects must be as light-weight as possible.
Throughout the usability engineering phase in agile development, users work with the product or service in order to provide feedback, problem reports and new requirements to the developers. The process is done interactively with focus directed first on basic functionality and later on with more advanced features. As the process progresses to advanced stages, more users work with the product or service.
[Stober, T., Hansmann, U. (2010). Agile software development: Best practices for large software development projects. (p. 3.7.2). Berlin, Heidelberg: Springer-Verlag.] Solutions are quickly applied based on severity. The phase ends with a
milestone
A milestone is a numbered marker placed on a route such as a road, railway, railway line, canal or border, boundary. They can indicate the distance to towns, cities, and other places or landmarks; or they can give their position on the rou ...
.
Paul McInerney and Frank Maurer administered a
case study
A case study is an in-depth, detailed examination of a particular case (or cases) within a real-world context. For example, case studies in medicine may focus on an individual patient or ailment; case studies in business
Business is the pract ...
confirming that
UI design
User interface (UI) design or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the ...
practices required adjustments; especially in order to adapt an iterative development. However, it was concluded that the resulting
UI design
User interface (UI) design or user interface engineering is the design of user interfaces for machines and software, such as computers, home appliances, mobile devices, and other electronic devices, with the focus on maximizing usability and the ...
s are certainly not worse than what would have been made with the standard heavyweight approach.
[McInerney, P. & Maurer, F. (2005, November). UCD in agile projects: Dream team or odd couple?. ACM Interactions, 12(6), 19-23. doi:: 10.1145/1096554.1096556]
The core practices in
agile modeling
Agile modeling (AM) is a methodology for modeling and documenting software systems based on best practices. It is a collection of values and principles, that can be applied on an (agile) software development project. This methodology is more flexi ...
as described by
Scott Ambler
Scott W. Ambler (born 1966) is a Canadian software engineer, consultant and author. He is an author of books about the Disciplined Agile Delivery toolkit, the Unified process, Agile software development, the Unified Modeling Language, and Capab ...
, help to describe the focus in agile usability engineering. The core practices include Validation, Teamwork, Simplicity, Motivation, Productivity, Documentation, and Iterative & Incremental.
[Ambler, Scott W., (2002). Agile modeling: effective practices for extreme programming and the unified process. Available from http://common.books24x7.com/toc.aspx?bookid=3755]
A modified agile development process, with usability instruments included, was developed and presented in the ''CHI ‘08 Extended Abstracts on Human Factors in Computing Systems.'' The usability instruments includes extended unit tests for usability evaluations, extreme
persona
A persona (plural personae or personas), depending on the context, is the public image of one's personality, the social role that one adopts, or simply a fictional character. The word derives from Latin, where it originally referred to a theatri ...
s to extend the typical
extreme programming
Extreme programming (XP) is a software development methodology intended to improve software quality and responsiveness to changing customer requirements. As a type of agile software development,"Human Centred Technology Workshop 2006 ", 2006, P ...
user story, user studies to extend the extreme programming concept of the on-site customer, usability expert evaluations to solve ''
ad hoc
Ad hoc is a Latin phrase meaning literally 'to this'. In English, it typically signifies a solution for a specific purpose, problem, or task rather than a generalized solution adaptable to collateral instances. (Compare with '' a priori''.)
C ...
'' problems and usability tests to solve on-site customer representative problems.
[Wolkerstorfer, P., Manfred T., et al. Probing an agile usability process. CHI ‘08 extended abstracts on human factors in computing systems, April 5, 2008, New York, NY. ]
Issues
Due to the struggle of incorporating traditional usability engineering methods into an agile environment, many issues have risen. Without comprehensive resources,
practitioner
Practitioner may refer to:
* Health practitioner
* Justice and public safety practitioner
*Legal practitioner
*Medical practitioner
*Mental health professional or practitioner
*Theatre practitioner
Spiritual Practitioner
*Solitary practitioner ...
s have tried to follow the patterns of others who have previously been successful.
Table 2 represents the table of Problems, Symptoms, and Possible Solutions developed by Lynn Miller and Desirée Sy and presented in the ''CHI ‘09 Extended Abstracts on Human Factors in Computing Systems''.
The following table is a summary of the main problems experienced by User Experience practitioners while doing Agile UCD.
[Sy, D., Miller, L. (2009). Agile user experience SIG. CHI '08 extended abstracts on Human factors in computing systems, 751-2754. ]
References
{{reflist
Further reading
Interaction Design Encyclopedia
Usability