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.

On 1:1s

Focus, Habits, Meetings, Mentoring, Mozilla, Productivity, Remote work, Remoties, Work 12 Comments


Photo by chichacha.

One of the most important parts of my week is my one-on-one (1:1) meeting with Dan, my manager. These meetings generally only last around half an hour, and it’s time extraordinarily well spent. In that half hour we catch up, discuss projects and status, review priorities, troubleshoot blockers, checkpoint against our quarterly goals, and use the time to give each other feedback. It might sound like a pretty dense 30 minutes, and that’s because it is. Our 1:1 meeting is a tightly packed conversation that establishes and reinforces my direction, priorities, and motivation. As a remotie*, I would be lost without it.

The actual meeting is only part of the story, however — while the meeting only lasts for half an hour, I do some prep work the day before. This prep work mostly involves reviewing my projects and goals, writing out what I want to talk about, and sending those notes to Dan so he can review them before we meet. I find this process extremely useful.

Over the months I’ve established a more-or-less standard format for my 1:1 prep notes that includes five fairly straightforward sections:

  • Accomplishments & status
  • Blocked/Waiting on
  • To do over the next week
  • Areas to develop
  • Quarterly goal tracking

Accomplishments & status: This is where I do a quick rundown of my current projects, with one or two sentences covering what I’ve managed to get done in the last week and what the current status looks like.

Blocked/Waiting on: This is where I list the projects I’m stuck on and why, or other things that are blocking progress — either waiting on resources, people, feedback, or whatever else. Having this section is absolutely vital — if I’m blocked on something, we can usually talk it through so I get unstuck, or Dan can figure out what he can do to help.

To do over the next week: By writing out a short list of specific things I plan to work on over the next week, Dan and I can make sure that I’m working on the right things and am prioritizing things properly. This doesn’t take a lot of time to go over, and since we checkpoint on this every week there usually aren’t any changes, but sometimes my task list gets rejigged slightly if other things have come up elsewhere in the organization.

Areas to develop: Usually this is a one or two sentence “big picture” sort of thing. Dan and I talk about longer-term career development once every month or two, discussing what I need to do or develop in order to progress, become more effective, and have more impact. In this part of my prep notes I take a few minutes to review how I think I’m doing in relation to what we discussed and jot down what I believe I need to focus on improving the most.

This section gives Dan a chance to do some career development coaching. While we normally deal with this part of the meeting in a matter of minutes, it’s profoundly useful — this is an incredibly quick and easy way for me to get ongoing lightweight feedback from Dan on a regular basis.

Quarterly goal tracking: We establish a set of goals each quarter, and every week Dan and I review progress on the ones I own and am driving. I find this useful because regularly checkpointing against my goals helps me make sure I’m focusing on the right things. By reviewing these weekly, we can also make ongoing course corrections where needed. Life rarely happens exactly according to plan, and priorities and projects can shift. It’s far better to review and adjust things weekly than to do a single review late in the quarter just to realize that things got off track (at which point the panic sets in).

Video chat: Another thing I should mention is that Dan and I have our meetings using Skype video. We used to just use the phone, but Dan talked me into using video chat and it’s really much, much better. As a remotie, being able to get “face time” like this is way more important than I thought — not only is the communication much higher bandwidth, there’s a psychological impact I can’t really explain. I just feel more connected to the rest of the company, which is both surprising and fantastic. If you’re remote, you should really try using video chat for your 1:1 meetings…I can almost guarantee that it’s more useful than you expect.

And that’s about it. Having developed the habit of prepping for my 1:1 meetings this way, it only takes me about 15-20 minutes to write up my notes to send to Dan, and it makes our meetings incredibly focused and useful. If you’re not sure you’re getting the most out of your 1:1s, you might try something like this — a half hour of prep work on your part for a half hour meeting can have a huge impact.

Do you have particularly awesome 1:1 meetings? What makes them awesome? What tips would you give to people who would like their meetings to be more useful?

  • remotie: noun, a person who works in a different geographic location than his/her manager.

On Personal Improvement

Focus, Goals, Habits, Motivation, Productivity 1 Comment

I’ve been working to improve myself in a bunch of ways over the past months, and the turning of the year always brings these sorts of things more sharply into focus. It also coincides with holidays where I have a few days off to sit and think about things without the ongoing distractions of day-to-day work and such.

