I’ve spent a lot of time leading large and small engineering teams over the last decade. Through this experince I’ve developed some opinions about what good leadership looks like. My central leadership tenets are:
- Set a Strategy
- Do Row-Level Inspection
- Set Clear Expectations
- Give Frequent Feedback
- Let Builders Build
Set a Strategy
A strategy is a clear, prioritized set of goals and a path to achieve them.
These goals are your representation of success. It’s worth spending time on them. You need to know what success looks like if you want to be successful.
You also need to decide the path you will take to achieve these goals. There are often many viable paths, but it’s important to pick only one and communicate it to your team. If your team members are pulling in different directions then you’ll never reach your objective.
Figure out what progress along this path looks like and monitor it closely. Define inspection processes to track this progress with your team. Every member of your team should understand the path to success and how they are tracking along it.
The best kind of goals are measurable. Take the time to define robust topline metrics that capture success. Set up a weekly team meeting to review these metrics, and coach your team to respond quickly to metric changes.
As a leader you need to maintain a broad focus. If your team is large enough you may do little to no individual contributor (IC) work. This is expected, but carries substantial risk.
Your data holds secrets that it will only surrender to row level inspection. Tracking your team’s performance through aggregate topline metrics is necessary but not sufficient. You must be familiar with the actual queries to generate these topline metrics, how these metrics change when you start to poke around the queries, and what eccentricities in your data cause those changes. This will enable you to construct an anti-fragile perspective on your team’s performance, which will let you make better decisions and set an example of excellence for your team. Few other activities are as high leverage for an engineering leader.
The larger your team becomes, the more important it will be for you to carve out time for row level inspection. Your intuition will erode the farther away you sit from your data’s reality.
Set Clear Expectations
In any team there are a large number of problems that need to be solved. As the leader you will have the broadest perspective on what these problems are and who is best equipped to handle them. Identify directly responsible individuals (DRIs) for each problem and set clear expectations with them.
These expectations should be expressed as outcomes, not actions. As the leader you are necessarily a step removed from the details of individual workstreams. Outcomes-based expectations empower your team to make their own decisions on how to achieve their goals. This becomes increasingly important when you are leading large or very senior teams.
Your team should grow and mature under your leadership. The best way to make this happen is to deliver frequent feedback. Good feedback is clear, actionable, and example-driven. If a team member’s behavior or performance during an event (meeting, project, conversation, etc) inspires you to deliver feedback, you should give this feedback as close to the event as possible. This will reinforce the message and makes it stickier to the recipient.
As a rule of thumb, positive feedback is best given publically and negative feedback is best given privately. But this varies from person to person. Some people can be a bit uncomfortable with receiving public positive feedback. It is up to you to learn this about your team.
It is also important to budget substantial time for multi-part written feedback every quarter or half. This can have a huge positive impact on your team members’ careers, and you want to put time and thought into it.
You should also aim to establish a team culture of feedback giving. This will help smooth interactions, strengthen team relationships, and reduce new team member onboarding time. One way to do this is to use feedback - simply recognize and reward good feedback delivery.
Culture is built on the back of frequent feedback. Don’t hesitate to deploy it liberally.
Let Builders Build
As a leader it is your responsibility to harness the full potential of your team. If someone on your team is passionate about something, you should figure out a way to let them do it.
Every once in a while, an engineer on your team will build something unexpected and outside of the plan. This is most common with high powered junior engineers, who will see a problem and build a solution rather than work through the team processes.
You have two priorities when this happens. The first is to remain clear about your expectations. The team has a strategy, and you are still counting on this engineer to deliver their part of the plan.
Your second priority is to encourage the engineer. Unsolicited side projects are among the most fertile ground for new ideas, and sharp engineers on your team will see solutions that you miss. Reward this kind of kind of creativity and initiative, and use the opportunity to learn from your team.