H. Brief Orientation on aspects of Quality • What is Quality? – Various “gurus” have proposed different ideas. One of the most well known was Philip Crosby who promote the following 4 “absolutes” of quality management: • 1. Quality is defined as “conformance to customer requirements” • 2. The system for implementing quality is prevention not inspection • 3. The performance standard must be zero defects • 4. The measurement of quality is the price of non-conformance. 1 H. Brief Orientation on aspects of Quality • Quality Management: – The proliferation of ideas gradually led to the understanding that a holistic approach to all the quality-related properties of an organisation is most likely to succeed. – In software, there have been many initiatives to promote good practice in Software Engineering and Software Quality, including • • • • Capability Maturity Model (we look at this in more detail shortly) ISO “adapted” or “interpreted” for IT organisations SPICE (Software Process Improvement Capability dEtermination) Many industries, especially regulated ones like medical device or aviation software, have specific software engineering and quality standards. 2 H. Brief Orientation on aspects of Quality • Cost of poor quality: – Familiar aspects are extra work to correct and re-test programs, and late design changes because requirements are not properly understood or identified. These “costs” are the “price of non-conformance”. – The objective for a project should be to minimise the cost of poor quality, which can be broken down into • Conformance cost = amount spent to achieve quality products: – Prevention – Appraisal • Non-conformance cost = all expenses incurred when things go wrong: – Internal Failure – External Failure – Prevention: Cost of prevention is the amount spent to ensure that the work will be done correctly, that is, that will prevent defects happening. In software development, examples of prevention costs include staff training and development (e.g. in design methodologies), evaluation of suppliers, quality improvement meetings, and software design reviews. The diagram on the next page (from Yeates & Cadle) depicts that if resources are allocated early in a project to prevent poor quality then the incidence of defects and the costs of rectifying them will fall. 3 H. Brief Orientation on aspects of Quality • Appraisal: These costs include measuring, evaluating, or auditing products to assure conformance to quality standards and performance. For software, examples of appraisal costs include code inspections, testing, and software measurement activities (e.g. complexity metric calculation). Investment should be made early in appraisal as that should lead to decreases in the number of defects in the final product. 4 H. Brief Orientation on aspects of Quality • • Internal Failure: These costs occur before the product is shipped to the customer, and so still under the control of the developer. For software, these include the costs of re-work in programming, re-inspection and re-testing. According to Yeates & Cadle, one of the key strengths of the Japanese quality approach is that they have been able to reduce the costs of internal failures to almost zero. This is because they are orientated around defect prevention and process improvement – in other words, solve the problem, not the symptom. External Failure: These costs arise from product failure at the customer site. For software, examples include field service and support, maintenance, liability damages, and litigation expenses. An unseen cost of customer complaints may be lost repeat orders and a damaged reputation. On average, it costs five times as much to win new customers as it does to keep existing ones! 5 H. Brief Orientation on aspects of Quality • Return of investment in quality improvement – It is clear that much is to be gained by taking measures to improve software quality, and that the focus should be on improving conformance (especially defect prevention) rather than on recovering from non-conformance. – However, every business must evaluate the extent to which they invest in quality improvement and, particularly, that they prioritise measures that are most effective in improving quality. – The following section on the Capability Maturity Model (CMM) offers a framework of processes that most software development organisations must consider, and within which they can choose the processes that they wish to prioritise for investment. 6