Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News An Introduction to Software Quality

An Introduction to Software Quality

Leia em Português

This item in japanese

In two recent papers, David Chappell, Principal of Chappell & Associates, outlines the different aspects of software quality – functional, structural, and process-, the groups of people directly interested in quality –users, developers, and sponsors-, and the outcome of defects in externally or internally facing software over time.

In the paper The Three Aspects of Software Quality: Functional, Structural, and Process (PDF), Chappell outlines three facets of the quality of a software: functional, structural, and process, each one being related in some way to the three groups of people directly interested in the final product or service: users, developers, sponsors. Functional quality expresses how well the software performs the tasks requested by its users. Chappell distinguishes four attributes of this type of software quality:

  • The software meets the specified requirements
  • It has few defects
  • It has reasonable performance
  • It is easy to learn and use

Structural quality measures how well the software is organized, being defined by the following attributes:

  • Code testability 
  • Code maintainability
  • Code understandability
  • Code efficiency – does it manage resources efficiently?
  • Code security – does it prevent common security threats?

While functional and structural quality “get the lion’s share of attention in discussions of software quality,” Chappell considers that process quality is also very important, its most known attributes being:

  • The software meets delivery dates
  • It meets budgets
  • A repeatable development process is in place, one that reliably delivers quality software

Chappell considers that users are mostly interested in functional quality, and have some interest in the delivery dates attribute of process quality. Developers care mostly about structural quality, because it has a direct impact on their work, but they also are interested in  functional quality, but not as much as the users, and in process quality because “it provides many of the metrics by which they are measured.” The sponsors of a project should care about all aspects of software quality, knowing that each facet has an impact on the final results.

In the paper The Business Value of Software Quality (PDF), Chappell discusses the impact of low quality software on a business. He distinguishes two types of software: externally facing software – used by an organization’s customers, and internally facing software – used by an organization’s own employees.

Chappell recalled the damages following a security breach of Sony’s PlayStation Network in April 2011 when 70 million accounts were compromised due to an exploit of a known security vulnerability in a certain database, and a backup system failure affecting RIM’s customers worldwide for three days in October 2011. Such quality defects have the following impact on the business over time, according to Chappell:

  • Financial losses due to lost business
  • Financial losses due to reparations needed to be performed
  • Financial losses due to lost customers
  • Financial losses due to legal lawsuits
  • Brand value losses

Lack of quality in internally facing software can lead to the following outcome over time:

  • Slower user adoption
  • Reduced business benefits 
  • More challenges for IT leaders
  • Lower brand equity for the IT department
  • Greater chances for outsourcing the software

All three quality aspects need to be attended to – functional, structural, process – both for internally or externally facing software in order to reach a successful outcome. 

Rate this Article