The typical job description for many engineering manager roles is action-packed. It is a mix of hands-on coding, technical leadership and decision making, process and project management, product oversight, people management, finding and hiring talent… the list goes on.
In our work, we deal with both technical and people systems: we support individual engineers’ growth; help teams become successful; and make the organization more productive, functional, and innovative. Above all, an engineering manager is a service or support role across these various layers.
Perhaps most fascinating and difficult is the high-level of ambiguity that comes with engineering management. Many problems or questions don’t have straightforward answers. There aren’t absolute answers to what it means to be a good engineering manager either, but there are certain values and guideposts to follow.
In this post, I look at what can shape our thinking about our role as engineering managers and how to effectively support individual engineers, teams, and organizations.
What do engineers need to thrive at work?
It helps to start shaping engineering management roles by understanding what engineers need, and the environment in which they thrive. Research from performance coach and trainer Paloma Medina exposes six core needs humans have (including at work). She calls this research the BICEPS model:
- Belonging. As humans, we strive to be part of a community of like-minded people where we understand and support each other. We also want to feel as if we are not being discriminated against or marginalized. Belonging is really important to me personally: I love working as part of a distributed team, but I also really enjoy seeing people in person every once in a while. It makes me feel more connected to them.
- Improvement. We also seek to continuously learn, improve, and grow in areas that matter to us, as well as to our team or company.
- Choice. We want to have choice, control, and autonomy over important parts of our lives. In one of my previous roles, I took on a lot of work to drive organizational change. But ultimately, the control I had over my domain was limited due to organizational issues – which led me to leave the company.
- Equality. We want to know that our access to information, money, time, and other resources is fair and equal for everyone – not just for ourselves, but also for the people around us. Everyone’s needs should be treated as equally important.
- Predictability. We look for certainty, safety, and stability in our lives. We also want goals, strategy, and direction to be consistent – and to not change too quickly. I’ve been leading teams in fast-growing startups for the last couple of years, and when there’s a lot of change happening, it’s a challenge to instill predictability in teams.
- Significance. Deep down, all of us seek meaning, importance, and status. We also want to be appreciated for our work by people whose opinions mean something to us.
If our core needs are threatened, people resort to fight-or-flight modes of reaction, which are very stressful. The failure to meet core needs has high costs for organizations by harming people on our teams. So how can engineering managers put the BICEPS model into action to help their teams thrive?
Using trust-based relationships to help engineers grow
The foundation of being a good engineering manager is getting to know our teammates and understanding what is important to them. Here are a few places to start building trust within your team.
1. Ask questions
One of the most powerful tools managers have is asking good questions. The basis for doing our jobs well is listening, observing, taking note of what motivates our teammates, and really digging into their responses to our questions. I usually gather questions before I meet with my teammates one-on-one, so I am prepared and I can guide the conversation towards understanding them better.
Over time, I have built a kit of one-on-one questions that I pull out when I need some inspiration for these conversations. Asking questions helps us adjust our leadership style to the people we are leading. It also ensures that they feel understood and heard, which are really important pillars of inclusion and belonging.
2. Be curious
People are full of surprises, and sometimes our teammates’ reactions may be completely different from what we expected. I once received a message from an engineer on my team who was deeply upset about the specific wording used in a product-release note to customers.
At first I did not understand their strong reaction. But when we talked, I learned the engineer had been overruled by someone with more power, making them feel helpless, and threatening their core need for choice and equality.
What managers might perceive as no big deal can be enormous threats to other people. Cases where we’re surprised by our teammates’ reactions are good opportunities to focus on human-centric responses, like giving people the opportunity to talk through their feelings.
3. Connect to the bigger picture
Creating an impact is a very good motivator for all of us, so helping engineers understand how their work connects to the bigger picture (how it helps users or supports other teams) is an extremely important and strategic skill for managers.
While goal-setting frameworks like OKRs can help, it is also crucial to align engineering initiatives with higher-level goals, and connect them clearly with user value.
4. Involve engineers in decision making
Feeling that decisions are fair and equitable is an important component of the BICEPS model. When we make decisions, it is helpful to ask everyone for their opinions first, and take their opinions into account.
It is not always possible to go with what everyone wants. But we can still do a good job at contextualizing the decisions we make, and helping people understand that their feedback was considered.
5. Give feedback for growth
One of the best things we get to do as engineering managers is support engineers’ growth. Give feedback regularly to help the people on your team understand where they are at and grow – by course-correcting where needed, as well as by doing more in the areas in which they are already doing great. Managers need feedback as well: it’s important to regularly ask your team for feedback so you can make adjustments.
6. Coach engineers
Coaching helps people find answers themselves, improves their problem-solving and leadership skills, and increases learning, resilience, and self-management.
7. Sponsor engineers
Think back on your career, and whether you have had a mentor who connected you with someone, put your name forward, and used their influence to make a difference in your career. Be that person for someone else: invest in their growth, lift them up, and put your weight behind their success. Supporting your team’s success can make a real difference for them.
This is the foundation of our work as engineering managers.
Driving a culture of trust and continuous improvement on teams
The next important building block in our work as engineering managers is the team. According to research, high-performing teams need the following elements.
- Psychological safety. This is about believing that we will not be rejected, and feeling free to express our work-related thoughts and feelings to the people around us. It also means believing that others won’t think less of us if we make a well-intentioned mistake or ask for help.
- Structure and clarity. Everyone on the team should understand expectations, goals, and accountability.
- Meaning and impact. High-performing teams find a sense of purpose in their work, and know that their work has an impact.
Luckily for managers, this research neatly aligns with the BICEPS model. All human core needs are represented and have impact at the team level as well. By understanding and responding to people’s motivations, leaders create the basis for teams to express themselves – and provide the structure, meaning, and impact they need.
1. Build trust
The first step in creating structure is building relationships. For our distributed teams at CircleCI, we’ve built different structures to help teammates do that, such as regular pair programming rotations and engineering talks.
2. Structure around how we collaborate
Our engineering department has doubled in size for three years in a row. Over this time, we’ve moved to a more streamlined engineering delivery process for all teams. But we still leave it to the teams to decide how to implement t day-to-day processes, including daily standup meetings, planning sessions, or collaboration. Every team has specific needs, and they know best how to address them.
3. Remove blockers
Structures can also help mitigate the impact of getting blocked at work. We all know how frustrating it is to be stuck. Putting up pathways to help people get unblocked can be really important – for example, setting up regular pair programming rotations, investing in self-serve information access, supporting each other across teams, putting up escalation paths for people to get help when they need it, or helping people support each other through knowledge-sharing.
4. Continuously improve
We can use retrospectives to discuss and improve how we work together. Blameless postmortems are also a great tool to help understand problems and drive towards solutions. Code reviews, mentoring, or knowledge sharing can help team members learn from each other.
The way we talk about learning matters – especially the way we discuss mistakes. These decisions will fundamentally shape the culture of our teams, and determine whether people feel safe or threatened in their core needs.
5. Drive toward alignment
Communicate strategy, direction, and relevant tactical details to your teams – and remember it’s almost impossible to over-communicate these details. Always repeat what’s important.
As engineering managers, we are like mortar: we connect structures, teams, and people. We hold them together, but also identify and fill gaps as needed. Handling ambiguity is one of the most important and difficult aspects of engineering management. For a lot of work in our field, there are no straightforward answers, let alone resolutions.
Our work isn’t so much about us; it’s about the people, teams, and organizations we support. We build structures to help others shine.
Supporting organizational change
Lastly, creating environments in which engineers can thrive is about supporting our organization. We need to use our power as managers to drive organizational change, no matter the size of our businesses.
1. Advocate for change
To be effective as managers, we need to push for organizational change to improve the larger structures around us. For example, we may need to advocate for more clarity around engineering manager roles, have conversations about what engineering management should be like in our company, and determine requirements for hiring engineering managers.
2. Manage up
Managing our own managers is a useful but difficult skill. Driving organizational change also means making sure that our engineers’ concerns are heard at the highest levels, and that we use our power to make sure engineers have a voice in the rest of the organization.
3. Build frameworks and standards
While it is always important to make room for individual needs, structures and frameworks for managers help us hold each other accountable. They also help level the playing field and build in equality for the people on our teams.
On my current team, every quarter we pick some high-priority projects to improve how we work as an organization. Most recently, we’ve worked on our hiring process and incident remediation; last year, we developed an internal career growth framework for engineers.
Growing as a leader
Being a good engineering manager isn’t always a straightforward path; a lot depends on where we are at in our careers and where we are looking to go, as well as the growth stage, size, and needs of our organizations. In our daily work, we hold vast amounts of uncertainty while also trying to make progress.
An overarching theme in my work in engineering management has been growth and improvement. We rarely deal with greenfield projects or are able to build a team or department from scratch. Even when we do, we build on existing structures in our organization. I believe our supporting role largely means helping engineers grow, supporting teams at continuously learning, and helping organizations become better.
As engineering managers, we frequently face questions that don’t clear right or wrong answers. Many years ago, my leadership coach encouraged me to use those kinds of uncertain situations to ask myself, “What kind of leader do I want to be?”
I want to leave the last call to growth and improvement with you (and me): no matter what your role or company is like, work on shaping your approach to engineering management. Get to know the people that you work with, and use feedback to help them course-correct. Build teams that are psychologically safe places, where people find meaning in a shared purpose.
And use your power and privilege to drive change in your organization. Make people the center and focus of your work, and build on that foundation to create an environment in which they can thrive. Always push to continuously improve. Lead with humbleness, empathy, and lots of curiosity.