How do we go from an idea to working software that our customers use? There are a lot of moving parts to make sure this happens within the context of a large development team and to maintain the high level of quality our customers expect.

Prioritization

We have a lot to do. New features, bug fixes, UI improvements, code quality, custom client work, internal tools for sales and marketing, metrics, dev work-flow/tools improvements … The list goes on.

We know what to work on and when by prioritizing large team projects (or “Epics”) and individual contributions. This starts with an understanding of how our goals align from the individual to the company:

Company Goals → Team Goals → Individual Goals

All goals are completely transparent and shared with the entire team from the company level down to each individual. This means the entire team is involved when setting goals. We avoid goals being prescribed “top down” as this makes for an unhappy team and does not foster product ownership.

Though we make exceptions for critical issues or time sensitive opportunities, we generally try to prioritize on a quarterly basis. This process is cleverly named: Quarterly Planning.

Quarterly planning

Quarterly planning is informed by our company strategy which is more broadly determined and changes biannually (usually, sometimes it’ll be tweaked and discussed at our weekly townhall meeting). The goal of quarterly planning is to prevent too much shifting around and ensure we can deliver larger and more ambitious projects to our customers. These can span from 1 month to 9 months long with shifting team size.

The epic projects are inspired by our strategic goals, but typically come from the ground up. We try to keep quarterly planning as open and transparent as we can without getting stuck in endless meetings. Well before the start of the quarter Product Managers will source and gather ideas from everyone at the company. Then flesh out those which fit with our strategy for more details and discussion.

A set of ideas will then be put up for consideration for the next quarter. Everyone interested in advocating for a given idea/project will then work to put together a short proposal that covers scope of the project, the marketing message, and most importantly…key metrics this project hopes to improve and indicate success. These proposals are combined into a pre-read document that is shared to the whole company and is further fleshed out by any stakeholders and naysayers.

Next, the PMs will organize as few meetings as possible for each idea/project to be presented and discussed in an open meeting for the whole company. These discussion meetings are followed by a smaller meeting to force rank these projects. This will include all of our Functional Advocates in engineering and representatives from each department (sales, marketing, customer support…). And, we are now left with a ranked list of projects we hope to complete!

The ranked list of projects

Maintaining a force-ranked list of projects can actually be a lot more difficult than it seems. We always face many distinct challenges, and understanding the tradeoffs is not trivial.

However, the process of ranking these projects pays off for us in several ways.

  1. We think more carefully. The ranking process is a forcing mechanism that requires us to carefully evaluate the cost and value of each project, not just in isolation, but also in relation to each other.
  2. Future planning is more efficient. We are a pretty creative bunch, and we have no end of great ideas to consider during quarterly planning. But it takes a lot of time to evaluate all these ideas. We use the force rank list of projects as a filter mechanism. Before submitting an idea for evaluation, individuals can ask: “Is this new idea more important or valuable than one of the already-ranked projects?” If so, this idea might be a winner. But if not, put the idea on ice for while rather than asking the whole team to evaluate it.
  3. Engineers know where to focus effort. We have a friendly and inclusive work environment, and we prize being considerate of colleagues. But sometimes this leads us to help others at the expense of the projects we are assigned to. The project rank gives engineers a tool to know when putting epic work on hold to help someone is OK. It allows engineers to say, “No,” without sacrificing our considerate work environment because everyone involved knows that engineer needs to stay focused on one of the company’s top priorities. On the other hand, engineers working on lower-priority epics have the freedom to take on some different work (especially if it supports one of the top ranked projects) without feeling guilty for delaying the assigned epic.

Product Managers have the final decision on the project rank. They are responsible for staying up-to-date with all stakeholders and ensuring the rank is updated when priorities shift.

But, how do we know which of these projects we can complete?