Michael R. Bock

Execution Review: how to keep projects on-track

Intro: too many projects, not enough time

At some point in Column Tax's lifecycle, we grew such that as co-founder & CTO (and responsible for Engineering, Product, and Design) I wasn't personally leading every project. At that point, I hired Ryan Seekely as Head of Engineering who helped us implement a system called Execution Review that allowed us to steer & debug dozens of simultaneous projects. This blog post describes why you might want a system like that, and how to implement it.

Why do you need to track execution?

As the Head of EPD (or Head of Engineering or an Engineering Manager), you're in charge of delivery. That means, at the end of the day, every project is your responsibility, and you're on-the-hook for overall team speed & project outcomes.

But there are too many projects for you to personally lead every single one yourself. That means you need some way to keep track of every project and be able to step in to debug & fix if a project is not going well.

You want to make sure you & your peers (Engineering, Product, Design) are all on the same page, handing off well between you, and working together to solve problems when they arise.

Lastly, you need to represent progress in a legible way to your stakeholders (the CEO, etc.).

Enter, Execution Review.

How to run Execution Reviews

Execution Review is a weekly forum where you review every project and your overall operational metrics. You see what's moving, what's stuck, what changed, and then make decisions and help as-needed.

The setup: Projects & Status Updates

In order to set this up, you need some central repository to track every project/workstream that's happening or planned. I usually consider a project anything that takes >= 2 weeks of time to do (since anything shorter won't be worth tracking on a weekly basis). You can use a spreadsheet, Notion/Coda, Linear, etc., the exact format doesn't matter as much as the content and that it's easy to keep updated.

Projects

Each project should have the following characteristics. After agreeing on the Problem & Solution, each project should have Milestones with dates attached. A milestone is a concrete sub-goal. Write milestones & goals such that a neutral third-party observer could judge if the goal was achieved or not.

I like to ask projects to create a central repository in whatever document system (Google Docs, Notion/Coda) that includes some basic info about the project (who the DRI1 is, the TL;DR, goals) and then includes as sub-pages all of the relevant documents: Problem & Solution Reviews, designs, technical design docs, meeting notes, etc.

Here's the Project overview template I've used:

project-overview-template

Status Updates

Once a project/workstream has been set up with milestones, you can now ask the DRIs of each project to write a weekly status update on the project. This is the core of the Execution Review workflow.

A status update should take at most 5-10 minutes to write and contain the following (with instructions for the Status Update author):

More notes on the Needs Attention and Off-track statuses:

Status updates should be:

Weekly Schedule

I usually ask for the status updates to be done by EOD on Monday so that folks have serious time to read & digest the updates and provide substantive comments on Tuesday morning before the Execution Review meeting. This also avoids folks having to scramble to write updates over the weekend.

Status Update Template

Here is the Status Update template I've used:

status-update-template

Status Update Examples

Here's an example of a bad Status Update:

bad-status-update

And here are a couple examples of good Status Updates:

good-status-update-on-track

good-status-update-needs-attention

The Execution Review meeting

Once you have Projects organized/tracked and DRIs writing weekly Status Updates, you can hold your Execution Review meeting. This is the key forum by which you ensure that your team is aligned on the state of the world and is able to debug and help things workstreams are going awry.

I suggest including your leads by-default. At a small company, this might be the Heads of Engineering, Design, and Product. At a larger company with split pods, this might be the lead of each pod. Also strategically include DRIs of important workstreams as-necessary (and dismiss them if they're no longer needed in the meeting).

Before the meeting (I suggest Tuesday mid-morning, e.g. 10am), have every attendee read (and comment) on the Status Updates. Leads and DRIs should also propose agenda items or surface "Criticals".

In the meeting, I used this standard agenda:

What's nice about this format is that you can often make decisions live on the call to debug projects: changing scope/dates, moving people off/on to a project, or helping decide other issues. For anything more complicated, you can delegate the task to a person and have a built-in mechanism to ensure it is done by next week.

This meeting should not be a simple readout of status updates: only spend time as-needed to understand, debug, and/or decide.

Here is the meeting/agenda template I've used:

meeting-agenda-template

By running these meetings well, you should have an EPD leads team that feels really on the same page about what's happening on the team/at the company and working together to solve problems and get things done. When it's working well, it feels great.

Thanks to Ryan Seekely & Hannah Squier for reading and providing feedback on drafts of this essay.

To get notified (extremely rarely) when I publish a new post, subscribe here:


  1. Side note, your project needs to have a DRI.