Last Friday, we had the inaugural BugKill day, trying to clean up our graphics bugs. During this day, all 10 graphics developers, and 2 lovely people (Scott Johnson and Chris Lord) who aren’t nominally part of graphics, spent their whole day going through all of our open bugs, trying to reproduce them and/or determine if they’re still applicable.
We were able to close 308 bugs out of the 493 total we touched, which translates to a pretty fantastic 63% close rate. (There were bugs we didn’t touch but did look at during this triage, so this percentage is a maximum, but it’s still quite good.)
To do this triage, I ran a Bugzilla query for all all open bugs in the components GFX: Color Management, Graphics, Imagelib, Canvas 2D, and WebGL. (This was about 2500 bugs.) To divide this among our participants, I divided this long list by adding a regex query parameter on Bug ID to choose bugs by last number. (For example, $ for all bugs ending in 1.)
Some of our observations:
* Having an open line to people (e.g. a Skype or Vidyo call) makes triaging easier. There are lots of bugs that are essentially “do such-and-such code cleanup”, and it’s difficult for someone who’s otherwise inexperienced in a piece of code to know if those bugs still apply.
* Being able to shuffle bugs to others’ queues would have been handy. While it’s useful to get fresh eyes on a bug, sometimes bugs will be much more efficiently handled by a domain expert. More on this a little later.
* There were several bugs with patches attached, but no review requests, and nobody had touched them for 4+ years. Bitrot was significant. It’d be worthwhile to do a quick query for patches in your components that haven’t got any review requests; you might be surprised.
* There were other bugs that we’d forgotten for no good reason, and which had easy patches written while triaging. (!)
* Being bold is better than asking people. Resolve bugs as INCOMPLETE, with the invitation to reopen, if you can’t reproduce and need more information from the reporter.
We still have >2100 bugs left open, and if our BugKill experience is any indication, a majority of them aren’t applicable anymore. In the mean time, we’re going to continue doing off-and-on bug killing on the list of bugs we were assigned. And to add to that ad-hoc triage, we’re going to do another graphics BugKill on Friday, November 4, 2011: 3 weeks from today.
However, we’re going to make one important modification to our process: we’re going to allow people to send bugs to others’ lists by (ab)using the QA Contact field. That is, everyone’s queries will have a list of bugs selected by regex, and will also include every bug where the person is the QA Contact. People can send bugs to others by changing QA Contact, and once that person’s triaged that bug, they’ll reset the QA Contact. I encourage others who are considering BugKill to do this from the start.