Firefox Planning & Tracking: A New Approach

Firefox, Focus, Goals, Mozilla, Open Source, Work 4 Comments

If you take a look around Mozilla these days, you’ll notice that there are a lot more of us trying to do a lot more things a lot faster.

To manage all of this, we need to be a bit more disciplined about what we do and how we do it. Prioritizing what we want to do (and when) is a big part of what this post is all about — we can’t do everything all at once, so we need to be more deliberate about what we focus on at any given time.

We also have to be more conscientious about what and how we communicate with each other — there simply isn’t enough time for any one of us to dig through our various channels to find out everything we need to know. We need a consistent and centralized place where everyone can go to get the information they need.

How are we doing this?

We’ve developed a system to help us manage this stuff, and it looks something like this:


simplified, but you get the idea

Roadmaps are where we set forth our vision for each product and what we believe our priorities need to be in order to achieve that vision. Roadmaps often include other stuff as well, but for the most part the Roadmaps define where we want to go (vision) and how we’re going to get there (priorities).

Product Managers don’t weave these out of whole cloth, but drive the process of creating the Roadmaps through extensive discussion with people throughout the community. These are also not things to be dusted off once a year when we sit down to write a new roadmap — we will evolve them as we go.

Feature Lists are the things we believe need to be changed or added in our various products over the next year or so. These lists are derived from the Roadmaps and then divided by engineering group. The purpose of Feature Lists is to make it easier for engineers to know what they should work on next.

Like Roadmaps, Feature Lists will be revised constantly as we add, remove, and reprioritize things based on changing circumstances and information, and as we ship features out. Ultimately, each Feature List will be rank ordered by priority — #1, #2, #3, etc. with no ties — but we’re not quite there yet.

Feature Pages are really the heart of this system, as this is where each Feature is defined, specified, staffed, and tracked during development. The goal is that eventually (by Firefox 7) all significant development projects will be defined and tracked via Feature Pages.

When we talk about a feature, we’re talking about a “shippable unit”, a well-scoped and atomic piece of work that improves a part of one of our products. This is a smaller unit than what we normally think of as a feature, but conceptually larger than a typical bug fix.

Something like “Create a Home Tab as a Permanent App Tab” is a feature under this definition, whereas “App Tabs” is too large to be well-scoped. “App tab rendering glitch on OS X” is too small to be worth feature tracking, as it is really just fixing a flaw rather than adding to the product or changing how something behaves.

Feature Pages are really guidelines rather than strict templates to be slavishly filled out. Use them as you see fit. The only requirements are:

  • The status block at the top be filled in and kept up to date.
  • The team list must be fleshed out as completely as possible (and everyone on that list should be aware that they’re on that list).

After that, you’re free to do whatever you need with the Feature Pages. The sections in the template are really just prompts to help you get things clarified and written down, but you can ignore them if it makes sense to do so.

With the vision and priorities defined in the Roadmaps, and the Features defined and tracked through Feature Pages, we’re just missing a place to track the collective progress for each release. This is where the Release Tracking page comes in.

Once a Feature is underway and we know which release it’s going to target, the status block from that Feature Page will be transcluded into the appropriate table on the Release Tracking page.

Throughout development, with Feature Page statuses being updated regularly, the Release Tracking page will make it easy to see at a glance how things are progressing. Should a feature miss a release, it’s easy to move the feature into the next release table and continue tracking progress there.

No Surprises

The primary goal for this system can be summed up as “no surprises”. Everyone across the organization — engineering, QA, marketing, PR, web dev, IT, build & release, etc. — should be able quickly and easily to find out:

  • what is currently planned for each release
  • how things are progressing
  • what they need to do
  • when they need to do it

No surprises. This will never be a failsafe system, but I think we can get a lot closer to there than where we are now. This is a first step, and we will evolve the system as we learn more.

4 Responses to “Firefox Planning & Tracking: A New Approach”

  1. Mike Beltzner Says:
    April 28th, 2011 at 3:21 pm

    This is awesome, Deb, and a much needed change for being able to keep a clear picture of all the moving pieces. Thanks for running it all down.

  2. voracity Says:
    April 29th, 2011 at 7:16 am

    This sounds like a really, really solid approach.

    I’m curious as to why the web pages aren’t structured this way now. (Maybe they’re not ready yet?) e.g. If I go to:

    http://wiki.mozilla.org

    I have no idea where to find ‘Roadmaps’. Maybe I haven’t looked hard enough, but shouldn’t the page scream it out at the top anyway? (Like the ‘Download’ button on mozilla.com.)

    The same thing happens when I look for ‘Feature Lists’ on the individual Roadmap pages, and there also appear to be no links to each ‘Feature Page’ from a given ‘Feature List’ page.

    In fact, if it weren’t for this fantastic post, I’d have no idea how to navigate wiki.mozilla.org.

    Maybe this wiki restructuring will be done eventually, but I really think you could make some quick changes now that improve things immediately. Sure, I’m just an interested observer, but I’m guessing making those changes now would immediately improve developers’ lives and also banish the cloud of confusion that has shrouded Mozilla’s decision making for … well … longer than I expected. And if you achieve that, you also make it easy for new developers to jump on board.

    Anyway, a very promising approach that (with discipline) could be game changing for Mozilla.

  3. voracity Says:
    April 29th, 2011 at 7:24 am

    My mistake. There are indeed links to Feature Pages from Feature Lists. I was confusing the latter with Release Tracking pages.

    Actually, why are the Feature Lists and Release Tracking pages separate?

  4. dria Says:
    April 29th, 2011 at 10:52 am

    Yeah we still need to finish up restructuring the wiki and getting everything linked together properly. There should eventually be lists of features on each Roadmap (like the Feature Lists), and links on the main page to the various bits.

    The Feature Lists are separate than the Release Tracking because Feature Lists are prioritized lists of what we are going to work on, while the Release Tracking is what is being worked on *right now* that is targeted for upcoming releases. So the stuff on the Release Tracking page is a tiny subset of what’s on the Feature Lists.

Leave a Reply

Icons by N.Design Studio. Designed By Ben Swift. Powered by WordPress and Free WordPress Themes
Entries RSS Comments RSS Log in