Finding and fixing defects in software is as old as the practice of development itself. And, like development, defect tracking is done many different ways by different organizations, depending upon the size and distribution of the team, business priorities, and even the development process used.
Many organizations will use an algorithm to help decide what defects get fixed, and when. It can range from “Don’t ever ship software with bugs” to a ranking system, and it will include such calculations as the number of people impacted by the defect, how likely the defect is to come up, how much it costs when it does arise, and how much support the defect is generating.
Methodologies such as agile development and continuous integration and deployment also have changed the game, but in ways that may seem counterintuitive. One might think going faster creates more defects and leaves less time to find and remediate them, but just the opposite is true. Agile development means focusing on smaller pieces of the project, so the amount of change is much smaller, and, according to Jonathan Nolen, a senior development manager at software tool provider Atlassian, “the chances for you to create unintended consequences are less.”
In today’s world, “the acceptable level of quality you’d release has to be higher,” said Alex Perec, senior product manager at TechExcel, which makes development tools. “You want to address issues as quickly as possible.”
This article will crystallize the thoughts and opinions of leading experts into a best-practices guide to defect tracking and remediation.
“It’s really hard to talk about just defect tracking in isolation from the whole rest of your entire project setup,” Nolen said. “It’s a very holistic activity, because anytime you choose to fix a bug, you’re essentially choosing not to do something else. So you always have to balance fixing that bug versus the other thing you would like to be doing. Tying that decision-making process into your entire development team and process is very important.”
Defect tracking must be part of the overall development and planning process, according to AccuRev vice president of product management Brad Hart. “If you say you’re doing agile development and you’re planning your next sprint, there’s going to be stories that you accept into the sprint and you’re going to use your agile planning tool to manage that, but you should also be planning the defects that you’re going to accept. It can’t be as one-offs or on the side,” he said.
Assigning roles is a good way to keep moving forward on a project while also making sure the software’s defects are being corrected, the experts said.