Home > Articles

  • Print
  • + Share This
This chapter is from the book

Improving Quality with XP

XP is very strong at producing high-quality software. What is quality? Quality is ultimately subjective and depends on the situation. A high-quality medical software product has a completely different set of expectations and requirements from, say, a consumer-marketed software game. To define what quality is we need to think of it from each stakeholder's point of view. Table 3.3 lists the common stakeholders with a software product and their definition of quality.

Table 3.3 Stakeholder Definitions of Quality

Stakeholder

Definition of Quality

User

The person who directly interacts with the software product. As the end user of the product he has concerns about functionality, robustness, performance, usability, and reliability. They need their application to ease their workload and can be trusted to operate consistently.

Customer

The person or department that purchases the software (these are often NOT users). They might be the project owners and define the functional requirements of the system. They are not concerned about usability and to a lesser extent, performance. Customers consider costs, supportability, availability, and manageability.

Investor

Investors in a product development scenario and those stakeholders that fund the complete product cycle. They are concerned about service costs (the overheads required to support the product) and intellectual property. They expected that the software might be reusable or perhaps form the start of a new product line. Their vision is more long term than other stakeholders.

Developer

Developer includes all those people actively involved in the core software development of the product. They are concerned with defect rates, conformance to internal standards, performance, and technical quality.


Quality, then, is in the eye of the beholder and means different things to each stakeholder. There are, however, some key attributes that we can use to explain quality. Table 3.4 lists some of these quality attributes and details about how XP enables quality.

Table 3.4 Attributes of Quality Showing How XP Enables Quality

Attribute

Description

XP Practice(s)

Usability

The ease of use of the system from the end user's point of view

On-site customer

Scalability

The capability of the software to handle increasing capacity (users, amount of data, and so on)

Testing Continuous Integration

Availability

The percentage of time the system is available for use by the users

Simple Design Refactoring Testing

Maintainability

The measure of how economic the costs of repairing defects is

Testing Collective Ownership Code Standards Pair Programming

Supportability

How easy the system is to upgrade or patch while running

Simple Design Testing Continuous Integration

Functionality

How close the system's features meet the customer's requirements

On-site customer stories Metaphor

Extendibility

The ease at which new features can be added to the system

Simple Design Small Releases Continuous Integration

Mean Time Between Failure (MTBF)

A measure of system reliability— the average time between failures

Testing Collective Ownership Code Standards Pair Programming


Users of XP achieve quality software products (covering all the aspects of quality) with the combination of its 12 practices.

  • + Share This
  • 🔖 Save To Your Account