As a company scales to more people and more technology, it becomes important to have an engineering vision and a strategy to get there. In our experience, as you get to a size of greater than ~40 folks in an engineering organization, it becomes critical to have an engineering vision. This helps teams make good local decisions that take them toward the larger goal and vision that the company shares. A great vision helps the organization move toward a common direction and understand the “why” of the direction as well.
In this blog post, we share how we drafted a three-year engineering vision and one-year engineering OKRs and the process we used to get there.
Strategy vs. Vision
This is a question we get often when we are shaping a vision. How are vision and strategy different and do they work together?
Vision tells you where you are and where you want to go, whereas strategy is a path to get there. At a three-year level, you usually want to have a vision of where you want your technology to be. At a one-year level, you want to be more concrete by defining a strategy to get closer to your three-year vision. Vision answers the “why,” and strategy is a certain execution plan to get there.
Vision as OKRs
We use the OKR format for both the three-year vision and the one-year strategy to get there. The KRs in the three-year vision articulate directional goals for the organization, whereas the one-year strategy refers to more operational metrics that we track every quarter with dashboards.
Alignment and Process
Many critical aspects must come together for stakeholders to agree on a vision. Getting alignment within the organization is a critical part of this. This does not mean everyone needs to agree, but it does mean everyone’s viewpoints are heard, and it’s an inclusive process. Thereafter, everyone has a common understanding of where we are headed.
An engineering vision and strategy are about making choices to meet the larger company vision. Several paths may lead to the destination, and drafting the vision and strategy aligns the organization on a path to get there.
To get to a three-year vision and one-year engineering OKRs we have a yearly process that we have been tweaking and iterating on every year.
Company three-year vision
At the highest level, the goal of the engineering team is to enable the company’s three-year vision. It is important to align timelines with the larger company process to get to the three-year company vision. The engineering leadership team plays a key role in defining this as well. We kickstart our overall process right after drafting the three-year company vision.
Roles and Responsibilities
It is important to define a core working group that architects the whole process. The core working group is typically two to three people. There are also owners of each technology area — they are typically the ones who have been closest to the problem. Thereafter, the leadership team (which includes managers and senior ICs) works together to get to the final drafted vision. The entire engineering organization is always aware of the overall timelines and process, and how they can give feedback at various stages.
Strengths and Weaknesses
It is important to understand the key strengths and weaknesses of engineering. We do this by talking to the team: Listening and taking surveys are the key elements here. The leadership team plays a role in listening to everyone on their teams through 1:1s and team meetings to get a closer understanding of bottlenecks and things that are going well. We also do a survey to understand where we’ve made a large amount of progress based on last year’s strategy and where we’ve been struggling. We get insight into the progress we’ve made in key areas such as architectural fitness and test infrastructure.
As mentioned earlier, the overall goal of the engineering organization is to enable Coursera to reach its goals. The product roadmap is a big input for engineering to understand where the key bottlenecks in technology exist from the cross-functional perspective. We asked each product owner to give us a high-level overview of the one-year roadmap for their respective products. We ask some key questions to get insights from Product, such as:
- What are the biggest areas of leverage that engineering can enable (e.g., by platformization)
- What are the biggest challenges in the next year?
Technology State of the Union
The “technology state of the union” is a recent addition to the process. The goal is to get a deeper understanding of the key efforts we need to make in the engineering organization. We have each owner write a one-pager with specific asks. For example:
- What will be the state of this technology by the end of the current year?
- What goals should we have for next year?
- What is the rough scope of the work?
We intentionally set the one-page limit to enable all stakeholders to absorb all the information and all owners to keep their reports an executive-level summary.
Sync vs. Async
We do everything mentioned in the alignment process asynchronously, with flipped follow-up meetings for asking questions of the owners of each topic. The goal is for everyone to be able to absorb and understand the key challenges and state of technology at Coursera. We then have one final synchronous meeting with breakout groups to make decisions where there is some misalignment. Each breakout session receives input on what decisions they need to make, and when they make a choice they need to justify it. The goal of this synchronous session is alignment on a draft of the OKRs. This is doable only because of the asynchronous work that goes on before this meeting since everyone now has all the context and information they need to make choices.
Getting feedback at the right time is critical at each step of the process. When the draft is ready, each team at Coursera has an opportunity to share feedback in a structured format with the leadership group. We also get feedback from cross-functional partners. The leadership group then finalizes the OKRs. Some key questions we ask are:
- What are you most excited about?
- Which areas do you see your team contributing to?
Before finalizing the strategy for the next year, it’s essential to figure out:
- The capacity of the engineering organization as a whole to contribute to these efforts. This usually requires alignment with the exec team since it might not have a direct impact on product goals.
- High-level scoping on each KR broken down by quarters to see whether the goals are reasonable for the year given the budget we have.
This might result in further paring down on the number of scope of key results or actions so the team can sign up for realistic goals and is set up for success.
An engineering vision and strategy is extremely important for an organization to create focus and alignment. For example, we decided as an organization to move away from Cassandra or to focus on product quality. Since the entire engineering team was able to move in tandem with these efforts, we are able to get to 100% on technology migrations like Cassandra -> Aurora and significantly improve the availability of our systems for our learners and partners. Some other examples include improving our test coverage, introducing service level objectives, and building a component design system.
Every year we iterate on the process to make it more efficient and to help teams drive toward a North Star that in turn helps engineering serve our learners with a great experience. We do a retrospective each year and also adjust in real-time as needed — like we did in 2020 in response to the COVID-19 pandemic.
Hope this was a useful insight into our process. Please reach out if you have feedback.