In this guest blog, Sonya Siderova describes a 4-step defect management process suggested by the Kanban Method to more sustainable delivery of quality software.
Software Defects are Expensive
Software is bound to play an increasingly important part in our daily lives, so much so that most people take it for granted. Unless the software has defects. The software development community is constantly introducing innovative solutions to bring more customer value, but this hasn’t been without its challenges.
Software defects are very much entrenched in the process, and they often become the main obstacle to revealing the full potential of our solution to the market. Defects are expensive, especially when they make their way to production. In fact, software failures caused $1.7 trillion in financial losses in 2017. The challenges to developing quality software solutions, like constant market demand and lack of time, will remain, and this cost figure is likely to rise if we don’t commit to continuously improving our development practices.
The Kanban Method helps us achieve that goal by describing a 4-step defect management process for a sustainable delivery of high-quality software solutions.
Software Defects and Their Impact on Your Business
There are a number of definitions that attempt to capture the essence of what a software defect is. In any case, trying to find a general description is a dead loss. What matters the most is your context, the impact of defects on your performance, and the cost you need to pay to resolve them.
Software defects occur for various reasons – unrealistic deadlines, ambiguity in requirements, miscommunication within the development team, lack of development practices and last-minute changes, to name a few. The cost of detecting and fixing defects in software increases exponentially with the time they spend in the development workflow. If they escape, defects can become a significant source of customer dissatisfaction, and they may have an adverse impact on your business. Here are just a few of the consequences they bring about.
Delays. Once discovered, defects cause delays to the assignment they belong to and all other assignments that depend on it.
Increased cost. Most defects end up costing more than it would have cost to prevent them. Defects are expensive when they occur, in terms of both the direct costs of fixing the defects and the indirect costs caused by damaged relationships and lost business.
Reduced value. Resolving defects consumes additional time and efforts, which would otherwise be reserved for realizing new business and customer value.
Nevertheless, each failure is an opportunity for improvement. Regardless of the reasons underpinning defects, they call into question the effectiveness of our current development practices and help us learn how to build better, high-quality, cost-effective software solutions.
The 4-Step Defect Management Process
The Kanban Maturity Model describes the core practices of reducing defects to help you improve your business outcomes. Here is the 4-step process which will enable you to achieve a more sustainable delivery of quality software.
- Visualize Defects
As the adage says, “We cannot manage what we cannot see.” The first step of the defect management process is to visualize defects on your Kanban board.
When you’re testing a work item, and a new defect is discovered, create a separate ticket and mark it as a defect. Add the following essential information to the ticket:
- Add a brief description of the defect.
- Add a link to the work item the defect is associated with.
- Specify the reason that has caused the defect.
- Assign the people responsible for fixing the defect.
- Assign severity.
- Use a different color for defects to make them easily recognizable from other types of work.
Increasing transparency is the first step towards reducing defects and raising awareness of the disruptive impact they may have.
- Track Defects
As stated in the book “The Economics of Software Quality”, defect tracking is used in more than 55% of military and defense software applications, but in less than 15% of IT, commercial, web or embedded applications. Given their prevention effectiveness, it is surprising that defect measurement is not used more often.
The second step of the defect management process is to track and analyze software defects on a regular basis.
The Throughput Breakdown Chart can help you evaluate what type of work is demanding the bulk of the time. It is especially useful when you want to emphasize the high volume of defects you’re handling.
The Throughput Run Chart displays the throughput of your team on a daily, weekly or monthly basis and compares its values over time. Use it to keep track of the number of defects you resolve and assess how trends have developed.
- Perform Defect Clustering Analysis
The third step of the defect management process is to identify the clusters of causes hindering your delivery times. To perform defect clustering analysis:
- Evaluate the causes of defects and their resolution times.
- Group the causes by clustering the defects which are similar in nature.
- Capture the total cycle time for each group to discover which are the most critical causes of defects.
Report the defect clustering results at the Service Delivery Review, Risk Review, and Operations Review. That way, you’ll keep your attention on the defects with the highest impact on your development process, and you’ll emphasize the urgency to act upon them sooner.
- Define Relevant Policies
We are now on the last step of the defect management process, as suggested by the Kanban Method. The goal of this step is to bring continuous improvement to your development practices and help you maintain a stable, predictable workflow in the long run.
Introduce policies on how defects should be handled. A defect ticket should be attached to the work item that it belongs to. The work item should then remain in the same process state where the problem was first discovered.
- Create a new ticket for your defect and associate it with the work item that spawned it.
- Place the new ticket in the rework queue state (i.e. Ready for Development).
- Block the work item in the current process state (i.e. Testing).
By adding new items into your workflow, you count them against your WIP limit. An excessive number of defects will then block the pull of new work until any quality issues are first resolved. This approach will also help you avoid the common anti-pattern of moving work backward on your Kanban board.
Getting Ahead with Defect Management
By adopting the defect management process, we managed to reduce our defects with 40% and our lead times with 25% in less than six months. We eliminated one of the main sources of defects that hindered our performance, Unrealistic deadlines, by using probabilistic forecasts to be able to make more accurate future predictions and set realistic expectations.
Following these practices and observing the results helped us improve the quality of our solution. We introduced agile techniques like Definition of Done (DoD), code reviews and pair programming to make sure we eliminate defects at an early development stage. Our team is now more self-managed, motivated and engaged. Shorter lead times led to faster innovation, greater customer satisfaction and substantial profitability.
Make sure your activities are not just targeted at finding defects after they have happened. Focus on making sure the defects do not occur in the first place or, at least, the defects are significantly reduced before making their way into production.
Defect management will help you increase the consistency, predictability and effectiveness of your development efforts, and it will ultimately reduce your delivery times.
Sonya Siderova is the founder and CEO at Nave. She has a decade of experience in software development, product management and process optimization.
Thank you Sonya Siderova for providing this 4-step defect management process which applies Kanban for sustainable delivery of quality software.
Software defects are expensive where software quality is free. Having agile processes alone won’t solve quality issues, you need to have a quality mindset to delight your customers, and you will have to sell quality to your managers to help them to make the business succeed.
Users expect apps to function correctly and do what they expect them to do. Apps should be easy to use, fast, and reliable. Teams can only build and deliver quality if they are driven by the needs of the users, customers, and stakeholders.
If you care about the customer experience of your products, you can get insight into quality by measuring defects. The data can be used to dive deeper and have a good understanding of defects and their impact.
My second book What Drives Quality provides plenty of ideas, suggestions, and practical cases on software quality. This book will help you to improve the quality of your software and to deliver high-quality products to your users and satisfy the needs of your customers and stakeholders.