Tuesday, 8 December 2009

The Quality Landscape

No software system is completely and utterly defect-free. The testing and reviewing that youperform will always highlight defects and deficiencies in your outputs. The level of testing and reviewing that you actually perform and when you perform it dictate how many defects can be highlighted and fixed before the system is put into live service or production. The preparation, execution, and delivery that you perform should really ensure that quality is maintained throughout the project. The software quality landscape encompasses the categories and measuresfor defining and maintaining software quality. The measures are intended to reduce the number of defects that are found out late in the process and to produce high-quality code and artifacts throughout the project. There’s no doubt that quality has costs associated with it, but the extent to which it actually costs needs to be understood, controlled, and minimized without compromising the final result.

I consider quality to be a component of scope, and the software quality characteristics contain the high-level categories for each of the quality areas. The total number of defects and their scale should be reduced as much as possible during construction to avoid unnecessary delays, excessive numbers of defects during formal testing, and cost overruns. To support these principles, you need to implement and employ tools and processes that help to maintain quality throughout the project.

For more information you can download and read the full Chapter 2: The Quality Landscape from my book Design - Build - Run.