With the rapid growth of software development, faster release cycles, and the boom of software-based businesses, there is a greater need for high-quality software solutions. This quest for quality will only grow in the future. For all testing professionals, upskilling is a must. Bug Advocacy is a useful skill that can help you be highly effective and valuable.
I have condensed my thoughts on Bug Advocacy in this article. I will discuss bug advocacy using the 5W1H (What, Where, Who, Why, When, and How) approach.
What is Bug Advocacy?
From a learner’s perspective, Bug Advocacy is the persuasive art of advocating for bug fixes. However, for bug advocacy practitioners, this skill often extends beyond advocating for bug fixes. It also involves advocacy for:
Quality: Jerry Weinberg defines quality as value to someone. Bug advocacy involves emphasizing the potential value loss from bugs.
Customers: Different stakeholders often have different perceptions of value. An external customer may not appreciate what is valuable to an internal customer. Bug Advocacy involves looking at the issue from all perspectives.
Product Success: You can experience momentary success in certain situations. However, long-term product success comes from the rigor of engineering discipline, conscious decisions, and judgments. Advocacy will help you present information to allow your stakeholders to make well-informed decisions.
Now that you know what Bug Advocacy is, it is equally important to understand what it is NOT. There are a few things that are often misunderstood as Bug Advocacy:
Embarrassing programmers
Advocating for any random issue.
Showcasing a wrong picture to the stakeholders by misleading compelling stories.
Where to Use Bug Advocacy?
Bug Advocacy skills can be used during verbal communication during triage calls or during Mention In Passings (MIPs). However, verbal communication is often limited to an audience who is present at that time.
As testers, one of the primary work products is the Bug/Issue Reports, which most testers use to build an influential report. In addition, using it for communication via email or chat can be helpful.
Who Uses Bug Advocacy?
Often, Bug Advocacy is used by responsible testers whose main responsibility is testing. In addition, it can also assist supporting testers/developers with building good case studies around bugs that matter and influence decision-making.
Why Do We Use Bug Advocacy?
Hopefully, you have already understood why bug advocacy is important. Here are some more reasons why you should consider learning this skill:
Get the RIGHT bugs fixed
Overcome objections
Hedge against potential future loss
Promote quality consciousness
Prevent technical communication failure
Building credibility
Enabling efficient decision-making
When Do We Use Bug Advocacy?
Your Bug Advocacy Skills will be helpful throughout the Project Life Cycle. However, there are specific considerations based on the stage of your project that may help you be more effective as a tester.
Early to mid-stage of the project: Identifying different bugs in the early stages will give you an advantage when advocating. It is easy to advocate for the following areas at an early stage:
Design issues
UI / UX issues
Usability issues
Accessibility issues
Any other impacting issue
Late / End Stage of the project: This is the time to focus on major and critical bugs. Don’t wait to advocate such issue(s) in the final stages:
Design issues
Minor Low Impact issues
How Do We Use Bug Advocacy?
Once you understand the What, Where, Who, Why, and When, the most important question is HOW to start with Bug Advocacy?
I will list some of the top tips to help you get started with Bug Advocacy:
Add Information Beyond Test Results: You will always gain an edge by adding information that isn’t directly visible. Here are a few areas to look for such information:
Competitor Comparison: Everyone wants to perform better than their competitors. Are we aligned with the state-of-the-art?
Concerns of Stakeholders: Quality is valuable to someone. Look for the concerns of that someone!
Predicted Criticism: Are there some past incidents where similar issues have brought criticism?
Usability Weakness: Is it too hard to use? Will we lose out on potential customers because of this?
Expert Opinion: What do the experts and important authorities say about such issues?
Legal Issues: Can we end up in legal trouble that no one has considered?
Credible Sources: What do credible sources say about such issues?
Support Costs: Can this inflate our support/marketing costs?
Motivate the Programmer: Programmers are usually the first line of defense for any proposed bug fix. However, in certain cases, they would want to fix the bugs immediately:
The bug looks really “BAD.”
The bug will affect “LOTS” of people.
Getting to the bug is “TRIVIALLY” easy.
Bug “BREACHES” the contract or “EMBARRASSES” the Company.
Write Quality Technical Reports: The more you simplify, the better people will understand. Here are a few tips to help you write quality technical reports:
Write the summary/title clearly.
Have a clear and consistent tone.
Eliminate grammar/typo Issues; proofread once or twice.
Logically group your supporting arguments:
Impact
Risk
Support Costs, etc.
Research the Failure Conditions: Don’t rush into reporting the bug if you find a failure. In many cases, what you are experiencing might be a symptom of a larger problem. Here are some tips to help you with researching failures well:
Look beyond the symptoms.
Do follow-up work to prove that the issue is:
More severe than it appears
More general than it appears
Try to find other follow-up errors by varying:
Data
Behavior
Options & settings
Software & hardware environment
Conserve your state (& steps)
For all our visual readers, I have summarized this entire article in the form of this mind map
I hope this article helped you learn more about bug advocacy and how to start with your bug advocacy journey. If you want to dive deep into this topic, I have also added a few references for you:
Rahul Parwal is an expert in software testing. The recipient of the 2021 Jerry Weinberg Testing Excellence Award and Synapse QA’s Super Voice Award, Rahul has collaborated in testing IoT systems such as Unit, API, Web, and Mobile as Senior Software Engineer at ifm. Aside from holding webinars, conferences, and talks, he regularly shares on Twitter, LinkedIn, and his website.