Our planning process defines how we create goals and track progress toward those goals as a department.
A good plan has the following properties:
- The plan addresses the most important business needs (and is subject to change if the business needs change).
- The plan is ambitious and feasible.
- The plan provides a clear direction about what success looks like so the teams have space to figure out how to achieve success and so teams understand what is not a priority.
Arriving at a good plan is an iterative process that is neither exclusively top-down nor exclusively bottom-up because there is a cyclical information dependency. Company level strategy is informed by what is working and not working about our business (context our teams have), and team plans are informed by what our company level strategy is (a decision ultimately owned by the CEO). Fundmentally, everyone on our team has context and insights that are valuable inputs into the planning process.
In practice, both the top-down motion and bottoms-up motion happen concurrently, but we need to bootstrap the process to iteratively work through the information dependency. It is helpful to think about planning as having a
- Our strategy is a concise description of how product and engineering contribute to the top-level company objectives. It sets a clear direction so we stay focused on what is important and have appropriate trade-off discussions if necessary. This is the WHY.
- OKRs define how we measure success. This is the WHAT.
- Roadmap items are the concrete high-level things that we are delivering to achieve success (as measured by OKRs). This is the HOW.
The goal of our annual planning process is to create and maintain a 1 year top level strategy that teams can reference during each quarterly planning process.
We go through this full process in and a lightweight version of this every quarter to review and make necessary updates.
|Week of quarter||Action|
|Weeks 2 - 5||Draft the annual vision document for the next year |
|Week 6||Finalize annual vision document |
This is the planning process we do each quarter.
|Week 7 of current quarter|
5 weeks until next quarter
|Gather input from stakeholders on upcoming priorities |
|Week 8 of current quarter|
4 weeks until next quarter
|Draft department level OKRs |
|Week 9 of current quarter|
3 weeks until next quarter
|Revise department level OKRs|
|Week 10 of current quarter|
2 weeks until next quarter
|Week 12 of current quarter|
1 week until next quarter
|End of quarter retrospective|
|Week 1 of new quarter||Kick off new quarter|
There are a few ways we track plans and celebrate progress at Sourcegraph.
- The GitHub project tracker is the source of truth for all key results in product and engineering.
- OKR slides contain the top level product and engineering results that the VPs and Directors review and discuss on a weekly basis.
- Monthly team updates communicate a high-level narrative/summary to the rest of the company about what each team in product/eng accomplished since the last monthly update and what is up next.
- Monthly demo days are a great opportunity for engineers to highlight and share with a broad audience the specific things they shipped. It is really fun!
|🟢 On track||90-100% confidence we will achieve the goal.|
|😬 At risk||75-89% confidence we will achieve the goal.|
|⛔️ Off track||<75% confidence we will achieve the goal.|
|🚀 Done||We have achieved the goal!|
|☠️ Cancelled||We are no longer pursuing this goal.|
The GitHub project tracker is the source of truth for key results in product and engineering.
There are a few tabs:
- The Department KRs tab tracks the top level product and engineering key results that the VPs and Directors review every week at the VP team sync. Updates are tracked and communicated in the OKR slides.
- The Org KRs tab tracks all the org level key results. VPs and Directors review this monthly, or as-needed when something is escalated by a Director.
- The Team Deliverables tab tracks the next big roadmap items that each team is delivering in service of their KRs.
- When teams are in the state where they have a clear KR, but don’t yet have a clear roadmap to achieving that KR, the KR is included in this view. Once a roadmap item added, the KR is removed.
- Teams should include any big current and future roadmap items that the team has line of sight to.
- Roadmap items have a target date that is our best estimate of when the item will be delivered. This date is used for multiple purposes:
- A diagnostic tool to help us identify teams that might need help.
- A cross-functional communication tool so Sales/CE/CS/Marketing can plan ahead to help us drive usage of the things we are delivering.
- This tab is reviewed ad hoc by VPs.
- The All tab simply shows all items in the tracker for reference.
- Orgs and teams may create their own tabs and documented expectations in their own section of the handbook.
All items in the tracker should be linked to a GitHub issue so that we can assign owners, see a history of updates (useful audit log if we need to change KRs), and so there is an place for the team to post updates.
Customer names and business metrics can’t be mentioned on public issues, so by default, all issues should be created in sourcegraph/product-engineering-tracker.
The OKR tracker slides are a living document that directors update by each week to communicate that current state of top level product and engineering key results for the current quarter. It only contains 1 week’s worth of updates.
The slides are reviewed and discussed each week in the VP team sync so we can celebrate wins, identify risks, and course correct if necessary.
After the slides are reviewed, they are copied to a seprate slide deck to capture week-over-week progress.
These are due each Friday by .
Monthly team updates communicate a high-level narrative/summary to the rest of the company about what each team in product/eng accomplished since the last monthly update and what is up next.
The engineering manager of each team is responsible for sending an update to email@example.com by the end of the week that contains the first day of each month. EMs may delegate to someone else on the team to send the update.
- The email subject should contain the team name and the date (for example: “Search update ”) so each update starts a distinct email thread (otherwise, they get grouped in the Google Groups UI).
- There is no strict format to follow for the content, but here are some tips:
- Favor prose over a list of changes.
- Be brief and link to details.
- Consider sharing wins, challenges, risks, plans, lessons learned.
- Inline relevant screenshots/demos/gifs/charts when possible so it isn’t just a wall of text.
- Be creative and have fun with it! Jokes and random fun facts are welcome.
In addition to the monthly team update, each PM should update the PMM roadmap deck (internal only) for their features at the same time. This deck contains a manually updated copy of the current plan, plus recently launched important customer-facing features from the OKR and roadmap tracker. In the future we may transition updating this to PMM, but for now its important product managers are involved in ensuring it is up to date and correct.
The purpose of our quarterly department retrospective is to create a shared safe space for celebrating wins, learning, and improvement.
- 1 hr synchronous meeting
- VPP, VPE, and their direct reports
- DRI responsible for each department KR fills out their retrospective slide in preparation for meeting, colleting any necessary information from their team in advance.
- During retrospective
- Review OKRs and discuss outcomes
- Understand whether or not we accomplished what we set out to accomplish this quarter.
- Celebrate achieved KRs and amplify the things that are working.
- Identify what didn’t work and discuss what we could have done.
- Roundtable discussion
- The goal is to leave room for open discussion around what else transpired not directly related to OKRs.
- What went well (wins) for yourself and for your team?
- Did we accomplish what we said we were going to accomplish?
- What didn’t go well (struggles and challenges) for yourself and for your team?
- What did you and/or your team learn?
- Review OKRs and discuss outcomes
- Finalized OKR scorecard deck ready to be shared with the company