Setting the Stage
In this article, we explore and discuss differing thoughts on the subject of bugs and their inevitable impact on your project. Can you, in a Scrum model, add them to your sprint with no estimating or prioritizing? How can you estimate a bug? How do you determine in your application which issue types take precedence: new features or defects?
Just like any good debate, we have an interviewer posing questions and 2 colleagues from the Product/Project Manager team arguing their solutions. Let’s do this!
Debate the Issues
Question One: Problems, issues, broken features, oh my! There are always bugs in software. Bugs represent work required to fix an issue and improve quality of the product. If we assert that all work needs prioritization, are bugs then considered part of a product backlog?
- They should be recorded, reviewed, and prioritized with the product manager.
- Each sprint can have new features and a few rolled over prioritized bugs (scoped/unscoped).
- Within a sprint, keep checking with the product manager for re-prioritization between stories and any blocker production bugs and their impact on the sprint.
- However, bugs found during a phase like UAT are added to the team’s backlog to be triaged for priority and clarification.
- Not all “bugs” are the same. All too often a “bug” is not a functional issue, but rather an unclear user experience or a needed change to scope. People can be too quick to enter an issue as a bug when they might be better classified as a feature change — to be scoped and implemented at the appropriate time.
Question Two: Do we estimate the work required to fix and test a bug that was discovered? Work is work, right? Or are there other reasons why we don’t estimate?
- “Same sprint feature bugs” – should not be estimated additionally
- “Backlog bugs” – Ideally, I would not estimate bugs. But if they are older unclear issues, it’s a good idea to consider adding a spike to investigate and determine the effort needed to fix. It could help the product manager prioritize them based on their effort. This would also help in planning/reporting, to convey how many more sprints we would approximately need to complete the project.
I would be sensitive and balance expectations before assigning effort to bugs:
- “Is the team casual about the bugs being reported since bugs are counting towards velocity (hence, no incentive to mitigate the bugs)?”
- “Will the client be concerned about bugs reducing the velocity for feature development?”
There is nothing wrong with estimating bugs, as long as these expectations are clear, and it works best for the team and the client. A word of caution, be mindful of the team velocity and ensure it is being maintained.
- Code presumably will need refactoring. Which, for all intents and purposes, is writing code. You’ve estimated code development for a user story, why wouldn’t you do the same for this new code?
- Unit and integration tests will need implementation or updating.
- This new work will need to be scoped, prioritized, agreed to, and assigned. Again, just like you do with a user story.
- The sprint impact will be the same as a user story — there is a functional change or addition to the previous build.
Question Three: Regarding work effort for bugs and commitment to fix a certain number of bugs within a sprint, how do you figure out what the team can commit to if a bug isn’t estimated?
- In sprint planning, it would be good to check with team members on prioritized bugs. Ask the team if they understand what the issue is. Do they know what the overall solution is? Can they commit to fixing the bug, considering other new features being delivered?
- Even if the team has no recorded estimates, this method still takes into consideration the impact on time and if that issue can be addressed.
- Teams need to put in more time to address the work not completed (i.e. bugs).
- That being said, any development-heavy fixes or large impact bugs should be analyzed, discussed for solutions and estimated, because they can affect the velocity to a greater extent.
Question Four: Let’s dive into the struggle between overall quality and the business value added by new feature development. Please discuss influencing product owners to prioritize bugs within a sprint over new features. In other words, how do you assign business value to bugs?
- Consider a periodic “bug review” meeting with the product owner. This is a good option for those prioritization discussions. Product owners are willing to prioritize functional defects and address technical debt over building new features if the bug’s impact is understood. As project leads, we are there to help guide decisions and foster a balance to sprint work and to keep things moving in the right direction.
- Handle with care. Technical debt is expensive. Interdependent features and reusable components with issues/bugs that are being extended, or having new features built on top in a coming sprint, are more costly. The longer you wait, the larger the negative impact to your budget and product quality.
- Users become easily frustrated having to deal with product issues. If you have UX teammates, seek out user experience recordings to demonstrate these user frustrations to the PO. This will help plead the case for bug priority over features.
Question Five: The dedicated bug sprint. What happens when there’s “never enough time” to fix all the bugs. Quality is suffering. The support team is overwhelmed. We’ve all been there. Are bugs estimated in this situation of a bug bashing sprint?
- Scope the defects, address solutions, and prioritize the bugs based on business value.
- After a go-live release, many teams decide to take a break from new feature development and plan a “bug fix sprint”. This could be shorter than a standard sprint depending on the needs of the project.
Conclusion
Every team has their own approach to managing, estimating and prioritizing bugs. Remember, there’s no one right way to manage bugs or conduct a sprint.
Here are some takeaways from our discussion.
- Acknowledge bugs exist and will always exist in software. Plan for bugs but work with your team to mitigate them.
- Categorize reported issues into bugs, new features and change requests.
- Prioritize bugs against new features using a combination of effort and business value.
- Respect your team – work with them to find the best solutions and give praise for their battle against bugs.
- Be mindful of harboring technical debt; it will eventually sink your (product) ship
- Don’t be afraid of a Bug Bashing sprint – make it fun for the team!
- Read more on estimating and predicting your future with confidence.
A special thank you to Dave Collins and Gauri Mohile for accepting this challenge!
![](https://themodusstage.wpengine.com/wp-content/uploads/2017/12/avatar_user_84_1512159517.jpg)
Dave Collins
Related Posts
-
Product Manager vs. Project Manager
A strong product development team will usually have two extremely important roles defined: the Project…
-
Modus Create Announces Partnership with Pendo
Modus Create is excited to announce our official partnership with Pendo, the best-in-class product management…