This is a follow up on a post I wrote earlier about how I like to use Scrum and ScrumWorks for my projects. After writing that post I have had some good discussions on how to manage bug fixing in a Scrum sprint. A good friend and former colleague of mine wrote a good post on how they achieve this in mBricks using JIRA and GreenHopper.
The last months I have been handling bug fixes and rapidly incoming change orders in ScrumWorks and this have been (in my opinion) a great success.
The first thing I did was to create two new releases in my uncommitted backlog. One called Bugfix and the other called ChangeOrder.
For each bug report I added the bug as a new backlog item under the Bugfix release and estimated it by detailing the backlog item with all tasks that needed to be done to fix the bug. When I added a new bug I also prioritized this bug against the already existing backlog items under the bugfix release.
By doing so you have control on all the reported bugs and you know the total amount of efforts it takes to fix all bugs.
For each change order I did the same as for bugs; added a new backlog item under the ChangeOrder release, detailed it with estimated tasks and prioritized it against the other existing backlog items. For change order the customer (Product owner) were involved in prioritizing the backlog items.
When planning a new sprint it is easy to drag the prioritized backlog items (from the Bugfix and ChangeOrder release) over to your sprint and commit to them.
If a critical high priority bug or change order is reported in the middle of a sprint you can re prioritize your sprint by committing to the new backlog item(s) and move already committed items out from the sprint and back to the uncommitted backlog.
I think this is a great way to handle bug fixes in Scrum and by using ScrumWorks I also feel that I have full control over the project.
I created a simple consept model showing how development, testing and bug fixing can be combined in Scrum.