Agile usability engineering

Agile usability engineering is a method created from a combination of agile software development and usability engineering practices. Agile usability engineering attempts to apply the principles of rapid and iterative development to the field of user interface design.

Early implementations of usability engineering in user-centered design 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 and test driven development were introduced by Kent Beck, usability engineering had to become light-weight in order to work with agile environments. Individuals like Kent Beck have helped to shape the methodology of agile usability engineering by working on projects such as the Chrysler Comprehensive Compensation System. 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 and Lucy Lockwood who designed a browser-resident classroom information management system. During this process, the design team worked directly with an education team, which served as both subject-matter experts and representative end users to develop initial user role models and an inventory of task cases. This process mimics participatory design. 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.”

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 models 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. Solutions are quickly applied based on severity. The phase ends with a milestone.

Paul McInerney and Frank Maurer administered a case study confirming that UI design practices required adjustments; especially in order to adapt an iterative development. However, it was concluded that the resulting UI designs are certainly not worse than what would have been made with the standard heavyweight approach.

The core practices in agile modeling as described by Scott Ambler, help to describe the focus in agile usability engineering. The core practices include Validation, Teamwork, Simplicity, Motivation, Productivity, Documentation, and Iterative & Incremental.

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 personas to extend the typical extreme programming user story, user studies to extend the extreme programming concept of the on-site customer, usability expert evaluations to solve ad hoc problems and usability tests to solve on-site customer representative problems.

Issues
Due to the struggle of incorporating traditional usability engineering methods into an agile environment, many issues have risen. Without comprehensive resources, practitioners 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.