This post was originally published on May 2, 2018, and updated most recently on March 6, 2021.
Fixing bugs is a necessary part of every digital project. But as you’re making fixes, it’s important to ask yourself, “Am I actually solving the problem, or just resolving the immediate symptom?” If you don’t understand the source of your bugs, chances are you aren’t making the best decisions on how to deal with them.
By asking a few essential questions, you can eliminate redundant issues and prevent future problems. Next time you’re assigned a bug, ask yourselves these questions.
Is this bug an isolated incident?
What at first might seem like a one-off error could easily be affecting other parts of your code. Look up and downstream of your execution path. Look at siblings and parallel paths. Once you fix your bug, ask, “How did the system behave with the bug, and how is that behavior different now?”
It’s always a good idea to do a quick audit of the rest of your code. Pay particular attention to areas with similar functionality to ensure there aren’t parallels repeated across your product or site.
What might seem like a simple case of a missing character or incorrect library call could be a mistake that reverberates throughout your system via cases of abstraction and duplication.
What is the impact of this bug?
While most of the bugs you deal with will have little impact, some might be way more important than you realize.
Bugs affect more than just a user’s ability to carry out a function. They affect your stakeholders, product reputation, and your team members’ work. Depending on the seriousness of the impact, your team may need to engage with those affected to ensure that they can correct or mitigate any lasting negative impact. Regardless of whom it affects, you need to understand the impact of the bug.
Understanding the consequences of a bug may require some communication with other teams. While this sort of investigative work might seem time-consuming, those impacted by the bug will greatly appreciate you and your team’s follow-through. Fixing bugs isn’t always a matter of correcting some code. It’s also about managing the relationships with the people that code affects.
How can I stop this bug from happening again?
Even the most Agile-oriented development teams often forget to treat bug tracking and fixing likeany other part of their development cycle. It should be treated as a process to be continuously reviewed and iterated.
Once you’ve released a fix for your bug and mitigated its impact on the business and users, it’s time to think about how the bug happened in the first place. Ask questions like:
- When and where was the bug introduced?
- What gaps in your current process allowed it to release in the first place?
- Is there a correction to prevent similar errors in the future?
There may be a clear solution, or there may not. Regardless, we can’t overstate the importance of this kind of thinking. If you don’t put in place a solution to prevent similar problems in the future, you’ll likely see similar bugs again and again.
What does my team need to address this problem fully?
From proper resourcing to work allocation, a team’s performance fluctuates under several factors. You want to set your team up for success in everything they do, including bug fixing. Ask yourself:
- What kind of tools does my team need?
- Does my team support one another?
- Do they get the support they need from other teams?
- Does my team have the guidance they need to make good decisions?
Your team may find that there simply aren’t enough hands on deck to fully tackle an issue in a timely manner. They may lack a skilled project manager who can properly balance the team’s full workload. Or they could need a better bug tracking tool for handling the volume of fixes they’re addressing.
If you aren’t sure how to answer these, ask your team what they need and tell them what you need from them. From there, you optimize your environment for everyone.
In our project management tool, Backlog, you can easily track issues of all types. And that includes bugs. When you’re working on tasks in Backlog, whether you’re a project manager or working on QA testing, you can add a new issue. Just make sure to add ‘bug’ as an issue type for your project. Then, every time you encounter a problem, you can add an issue with that type and assign it to your designated dev team member to find the solution.
By answering these questions during every bug fix, you, your team, and your product will benefit from the answers. Whether you end up with a bug that truly was a one-off or you discover a bug that’s the tip of an iceberg, these questions will help you analyze each bug down to its real cause and plan for every effect.