On 1/29/2016 6:45 PM, Emma Humphries wrote:
Why This Matters

Bugs are a unit of quality we can use to see how we’re doing.

We believe that the number of outstanding, actionable bugs is the best
metric of code quality available, and that how this number changes over
time will be a strong indicator of the evolving quality of Firefox.
Actionable bugs are those with the status NEW for which the next action
required - if any - is unambiguous: does the bug need immediate attention,
will it be worked on for a future release, will it be worked on at all?

As the sponsor for this project, I want to clarify some things related to this project. The bug-handling initiative is a key part of our Firefox quality programs in 2016. I have asked Emma to focus on our process for making explicit decisions about incoming bugs. There are two primary reasons for this:

* When we don't see incoming regression bugs, that is high risk to our quality and shipping schedule. We have done dot-releases or similar respins numerous times over the past year: in many cases the bugs that caused those respins were filed well before release but either not seen or we didn't react to them. * Our testing community, especially prerelease users, are a core part of our success. We know that one of the greatest turn-offs for people filing their first bug is to have it sit with no response. On the other hand, a quick response is a good predictor of continued and deeper involvement in the project.

I don't think that we are going to learn much about quality or risk just by counting the number of open bugs. So I don't think the statement "best metric of code quality available" is true, and it has generated a lot of the feedback in this thread. But I do assert that a core risk metric is the number of new bugs without a *decision*, and we should be tracking that number and driving it to zero.

Part of the program that is already underway is triaging everything out of Core:Untriaged and Firefox:Untriaged into the proper component. This is a task that we've been accomplishing both with our volunteer community and with the support of Softvision contractors, and we're on track to burn the Untriaged components to 0 bugs by the end of this quarter.

My intention, once we have this system in place, is to focus activities on increasing the both the quality and quantity of incoming bug reports, especially from our prerelease users: building product features which enable users to file more detailed and useful bug reports, combined with data collected within the browser. Filing a bug in bugzilla is still a scary experience for many people, and we can do better.

To keep focus and avoid creeping scope, an explicit non-goal of this program is to deal with the prioritization of non-critical bugs within a team or component. The primary goal here is to solve the flow for incoming bugs to a clear decision-state. Beyond the bucket of "backlog of work", teams can continue to use aha or tracking bugs or external spreadsheets.

One other important thing to note is that we plan on implementing bugzilla UI improvements to make triage much simpler. This may include things like one-click decision making on bugs and autoloading bug reports from triage lists. We expect that work to commence once the initial trials are done in Q1 and we have better experience with the details.

To reply to a few specific comments and questions...

Richard Newman wrote:

In my experience, component watching adequately serves this purpose, and component watchers collaboratively respond to, immediately triage, or flag with a tracking-? flag. That might not be true for some components, but it is for the three products I watch.

I disagree that component watching is working well now. There are components that are well-watched, and it mostly works to surface high-priority (tracking+) bugs. But for non-critical bugs, they are often left filed as NEW without even so much as a comment explaining a decision: the bug reporter is left without a clear understanding of what to expect or even knowledge that somebody has looked at their bug report. We owe it to our community of bug filers to be more clear and explicit with these decisions.

I think it's worth pointing out that it's not always worth assigning bugs to a developer — in my experience that does more harm than good if they're not working on it. Be realistic. Neither does P1 mean anything useful in many of the components I follow.
Emma is talking explicitly about bugs which rise to the level of a tracking+ bug (critical regression or a bug in a new feature). Right now we're living in a world where release drivers mark a bug tracking+ bug many of these bugs remained assigned to nobody forever. This is a bad state and the goal is to start sending out daily alerts for tracking+ bugs without an owner.

Many of our regressions are reported informally on Twitter, as GitHub issues, or on IRC. Those are spotted by engineers or QA who go looking, and those people file bugs. Those bugs, naturally, enter the funnel half-way along, skipping the pre-triage you propose. Can that be improved or leveraged?
The goal is that no bug will be able to skip the per-component decision-making process. Emma will be experimenting with early groups to figure out how to make this work.

We have "tracking-+", "P2", etc. bugs that will realistically never be addressed, because there's always more important work to do. What can we do to not lose sight of those and adjust priority accordingly?

I don't know about P2 in this context, but I don't think that we can afford to leave tracking+ bugs unassigned or unaddressed. That is an essential part of our core quality focus. If a team is only working on tracking+ bugs and is still understaffed, that is something we need to be aware of and fix.

Gervase Markham wrote:

Without wanting to pile on, as I know others have concerns about other
parts of this plan, and without wanting to say it's only you doing this,
but: can we all please stop using the word "community", as this sentence
implies, as "people outside the paid 'team' who get to work on things
which are not important enough for the important people to spend their
time on"? Community is not the antonym of "team", nor is it the antonym
of "employee".

This wording was intentional and we thought carefully about it. The "team" in this case includes both employees and volunteers who are working together from a shared list of priorities, and is responsible for a particular area of code and bugzilla component. That team can make a decision that they, as a group, are not going to prioritize a particular bug ever, but still accept patches from others outside the team (employees or volunteers!) who want to fix it.

Marco Bonardo wrote:

Most of this plan assumes every component has a team that works on it (let alone triage meeting). Well, that's not always the case, some of the components have a responsible that is working on something else or part of another team. For example I'm responsible for Places, I watch the component and try to keep it in order as far as possible, but there's no team and it's not my primary job at the moment. This is an example but it's valid for a bunch of other components, especially in Firefox where the teams cross various components depending on the goal.
This is both true, and part of the problem. We cannot claim that we have a focus on quality if we don't even have the resources to look at the incoming bugs. The goal is to make daily bug triage very fast and painless.

That said, the incoming bug rate for Places is very low: in Q4 2015 there were a total of 30 bugs filed or triaged into Toolkit:Places: https://bugzilla.mozilla.org/buglist.cgi?list_id=12831181&chfieldto=2015-12-31&query_format=advanced&chfield=[Bug%20creation]&chfieldfrom=2015-09-01&component=Places

Dave Townsend wrote:

I'm concerned about making this sort of demand when the component
owner is not an employee, or is the expectation that only employees
would be in these roles?
It doesn't have to be a single person. Maybe it means a rotation with a different person each day, or a weeklong rotation. Mike Hoye is working on a program this quarter to build component triage leads from the community. In the past, this has been one of our big success points in developing the community. In the past I have had triage leads for plugins who were much more knowledgeable than I was about the state of the various trees. There is also I think a natural progression from component triage lead to a role within product management that we need to explore.

--BDS

_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to