Back to Kun Chen

Principal Engineer's Toolkit: Building Strategy (From L8 SWE at Microsoft)

Kun ChenOctober 16, 20228m
In a Nutshell

A good strategy for principal engineers has four elements: a clear objective, deep understanding of context and constraints, decisive choices on key tradeoffs, and extreme simplicity for execution. Build it by first aligning with stakeholders on success criteria, then mapping assets, bottlenecks, and decisions, and finally distilling everything into a repeatable statement that the team can internalize. Stay open-minded, generate multiple options, and treat the strategy as a living plan that adapts to new information.

AI-Generated Notes

These notes were generated by AI and may contain inaccuracies.

If you want to become a principal software engineer, or succeed as one, you absolutely need to know how to build good strategies. If you don't have a good methodology for this, it can be difficult for you to set direction for your team, establish influence and gain respect. Even if you are a junior engineer, understanding the concept of a good strategy can help you better understand what your leadership team is talking about, and enable you to get closer and participate in those strategic discussions, which helps you build visibility and paves the way for your future promotions.

In order to talk about how to build a good strategy, we first need to understand what a good strategy is.

Imagine we are a group of hikers who got lost in the wilderness. There are a lot of trees around us blocking our vision and the sun is getting low.

The first person said "let's keep walking forward". This is a bad strategy because it didn't even state what the objective is. Why do we keep walking forward? Where are we trying to go? What are we trying to achieve?

The next person said something better: "we need to find a shelter before dark. Let's keep walking forward." This is still not a well-informed strategy. There's no indication that walking forward will help us find shelter.

Another person climbed up a tall tree and looked around the surrounding terrain and said: "we need to find shelter before dark. I see a house across a river not far from here, and in the river there's a boat and a bridge. Let's first go pick some mushrooms." This is getting better, but still not a good strategy, because it doesn't clarify the key choice we'll have to make when we get to the river. Do we take the boat, or do we walk the bridge? Without a clear decision, the group might end up taking different approaches, split apart and never find each other again. This strategy is also not coherent. If our objective is to find shelter, why do we pick mushrooms? These distractions can end up delaying our progress and jeopardize our success.

We need to find a shelter before dark. I see a house across a river not far from here, and in the river there's a boat and a bridge. We should walk across the bridge because the current is too strong and taking a small boat like that can be risky. Once we cross the bridge we'll go stay in the house.

This starts to sound like a good strategy. It clearly states the objective, which is sometimes called the success criteria. It's based on a solid understanding of the environment or context. It brings clarity to key choices that we have to make. It's simple enough to understand and easy to execute. Those factors tend to make up a good strategy.

The next question is: what are the steps we can take to build good strategies from scratch? There's no single answer to this question. There are so many different ways people can approach this and arrive at a good result. What I'm about to share with you is just what I've found to be effective.

The first step is to identify key stakeholders to understand what a good objective looks like. Who are the people that need to approve your plan? Who would benefit from your work? Who might be interested in giving you resources? Who can potentially block you from doing what you need to do? All these people are what you should consider stakeholders.

You need to talk to them as early as possible to understand their perspective, know what they care about, and identify good common ground that can be seen as a success for both you and them. This success criteria is what you would then use as the objective of your strategy.

Once you have that, you need to start building a comprehensive understanding of where you are, where you need to be, and what the terrain that sits in between looks like. Only then would you be able to figure out where the paths are.

You will need to clearly identify your existing assets, strengths and weaknesses. You will also need to figure out the key bottlenecks or blockers that can prevent you from getting to where you want to be, such as the river in our previous example. And you need to identify the key choices you have to make, and clarify the decisions.

Lastly, you need to simplify the strategy into a short, repeatable statement. This step is something a lot of people skip and it can become a big problem down the road when they realize their team doesn't truly understand the strategy and are pulling themselves into different directions.

Take our previous example, what I would do in this case is to literally say to everyone "follow me towards the river and cross the bridge". And I'll repeat this over and over again on our way there till we've made it to the house.

You might think: is that really necessary? In reality, when you have a large enough team, you'll be surprised how difficult it is to get everyone to internalize even the simplest thing. This is also why complicated strategies that require amazing orchestration and well coordinated 3d chess moves rarely work, because it's extremely difficult to execute them well, and a good strategy means nothing if it can't be executed successfully.

Now when you try to build a strategy, there can be many hidden challenges along the way. Here are a few very important tips that may increase your chance of success.

Stay hungry, stay foolish. When you try to build a strategy, you need to stay open minded, and look at it as a learning opportunity. Never just shut the door and try to create a smart master plan on your own. Instead, ask yourself: What do I not know about solving this problem? Who are the people that might have more experience than me on this? What assumptions have I made and how can I validate them? All these questions can lead to discoveries, conversations and thought exercises, and that's what leads you to a good strategy.

Try to always build more than one strategy for the same objective. It's very rare that there's only one path towards an outcome. If you have only identified one strategy, it's very likely that you haven't exhausted all the possible options yet, and you may end up missing the most ideal one.

Having multiple strategies forces you to understand the environment better, and to evaluate the pros and cons of different paths that eventually shows you which route is the best. This homework then makes your strategy a lot stronger and more persuasive when you present to others.

You should regularly reassess your strategy based on new data and learnings. Despite the attempt to build a comprehensive understanding upfront, it's still extremely difficult to anticipate everything before you start. There are lots of things we simply won't know until we go further.

It's important to not treat your strategy as sacred, but instead a living document that keeps adapting to the latest context you have. If you tell everyone your strategy is absolutely right and doesn't need any changes, you might lose credibility when it's proven wrong. But if you tell everyone that you know you are not going to be right about everything and your plan is to constantly adjust as new information comes in, then your strategy can never be wrong.

Keep Kun Chen in your library

Save the videos and channels worth coming back to, and find them again in one place.