Skip to main content

Craig Kerstiens

Prioritizing and Planning within Heroku Postgres

Over a year ago I blogged about Heroku’s approach to Teams and Tools. Since that time Heroku has grown from around 25 people to over 100, we’ve continued to iterate and find new tools that work for how we do things. For many of the product management and software engineering books I’ve read I’ve yet to find something that helps a team priorize in a fashion I that feels right.

One process emerged nearly a year ago from within the Heroku Postgres team and is now followed by many others. Within a team this process is now commonly conducted each 6 months. Lets take a look at how this process looks

It Starts with Ideas

Hopefully having ideas of things to work on isn’t a problem, if it is just go spend some time with customers – listen to their problems, see how they use the product, then come back and write down the ideas. For most teams this is simply an excercise of thinking back and writing it down. Some teams at Heroku have resorted to keeping running backlogs of things they’d like to do this. We do this by keeping a Trello board which columns for:

  • New ideas
  • Ponies
  • Stallions

Ponies and Stallions are things that would be great to do, however a sizeable amount of work must be done on them and we’re not currently tackling them. Ponies are less sizeable and likely to get done not in coming weeks but perhaps in coming months up to a year. Stallions are great but large effort and may or may not get done but in the category of things we would like to be able to do.

Once you’ve got your ideas whether in your head on a backlog we begin by writing them out typically on sticky notes or index cards.

Laying it all out

From here we create a simple grid:


The grid has two axis. One is for impact the other for difficulty. At this point we aim to lay out every idea that we’ve already written down into a quadrant. Commonly this is done at team offsites where the team is free of distractions and able to devote appropriate time to it. Being able to accomplish this in one sitting with the team is important to having cohesion around the result.

A plan

At this point hopefully its quite obvious what you want to tackle. If there’s anything in the top right it should be an easy win for something for you to focus on. From we often transcribe this into a powerpoint/keynote document and highlight things that we will definitely aim to accomplish in the next 6 months as well as things we’re intentionally not working on. This leaves us with an artifact of both things we will work on and explicit things we wont work on.


What works for us

In general we try to have more work than we can tackle to ensure we’re constrained in a good form and not wasting idle time of people. Ensuring we’re selective about the things we’re working on and that we’re working on the right things works for us. We’ve found this simple exercise valuable for many teams to plan and ensure we’re working on those right things. Of course this may not work for everyone but for our goals and culture aligns well for us.

If you’ve got simple but unique techniques that work for your team as always would love to hear about them –