I believe Bugzilla's workflow can be improved using one of the central ideas from Getting Things Done, the "next action".

Currently, the answer to the question "what is needed to move this bug forward?" is scattered throughout each bug report. Sometimes it's a keyword, sometimes it's a review flag, and sometimes it's the third-to-last comment. It takes me maybe a minute per bug to determine whether I can help, and this wasted time adds up quickly.

Next-actions for bugs

I propose replacing the status field with a next action field, and the assignee field with a next action assignee field. The "next action" field answers the question "what is needed to move this bug forward":

All bugs Understand what's wrong with the code

Write patch

Automate test

Review patch

Approve patch

Push patch to mozilla-central Major refactorings Create tests for existing code

Design new code

Review design

Test patch on try server

Test patch against fuzzers

Fix whatever caused the back-out New features Provide ideas

Experiment by writing extensions

Experiment in a usability lab

Consider security ramifications

Consider accessibility concerns

Decide whether it goes in

Specify desired behavior in detail Layout bugs Reduce testcase

Find regression range

Check against CSS spec

Get crash stack

Get hang profile

Run under valgrind

Debug with gdb

Organizing actions by context lets me remember projects when I can move them forward, rather than when they only increase my anxiety. This may be even more important in a community system: who you are is a key context determining whether you can do something.

With a next-action field, it would be easier to find places to put my skills to good use:

Did Brendan hope to have this patch fuzzed?

What bugs are waiting for input from the security team?

What bugs could benefit from extension-space experimentation?

With the addition of a next-action-assignee field, I'd also be able to do searches like:

What have I been asked to do in Bugzilla?

What blockers are stuck on me?

What bugs need someone to volunteer to make a reduced testcase?

Simplifying Bugzilla

I'm asking for new fields, but I think this will actually make Bugzilla less complicated. The "next action" field and its assignee would replace:

The current "status" field, which is mostly useless because each open state (unconfirmed / new / reopened / assigned) can mean so many different things.

The current "assignee" field, which is misleading when the next action required is anything other than "write a patch" or "check it in".

Eleven keywords: uiwanted, qawanted, helpwanted, stackwanted, icon, testtracker, crashreportid, regressionwindow-wanted, testcase-wanted, checkin-needed, push-needed.

Status whiteboard markers like "[needs review gavin]" and "DUPEME".

Many comments that are only temporarily meaningful.

It would also make our process more transparent: there is always a first-level answer to "Why hasn't this bug been fixed yet?"