a stitch in time saves nine Economics of defect prevention 2 a stitch in time saves nine – Economics of defect prevention Abstract Do you think ‘high quality’ means more money and more time? Many organizations think so. In a way it is true for the simple fact that one half of most software development project budgets and two thirds of the typical development team’s time are spent fixing poor quality or software defects. A study conducted by National Institute of Standards and Technology (NIST) reports that software defects cost the U.S. economy $59.5 billion annually. Caper Jones in his 2001 IEEE paper, “Measuring Software Process Improvement,” gave a hope to software executives around the world by revealing that software process improvement leads to 80% reduction in post-release defects and a 65% increase in productivity, while reducing project schedules and costs by 20%. This paper highlights the need for an early detection of defects, its impact on the business & also emphasizes on the cost of fixing a defect. Introduction - Cost of Poor Quality is nothing but “Defects”: An important strategy of any IT organization is to deliver defect free or quality products. But developing the quality product comes with a price tag. Dr. Joseph Juran, the “father of the quality” developed the “Cost of Quality” concept (figure1) – a measure that takes into account all the costs associated with good and poor quality. In essence the cost of quality represents the costs to achieve good quality as well as the costs incurred due to poor quality. Figure 1 Cost of poor quality attributes to internal failure costs and external failure costs. ? Internal failure costs - the cost incurred due to the defects, before shipping the products to production or live environment. This is preproduction cost. © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 3 a stitch in time saves nine – Economics of defect prevention ? External failure costs - the cost incurred due to the defects, after shipping the products to production or live environment. This is postproduction cost. It’s important to correctly classify quality costs to determine how much poor quality is costing your organization. Not all defects in the software development are caused by coding errors. Some examples of defects coming upstream in the software development lifecycle (SDLC) are defects due to misunderstanding of requirements, contradicting requirements, missing requirements, wrong analysis of requirements, incomplete requirements and more importantly unable to identify non-functional requirements such as testability, scalability, maintainability, usability, performance etc. A programmer makes a mistake, which results in a defect in the software source code. If this defect is executed, in certain situations the system will produce false results, causing a failure. However all defects will not necessarily result in failures. For example, defects in dead code will never result in failures. A defect can turn into a failure when the environment is changed. For example, software being run on a new hardware platform, changes in source data or interacting with different software. A single defect may result in a wide range of failure symptoms. Why defects need to be detected and fixed early? : What industry trends on defects say: Industry trends indicate that though 56% of the defects are injected in requirements phase, most of these defects are actually detected in integration / system testing phase only. The longer the defect stays in the program, the more likely to have additional code written around it, the more re-testing to be done and incurring additional cost to fix. So it is evident that it is always less expensive to detect and fix the defects early in SDLC than fixing in the production. Industry trends on defects injection © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 4 a stitch in time saves nine – Economics of defect prevention Industry trends on defects detection Figure 2: Source: Extracts from chapter 5 from the National Institute of Standards and Technology (NIST) Report on “The Economic Impacts of Inadequate Infrastructure for Software Testing”. Relative cost of defects & its impact on the business: The concept of cost of fixing a defect is not well understood. Figure 3 This cost feeds back into SDLC and many managers do not actually know what it costs their organizations to fix the defects. An estimate by Boehm & Basili suggests that the cost of fixing the defect grows exponentially for each downstream phase of the software development lifecycle in which it remains undetected. The fixing of the defect after product delivery can be 100 times more costly than doing so in the requirements and design phases. © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 5 a stitch in time saves nine – Economics of defect prevention Table 1 also shows the cost of fixing the defect depending on the SDLC phase & the time it is detected. If the defect in the requirements is detected post-release, then it would cost 10–100 times more to fix than if the defect had already been detected in the requirements phase. Cost to Fix a Defect Time Detected Requirements Architecture Construction System testing Post-release Time Introduced Requirements 1× 3× 5–10× 10× 10–100× Architecture - 1× 10× 15× 25–100× Construction - - 1× 10× 10–25× Table 1 Table 2 indicates some real time impacts of software defects on the business: Business Cost per Hour Downtime Automated teller machines (medium –sized bank) $14,500 Package shipping service $28,250 Telephone ticket sales $69,000 Catalog sales center $90,000 Airline reservation center (small airline) $89,500 Table 2: Source :Information Technology Project Management, Fourth Edition Calculation of Cost of Fixing a Defect: Formula: Average cost (Number of resources X Duration to fix the defects) to fix a defect = --------------------------------------------------------- X Cost per person-day (Number of defects fixed) Below you would find two hypothetical cases of a project that will help you understand how to determine the cost of fixing a defect & its impact in your project. Project X is developing a financial software product and below are the project details: Duration 11 months Team Size 10 FTE Scope Requirements, Design, Construction, Unit Testing and System Testing Billing Rate $500 per person-day Table 3 Project has spent initial 10 months (as per estimated schedule) in developing the product. Now the project is in the system testing phase. © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 6 a stitch in time saves nine – Economics of defect prevention Before: “All defects are detected in system testing” The project has detected 300 defects in system testing phase and zero defects in previous phases. Refer figure 4. Figure 4 Before Scenario Cost of fixing the defects in system testing: # of resources deployed 10 # of valid defects detected 300 # of defects fixed 300 Duration to fix the defects 60 days Effort to fix the defects 10*60= Bef ore Sce nar io 600 Person days Defect fixing rate 2 person days per fix Billing rate $500 per person-day Average cost to fix a defect in system testing 500*2=$1000 per fix Table 4 System testing defects cost: 1000*300 = $300,000. This is preproduction cost. During post production stage, Project X has spent on an average 5 person-days per fix. At $500 per person-day, the cost per fix is $2500. Project X has released 50 fixes, Total post-release fix cost = $125,000. This is post- production cost. Total cost incurred for fixes or defects (pre production +post production) = $425,000 + Indirect cost*. (Indirect Cost* - system unavailability, service loss, environment setups, technology complexity, project management effort, QA effort etc…). © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 7 a stitch in time saves nine – Economics of defect prevention After: “Defects detected & fixed throughout SDLC” The project has detected and fixed 180 defects in the previous phases and remaining 120 defects are detected in system testing. Refer figure 5. Figure 5 After Scenario Cost of fixing the defects in system testing: # of resources deployed 10 # of valid defects detected 120 # of defects fixed 120 Duration to fix the defects 20 days Effort to fix the defects 10*20= 200 Person days Defect fixing rate 1.6 person days per fix Billing rate $500 per person-day Average cost to fix a defect in system testing 500*1.6=$800 per fix Table 5 System test defects cost: 800*120 = $96,000 +RDC Cost*. (RDC Cost* - Requirements, Design, Construction & Unit Testing (RDC) defects cost should also be calculated same as above table5). For the calculation purpose, let’s assume the RDC cost incurred is 30% system testing defects i.e $28,800. System Test defects cost: $124,800. This is pre-production cost. Post production cost is ‘NIL’. Total cost incurred for fixes or defects (pre production +post production) = $124,800. In the ‘after’ scenario, project X has saved over $300K in addition to saving associated with indirect costs. Other benefits include cycle time reduction, achieving project schedule, better productivity and customer confidence. © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 8 a stitch in time saves nine – Economics of defect prevention Conclusion It takes courage and commitment to make a ‘Zero defect’ policy. But with focused effort one can certainly commit to achieving minimal defects and reduce the cost associated with them. Product managers can absolve themselves from the dilemma of whether we need to do one more round of testing. Defect prevention simplifies the test cycles, reduces overall cost and improves product quality. About the Author: SUDHEER CHIKKERUR is a senior process consultant at HCL Technologies Limited. HCL’s IV&VS - Quality Consulting Group works with client organizations on software process improvements to improve product quality while reducing operational cost. For more information contact us at process.consulting@hcl.com References: Boehm B, Basili VR. Software defect reduction top 10 list. IEEE Computer. January, 2001. Principles of Quality Costs: Principles, Implementation, and Use,Third Edition, ed. Jack Campanella, ASQ What Does It Cost to Fix a Defect? By Johanna Rothman © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved. 9 a stitch in time saves nine – Economics of defect prevention ABOUT HCL HCL Technologies HCL Technologies is a leading global IT services company, working with clients in the areas that impact and redefine the core of their businesses. Since its inception into the global landscape after its IPO in 1999, HCL focuses on ‘transformational outsourcing’, underlined by innovation and value creation, and offers an integrated portfolio of services including software led IT solutions, remote infrastructure management, engineering and R&D services and BPO. HCL leverages its extensive global offshore infrastructure and network of offices in 31 countries to provide holistic, multi-service delivery in key industry verticals including Financial Services, Manufacturing, Consumer Services, Public Services and Healthcare. HCL takes pride in its philosophy of ‘Employees First’ which empowers our 72,267 transformers to create real value for customers. HCL Technologies, along with its subsidiaries, had consolidated revenues of US$ 3.1 billion (Rs. 14,101 crores), as on 31st December 2010 (on LTM basis). For more information, please visit www.hcltech.com About HCL Enterprise HCL is a $5.7 billion leading global technology and IT enterprise comprising two companies listed in India - HCL Technologies and HCL Infosystems. Founded in 1976, HCL is one of India's original IT garage start-ups. A pioneer of modern computing, HCL is a global transformational enterprise today. Its range of offerings includes product engineering, custom & package applications, BPO, IT infrastructure services, IT hardware, systems integration, and distribution of information and communications technology (ICT) products across a wide range of focused industry verticals. The HCL team consists of over 79,000 professionals of diverse nationalities, who operate from 31 countries including over 500 points of presence in India. HCL has partnerships with several leading Global 1000 firms, including leading IT and Technology firms. For more information, please visit www.hcl.com © 2011, HCL Technologies. Reproduction Prohibited. This document is protected under Copyright by the Author, all rights reserved.