What are some of the different patterns you use to schedule maintenance work (any non-feature work like bug fixes, technical debt reduction, etc.)? In our organization, we've considered mash-ups of the following:
- Finish feature commitments and then peel off teams for maintenance work during test or warranty cycles
- Bug Quash (a social event where the goal is to fix, or “quash”, as many bugs as is humanly possible in a time-boxed period)
- Schedule fixed capacity up front in each release (e.g. plan for 1 sprint per team in a release)
- Dedicated full-time bugmeister to triage and coordinate fixes with teams
- Ping-pong the maintenance work between off-shore teams
Note, we follow two guiding principles in this area of practice:
- People should fix their own bugs to the extent possible
- No dedicated maintenance teams
Note, too, the reality is we have bugs. Please don't tell me to find a way to eliminate bugs so that we don't have to worry about solving for this problem. I'm interested in other ideas about how to approach the problem.
(P.S. credit Nate Beck for the Bug Quash idea - thanks Nate!)