During my week off I put together a list of what I want to accomplish in 2010. The quick (and incomplete because some are just for me) list:

  • Improve focus and execution: This is a purely work-related goal. I am far too easily distracted and thrown off track by things like IRC, Twitter, Facebook, the infinity of web feeds, etc. I need to really work on blocking stuff out, cutting things down, and improving my ability to focus. When I do — when I can hit that state of “flow” — I have a lot more fun and I get a lot more done. I would like to be able to get into that state on demand. Every day.
  • Lose another 12 lbs: I’ve lost around 15 lbs since last spring, but I’ve a ways to go to get back to where I want to be.
  • Read more: I love reading, but I don’t make enough time for it. I want to do so.
  • Write more: I love writing, but again I don’t make enough time for it. I want to do so.
  • Let crap bother me less: I tend to get annoyed more easily by things than I’m really happy with, and I sometimes have a problem letting things go. I want to fix that.

There’s some other stuff, but this is the core of it. Five goals, relatively straightforward, but each with its own challenges.

The tricky part is that these goals aren’t like “projects”. They will never be complete in any sense because they’re all ongoing, “from now ’til forever” sorts of things. I can’t just break these down GTD-style into a set of actions, then run down the list checking each off. All of these can only be accomplished by being very deliberate, conscientious, and focused on changing my personal habits over time.

So, what habits do I need to cultivate to achieve these goals? Here’s the current plan.

Improve focus and execution

  • Cut down the noise: Close all unnecessary apps and Firefox tabs while I’m working. Minimize IRC and IM sessions (I need to be available for pings, but only for direct pings).
  • Go full GTD: The old catch-as-catch-can system I’ve been using doesn’t scale. I need to adopt a (more or less) full GTD system for tracking projects and tasks. I need to assign and stick to real due dates for everything. If it doesn’t have a due date, it often just slides indefinitely.
  • Take advantage of available tools: For example, I should use an app that has a “distraction free” mode for all writing.

Lose another 12 lbs

  • Eat and cook (even more) sensibly: I’ve been working on this for quite a while, but there are things I can do to get a bigger bang for our caloric buck. Luckily I love food and cooking, so this shouldn’t be that difficult.
  • Work out regularly: I’ve been working out semi-regularly since last March, but I have to step up my game. “Regularly” is intended to become “daily” in time.
  • Keep a food and exercise diary: Tracking calories and nutrition is the only real way to understand how things are going and where things need work.

Read more and Write more
These are largely a matter of making the time and using it. This time could come from getting up earlier, staying up later, or eliminating/reducing other activities to free up time during the saner parts of the day. Right now, for example, I’ve eliminated all distractions and am simply writing. Blog posts count.

Let crap bother me less
This one’s a bit fuzzier and probably the most difficult of the bunch. Current strategies:

  • Meditate every day: It’s good for your head to just sit sometimes.
  • Better sleep: Better, more consistent sleep. I suffer from insomnia fairly often and this never helps my brain.
  • Step back: If something bothers me I have a strong impulse to react to it immediately, which is never the right thing to do. The idea here is pretty simple — if something bothers me for whatever reason, I need to use that as a trigger to step back and away from it for a few minutes or an hour or a day until I’m able to think about and react to it calmly and reasonably. I’ve been getting better at this over the past few years, but I’m hoping being deliberate about it will reinforce the habit.

I’ve started experimenting with a number of apps to help me with these things — I am a giant nerd, after all, and given that I’m in front of my computer most of the time (and within arm’s reach of my iPhone all of the time), I figured I’d take advantage of the tools at hand. Here are some of the applications I’m trying right now.


Scrivener is a bloody fantastic writing tool that, in addition to its already huge array of really useful features, has a beautiful full-screen distraction free mode. I really cannot say enough good about this app. Drawback: it’s Mac only. It’s also not free, but I’m OK with that, because it’s worth every penny. If you write — particularly if you write complex docs or have a number of different writing projects on the go at once — I strongly recommend you give the 30 day free trial a try.


OmniFocus comes in two parts — the desktop app and the iPhone app. It is not cheap, and you will spend a total of $100 for both. It took me a long time (and three tries) to really warm up to OmniFocus, but now that I’m juggling 20-odd projects and a dozen “due now” items every day, I have fallen completely in love with it. OmniFocus isn’t super intuitive, however, as it is designed to work specifically with David Allen’s Getting Things Done (GTD) productivity system. If you haven’t, you should read the book and use the demo version of OmniFocus for a while before committing to buying the application, particularly at these prices.

The iPhone app does what you would expect it to do, which is provide a full-featured version of the app in iPhone format that syncs with the desktop app. My only quibble is that it seems to take an awfully long time to sync sometimes.

Lose It!

