Using the Cost of Quality Approach for Software

November 1998 The Nature of Software and Its Quality Software is pervasive in modern society, but we are often unaware of its presence until problems arise. Software is one the most important and yet one of the most economically challenging technologies of the current era. As a purely intellectual product, it is among the most laborintensive, complex, and error-prone technologies in human history. Even though many successful software products and systems exist in the world today, an overall lack of attention to quality has also led to many problematic systems that do not work right as well as to many software projects that are late, over budget, or canceled. In short, “Software Quality Matters. ” [1] Although no standard industry definition exists for what constitutes good quality in software, it is generally taken to mean that a software product provides value (satisfaction) to its users, makes a profit, generates few serious complaints, and contributes in some way to the goals of humanity (or at least does no harm) [2]. Software quality is difficult to define because there is no single comprehensive and complete standard definition of its lexicon. Various aspects and terms are found in sources such as ISO 9000-3, Institute of Electrical and Electronics Engineers Software Engineering Standards, and various books on the subject. The following are the key dimensions of software quality. • Level of satisfaction. The degree to which customers or users perceive that a software product meets their composite needs and expectations. • Product value. The degree to which a software product has value for its various stakeholders relative to the competitive environment. • Key attributes (“ilities”). The degree to which a software product possesses a combination of desired properties, e.g., reliability, portability, maintainability. • Defectiveness. The degree to which a software product works incorrectly in target user environments due to debilitating operational defects. • Process quality. In relation to the development process by which the product is produced, it means good people doing the right things in an effective way. A definition fashioned from the above aspects should be created for your organization and for each project. Every application or business domain faces a specific set of software quality issues, and software quality must be defined accordingly. For example, mission-critical applications have extremely stringent operational needs, whereas typical information system applications must focus on general measures of customer satisfaction. It also is important for each software development project to define its specific meaning of software quality during the planning phase. Such a definition contributes to the basis for setting objectives and practical measures of quality progress and determination of readiness for release to customers. An example of such a definition is shown in Figure 1 as a Figure of Merit (FOM) Quality Factors Model. The categories and subcategories of the FOM model can be weighted as needed for use by domain or system. The FOM would be the sum of the weighted factors. Now that software quality has been defined and its supreme importance established, it is necessary to examine the cost perspective of the economics of software quality, a subject in serious need of an underlying theory.