“ The path to lower costs, shorter schedules and all good things, is to focus on measuring and improving quality. Mistakes happen, but a focus on quality that detects and fixes defects in the early work products can have a huge impact.”
Based on a team of 100 developers, your average annual spend on software development can approach $13.5 million. That’s a lot of money. At Lighthouse, we spend our R&D dollars on finding ways to maintain quality, improve your team’s productivity and shorten your schedule, all while providing an opportunity to help your development team improve their work-life balance. To help explain this to the industry, we coined the phrase:
Defects + Delays = Dollars
Defects cause delays and delays cause projects to go over budget. The path to lower costs, shorter schedules and all good things, is to focus on measuring and improving quality. Mistakes happen, but a focus on quality that detects and fixes defects in the early work products can have a huge impact. For example, a user story defect that isn’t found during the grooming session ‘leaks’ into design. If the defect is found before leaving requirements, the approximate cost to correct the problem would be $250 but if the defect is found during design, it will cost 5x more ($1250) to make the fix. And if the defect further ‘leaks’ into the code, it’s another 5x more expensive ($6,000). As you can see, this 5x factor compounds and the cost impact is exponential! Note that Hewlett Packard’s study on the cost of defects ‘leaking’ shows that the compounding impact is actually 10x!
To address this problem, we recommend that organizations start by focusing on two main quality measures: Defect Potential and Defect Removal Efficiency (DRE). In this article, we’ll focus on understanding Defect Potential – the number of defects being injected into the application across the entire Software Development Life Cycle (SDLC). By lowering your Defect Potential, most organizations can realize a cost savings/reinvestment potential of 15 to 30 percent, or up to $4 million based on a team of 100.
Defect Potential varies primarily based on the strength of the team and the size of the project. As you might imagine, strong teams inject fewer defects than weak teams. Additionally, smaller projects are simpler, so they have less defects per line of code (LOC). As shown in Table 1, an average-performing team working on a tiny project with just 50 LOC averages 1.5 defects, while the same team developing a project with five million LOC averages more than 8 defects per 50 LOC. As the magnitude of the project increases, the percent of defects, or Defect Potential, increases exponentially.
Defects are introduced in all work products during the software development process and in order to reduce your Defect Potential, you must know where to find the defects. Table 2 provides a closer look at a typical-sized project with 50,000 LOC. Notice that defects are introduced into all work products starting with the user story/ requirements gathering. Even though there is defect potential in every work product, most testing efforts focus ONLY on the code. Table 2 also demonstrates the benefits of using an Agile development approach. In every work product, an average team using Agile produces significantly less defects than the industry average.
*A special note about bad fixes. Bad fixes occur when coders fix one thing but break something else, or when they think a defect has been fixed, but it’s really not fixed at all. At Lighthouse, we see the impact of bad fixes as being much more significant than illustrated in Table 2, sometimes with bad fix rates as high as 35 percent and rarely lower than 15 percent. In the fast-paced world of Agile development, this is an area that merits special attention. While the average defects per LOC for Agile are less than industry benchmarks, the impact of bad fixes can quickly corrupt the fast pace of a sprint.
So, how do you reduce Defect Potential?
- Think Broader – Test Early, Test Often
- Don’t just focus on code. Defects occur in all work products so train your team on techniques to ferret out these defects before they have impacts downstream.
- Think Smaller
- Smaller, simpler systems have higher quality. Break projects into smaller pieces.
- Consider an Agile Methodology
- Agile drives smaller projects and more efficient teams
- Build Stronger Teams
- Small: Smaller teams deliver higher quality
- Believers: Team members must believe project goals are achievable
- Motivated: Productivity improves when team members believe in the mission, enjoy what they are doing and are treated with respect
- Highly skilled: Don’t settle on talent; stronger teams inject fewer and find more defects. So, train them!
- Employ Company-Wide, Consistent Processes
- Consistent cross-training provides the flexibility to move key team members and continually improve processes
Finally, not all the benefits can be measured in dollars and cents. Reduced Defect Potential equals happier teams. The productivity increases achieved through a focus on quality software can decrease workloads, resulting in a better work/life balance, higher employee satisfaction and less turnover.
Stay tuned for our next article on Defect Removal Efficiency!