Defects reflect a breakdown in a team's system, i.e., the way they work. The greater the number of defects, the more a team's system is in need of repair.
While each team member has ones own personal reaction to defects (anger, disappoint, fear, frustration, indifference etc), none of those responses will help a team identify and address the root cause of a defect, that is the break down in the way the team works.
High performing teams are cross-functional, yet each team member plays specific roles in the team's system. While teams collectively have ownership for delivering value to the customer, each role also has a primary focus. It is important that each team and its members understand the proper response to defects. If a team learns to responds properly, defects will grow increasingly rare.
To a team's customers, a defect creates a lack of confidence in the team's ability to deliver a product or products. The greater the number of defects the greater the loss of trust. A team can have a great product road map and strive to climb it's customers value chain, however if a team's quality is lacking, its road map will provide little value and have little chance of succeeding.
When a defect is opened the following must occur
- validate - a team should attempt to replicate the defect in its environment when possible, if that is not possible, a team should analyze the data to determine if the defect is actually a defect
- categorize - a team should understand the severity of the defect, an example severity definition may be
- critical - renders the customers system inoperable (i.e., frequent crashes, poor performance, poor customer experience etc.)
- major - has significant negative business impact to which there is no known work around
- minor - has negative business impact but a known work around exists and can be easily implemented
- cosmetic, - has little impact but is detectable
- count - all defects must to be counted, it is essential that a team count defects and view them in the larger context of trends, only then will a team know if they are properly addressing the break downs in their system
- track and make visible - it is the business of every team member to know the state of its system (i.e., the way it works), defect trends are a key component to the wellness of its system
Across the board each team member needs to learn to respond as follows
- Automated Regression Testers, look at the regression suite to determine if the team is missing a regression test, if so, add it, if not, determine how did the defect passed through the regression tests and plug the hole
- Information Developers (Documentation) look at the product information and determine if the information is wrong, misplaced or unclear, if so address
- Infrastructure Engineers, look at the environment to determine if it is responsible for defects passing through, if so, what is the plan to fix the environment
- Developers, look at the unit and acceptance tests to determine if they are missing a unit or acceptance test or tests, if so, add it, if not, determine how did the defect pass through our test harness and fix it
- Product Managers/ Owners/ Business Analyst, look at the acceptance criteria to determine if they are missing the proper acceptance criteria (happy and sad paths), if so, add it, if not, determine how did the defect pass through the exit (acceptance) meeting and fix it
- Leaders (Tech Leads, Scrum Masters, Managers, Directors and VPs), look at the system, determine what is missing or blocking the system from working properly, once the item or items have been identified, fix it
A team's product is a reflection on ateam and the way it works. When a team releases its product to its customers, they are promising its customer that the product is ready for the customer to use. That the team has confidence that the product will add value and create a positive experience for the users. When a customers encounter a defect, the team has failed to deliver on it promise. The team has let its customer down. The customer has every right to walk away from the team and its product.
It is important for each team member to accept ones role in delivering great products. Each team member should come to work each day with the goal of creating great customer experiences. Yes, a team may have challenges, however, if the team all agree to take the action continuously as outlined above, they will soon be able able to deliver on its promise of great users experiences to its customers.