The principle of usability applies to everything from physical items like hammers to all types of software applications. Often, technology seems to transcend the physical world. As a result, the usability of software is pivotal to its value. In agile software development, the usability of a product is a shared concern of the entire team. However, I’d like to focus on the way Quality Assurance and User Experience address usability throughout four broad phases of agile development: research, development, testing, and release.
Research
Business analysts and designers typically dominate the research phase of agile development, but this phase is also crucial for Quality Assurance. At ThoughtWorks, we’ve used this phase do specification by example, which Quality Assurance usually leads.
The basic idea behind specification by example is the creation of one source of truth on requirements, encompassing all perspectives. Specification by example commonly comprises example-driven development, executable requirements, acceptance test–driven development, and agile acceptance testing. Project team members collaboratively create and maintain these requirements, which lets them run all tests and produce documentation synchronously. In doing so, the team avoids miscommunications and confusion about requirements and design. When the team makes changes, they can apply the specifications and create a refined set of examples to derive an acceptance test. This process happens continuously, supporting users by creating living documentation that evolves much in the same way as product usage.
Development
While the development phase comprises a variety of activities, the process of designing the user interface is of grave importance to both User Experience and Quality Assurance. During this period, User Experience should build and refine a style guide that provides information about standards for the application under development. These may range from colors to design patterns.
This is an opportune time for User Experience and Quality Assurance to work together to develop a shared understanding of how the application should look and behave. As the team continuously develops and tests user stories, they’ll identify certain aspects of the user interface that will not change—as defined by User Experience and the business. The sooner Quality Assurance becomes aware of the areas that won’t change, the sooner they can build regression tests that they should repeat during every testing cycle and note applicable standards.