Lose It! is one of those free iPhone apps for which I would pay good money if they asked. It’s simple, easy to use, flexible, and goal oriented in a way that makes me happy.

The premise is simple: You set a weight loss goal, the app calculates (roughly) the number of calories you need per day in order to achieve your goal. I set my goal (lose 12 lbs) at a challenging-but-doable rate of one pound per week, which gives me a target of around 1600 net calories per day.

Once that’s set, all I have to do is log whatever I eat and any exercise I do. Lose It! gives me a running daily total, a running weekly total, and pretty bar charts to show me where I stand. It has some other features — nutritional info, friends (via the Lose It! website), a public humiliation option, etc), but the goal setting and exercise/food diary is the core and all you need to use.

I’ve been using Lose It! for about two weeks and it’s great. I’ve lost 2 lbs, have become very much more aware of what I eat and how exercise lets me eat more (I really like food). I highly recommend this app if you’re watching your weight.

Touch Goal

If you want to develop new habits and/or break old habits, a habit tracker like Touch Goal is a really great way to increase your personal awareness of what you do or don’t do in a day.

I’ve set up Touch Goals to track whether I:

  • Eat breakfast in the morning (rather than at noon like I tend to)
  • Do cardio exercise
  • Do strength training
  • Eat fewer than 1700 calories
  • Drink four (or more) glasses of water
  • Read for an hour or more
  • Write for an hour or more
  • Avoid snacking after 8pm

With the exception of strength training, these are things I want to do every day (strength training has a target of 4x/wk). When I do one of these things in a day, I add it to Touch Goals, and I can see pretty quickly how I’m progressing. This is another straightforward app that helps simply by making me more mindful of what I do or don’t do over the course of the day.

Ben’s Virtues

This is a mostly-for-fun app. As the story goes, Ben Franklin created this system for cultivating personal virtues whilst on an 80 day ocean voyage. He drew up a chart that lists thirteen virtues he wanted to develop, and put the days of the week across the top. Each week he would focus on a different virtue and make a mark on the chart if he failed in that virtue on a given day. With thirteen virtues, this cycle would repeat four times each year.

Naturally someone has created an iPhone app version of this chart, and I’ve been using it just for fun. The thirteen virtues are all (well, mostly) completely valid and worth cultivating, so why not?


Pzizz is an odd little iPhone app that is supposed to help you sleep. I often have a terrible time getting to sleep, or I’ll wake up in the middle of the night and not be able to get back to sleep. I’m experimenting with Pzizz to see if it helps. So far nothing conclusive.


Meditate is sort of a Pzizz for meditation rather than for sleep. I haven’t used it much yet, so really haven’t got much to say about it. I should probably go put “meditate” on my Touch Goals list.

And there you have it. Goals, habits, and apps to help me get there. Maybe I’ll post an update in a few months to let (all three of) you know how things are progressing.

Bonus screenshots!
Since you made it all the way to the end, here are some pictures…

my iPhone

Ben’s Virtues

Lose It! daily overview

Lose It! weekly overview (oh Thursday…what the hell)

Touch Goal

Articles about focus, motivation, and feedback

Feedback, Focus, Motivation, Work No Comments

The Key to Effectiveness? Focus (Harvard Business blogs)

“One of the tough truths of management is that we all have trouble making choices. While older and supposedly wiser, we still often act like kids in the candy store who want everything. Some of the best CEOs and managers are those who stop things and get their companies or their teams focused. GE’s Chief Learning Officer, Susan Peters, notes that for successful managers at GE ‘prioritization and focus are keys to doing well. Sure there are other things that are not on the priority list, but you do them differently or more slowly.’”

Motivation – you’re doing it wrong (TEDTalk)

Dan Pink’s TED Talk about the science of motivation, and how there is a mismatch between what science knows and what businesses often do to motivate people. “Dan’s point is that rewarding performance mostly doesn’t work and often leads to worse performance.” The interesting part really starts around the 12:00m mark, where he stops talking about how rewards don’t work and starts talking about what does — autonomy, mastery, and purpose.

How to Escape Perfectionism (Harvard Business blogs)

“Critical feedback is helpful as long as it’s offered with care and support. But the feedback that comes from jealousy or insecurity or arrogance or without any real knowledge of you? Ignore it. And if you’re a manager, your first duty is to do no harm. As managers, we’re often the ones who stand in judgment of other people and their work. And when we’re too hard on someone or watch too closely or correct too often or focus on the mistakes more than the successes, then we sap their confidence. And without confidence, no one can achieve much.”

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