Free download: 200 User Story Examples
A common agile project management question is whether bugs belong on the product backlog. Before I address that question, let me clarify that the question refers to bugs that are unrelated to functionality being coded during the sprint. If someone finds a bug during a sprint that is related to the features being worked on, the best thing to do is yell, "Hey, Mike, the boojum code is broken when I..." The second best thing to do is to stick a new task card on the task board saying "Fix the boojum code; it breaks when..." But what about a bug found today in something the team wrote a month or a year ago? And what about the existing bug database that a team new to agile is almost sure to bring with them?
The ideal situation is to put the bugs right onto the product backlog. To see why, consider the situation from a user's perspective: Do you think a user cares whether something is considered a New Feature or a Bug? No. The user just wants the system to behave in some way different from how it behaves today. They don't care what it's called.
But notice I called this the ideal situation. It isn't always practical--and sometimes for reasons out of the team's control or influence. Bug databases have a way of becoming embedded into organizations. The tech support group uses them as a primary way of communicating with the developers. The marketing group uses the bug database in a similar way. This makes it quit the bug database cold turkey.
In these cases, the most common solution team's use is to have two backlogs
- a product backlog of features
- a bug backlog
This approach is a bit harder on the team and the product owner but allows an agile team to work more easily with existing processes in the organization.
Sometimes when we make such accommodations to the overall organization, the accommodation can damage or destroy the agile adoption. Allowing everyone to work on five concurrent projects is an example of a crippling accommodation. Accommodating the organization's use of a bug database is not crippling. It's just a bit more work.
The product owner takes on most of the additional work by having to prioritize two separate work queues and then present them to the team in a more or less consolidated manner ("My top priorities are the first three items on the product backlog, then bugs #12403 and 12415, then these next two items on the product backlog..."). This isn't too onerous as the items would need to be prioritized even if all were in one backlog.
So: Ideally bugs belong on the product backlog just like any feature request. But, that would often necessitate a significant change for the rest of the organization so two backlogs are used.