Security/Driving

From MozillaWiki
Jump to: navigation, search

How do we effectively prioritize and drive non-feature work?

Problem

While feature work gets a lot of natural attention both internally and externally, an equally important part to any successful product is something we can call "non-feature" work. This includes security, stability, usability, performance, localization, and other general quality work necessarily to consistently deliver products users trust & love to actually use.

The question is how can we effectively prioritize these different sets of non-feature work (and stakeholders) against each other and against feature work. Right now those priorities are set completely independently of each other, making it hard to prioritize work consistently across teams.

A related but different problem is that each group then has to manually chase developers to ensure their priorities are addressed, putting developers in a fundamentally reactive role. We should have a way to drive towards consensus on each bug early in each release cycle that gives everyone involved a common understanding as to the intended outcome (eg. where a given bug falls into the list of priorities, and maybe a release target).

So the key questions are: a) how do we prioritize a given piece of work in context of all the other product priorities in a way that is self-explanatory and consistent across our projects b) once we set those priorities, how do effectively track and drive progress on those?

Characteristics of a good solution

  • Reliable - It results in the outcome (i.e. priorities) we expect
  • Predictive - We can use this mechanism to plan our work
  • Bidirectional - Priorities can't be set in a vacuum or simply driven top-down, but are really a negotiation between the various stakeholders and the developers who will actually do the work
  • Accountable - For a solution to be reliable, predictive and bidirectional people must feel accountable to each other to follow through on requests in a timely manner
  • Flexible - Priorities and resources are always in a state of flux, so any solution needs to be predicated on that

Potential tools/approaches

  • Release criteria or other targets to define what a quality release should look like
  • Evangelizing the strategic importance of each of these non-feature areas
  • Feedback mechanisms, including reports and dashboards that raise awareness on organizational & individual levels
  • Better ways of tracking priority and state in bugzilla (that hopefully do not rely on comments or arcane keyword-foo)