OpenJDK bug database: DRAFT Developer Workflow
Brian Goetz
brian.goetz at oracle.com
Fri Dec 30 16:50:50 UTC 2011
I have a number of issues with the proposed workflow.
1. At the risk of starting with a silly one, Dispatched? Really? Yes,
everyone who has worked at Sun over time has learned what Dispatched
means, but it is a constant question for newcomers, and given that one
of the major motivations for a new bug system is externalizing the
process so that the community can play too, we should err on the side of
using terms that are understood by the community. Every other bug
system calls this "New". Using a term that no one understands sends the
wrong message about who this system is for.
2. Accepted/Understood. I think these should be merged into something
like "Open". The distinction between Accepted And Understood is a very
fuzzy one; in reality there are many shades of grey between them and
achieving understanding often happens gradually over time. Having a bug
transition from one to the other does not provide a great deal of
additional information to external stakeholders, which is mostly the
point of bug state transitions. A good way to evaluate whether this
state carries its weight is: what impact does the transition from
Accepted to Understood have to non-Dev stakeholders, such as the bug
submitter or QE? I think very little, since Understood does not mean
that resources have been allocated to the bug. And the names Accepted
and Understood carry connotations that are easily misinterpreted as
committments to fix.
3. Fixed. Having this be the end of the line seems excessively
Dev-centric. The workflow should support not only Dev, but QE, RE, and
other participants as well. I think a better fit for our process would
be Fix Available, which indicates that Dev has pushed a changeset for
the fix, but that changeset has not necessarily been integrated (RE) or
tested (QE). I would think that the transition after an engineer pushes
a changeset would be to move it to some Fix Available state, and
transfer ownership of the issue to the responsible integrator.
(Similarly, once integrated, ownership of the issue should go to QE to
for verification, who can close the issue.) This more easily enables
reports to show where in the organization the work currently is, where
the bottlenecks are, etc.
Bug states (and other top-level metadata, such as owner) should provide
a simple view of not only where the bug is in its lifecycle, but who in
the organization has ownership now. As a bug progresses, ownership
should transition from its creator to a triage team to a component team
to a responsible engineer to integration to testing to delivery. (Though
it may not be necessary to reflect every one of those transitions as
part of the state.) Similarly, when an engineer or integrator or QE is
done with their part, they should be able to *get it off their plate.*
The workflow should reflect who has ownership of the issue between the
time Dev has pushed a fix and the time it is integrated; pretending that
Dev still owns the issue (and that RE/QE does not) presents a distorted
view of the process.
4. There are a number of other things that are not reflected in this
draft workflow, including:
- What happens before a bug hits the "new" state? What is the
equivalent of today's "webbugs" system? Do we anticipate creating bugs
in this project, or doing what most large projects do, which is have a
front-end triage project whose final workflow stage is to move it to the
New state in the main project?
- What are the access control rules for state transitions? Who can
create issues? Who can assign them to engineers? Who can set
priorities or target fix versions? How does this play into JIRAs
security policies?
- What is our plan for handling when a fix has to be integrated into
multiple codelines? There was talk of a "normalized" data model for
this (which made a lot of sense to me) but I don't see any mention of
that here.
I look forward to seeing future drafts.
More information about the discuss
mailing list