What does a software engineering manager do? (part 2)
The previous article of this series was about “Supporting the individual”, one of three levels when laying out the core responsibilities of an engineering manager.
In this post, let’s look at the two other levels:
Supporting your team and
Supporting your organization
Supporting your team
Remember those radar charts?
Supporting your team will have a lot to do with improving processes but also culture to enable your team to ship faster.
To give you a rough idea, working on the "Supporting your team" level will usually entail things like the following:
Making sure your team reflects on how they work and want to improve, e.g. by facilitating retrospectives and by creating team guidelines.
Becoming expert on agile methodologies like Kanban or Scrum and implementing those in your team.
Collaborating closely with your product peer to plan and prioritize upcoming work.
Improving the delivery process of your team, e.g. by making sure repetitive tasks and toil get removed from the delivery pipeline, typically by adding automation.
Measuring delivery metrics to gain valuable insights for further potential improvements for the way your team is shipping code.
Prioritizing technical health initiatives and balancing them with building new features.
Identifying inter-team dependencies that are slowing your team down and working with other software teams and your management peers to remove those.
Making sure your juniors get mentorship from their more experienced peers.
Building a positive error culture where mistakes and errors lead to a healthy and constructive inquiry about what happened and how to prevent that from happening again (vs. blaming).
Creating safe & inclusive environments in which all team members are encouraged and feel safe to speak up and share their half-baked ideas or constructive criticism.
Depending on how fast your startup is growing, you might also do a lot of interviewing and hiring to select the right talent for your team and organization.
To get new team members up to speed quickly, you also need to take care of improving the onboarding process for your code bases.
Being a team lead does not mean that you have to take care of all of the above activities all by yourself. But it does mean that you are accountable for making sure that these things happen in your team. Who exactly does it is usually a matter of delegation.
To be most effective as a manager and in order to have the greatest possible leverage, you must learn to prioritize your work based on the estimated potential impact on the quality and effectiveness of shipping software in your team.
My leadership development program has a separate module each on "Making your team more productive" and "Building safe & inclusive environments" because I regard them as crucial to understand as a new team leader.
Now let's get an idea of what "Supporting your organization" means.
Supporting your organization
As an engineering manager, you are expected to support your organization as a whole, especially where you interface with other teams or departments, e.g., Product, Support and Marketing.
When you are supporting your organization, you might be ...
Improving and documenting inter-team processes and the communication with the teams you need to collaborate with.
Facilitating and documenting technical decision making for decisions impacting also other teams in Engineering.
Contributing to a more effective meeting culture in your cross-team meetings.
Supporting initiatives for a better company culture in your organization.
You might be doing much more networking, to broaden your perspective and knowledge about what other teams are working on and to learn how other teams are solving similar problems.
Participating in product roadmap planning with your product and management peers.
Reporting upwards about your team’s projects and about the technical health of system areas your team is accountable for.
Generally, working on the org level means that you will be involved in many conversations that span across teams in your organization. Being part of those conversations will allow you to understand the bigger picture of company and product strategy and to connect the work of your own team to the shared company goals.
Having access to this kind of information will enable you to explain to your own people the “why” behind their work and how they are contributing to organization-wide goals. Communicating this to your team members can make their work feel much more important and valuable which increases their motivation.
Wearing different hats as a software engineering manager
I have also found it helpful to think about the EM role in terms of wearing different hats at different times.
So for example at one time you might wear the “team coach” hat and take care of culture, inclusivity, creating a safe environment, agility and improving team processes etc.
At other times you will wear the “people manager” hat and take care of hiring, onboarding, engaging, developing and offboarding people.
As the “delivery coach” your main responsibility is to improve the speed of delivery, e.g. by removing repetitive tasks (aka toil), adding automation and prioritizing tech health initiatives.
The “entrepreneur” in you will have to think strategically when collaborating closely with your product peer to support the broader product and company strategy and communicate the “why” of work back to your team.
Leaving aside all previous mentioned details of how you can potentially categorize and describe the engineering manager role…
One of my favorite quotes on leadership sums up very well how to lead people in the best case:
“Leadership is about recognizing that there's a greatness in everyone, and your job is to create an environment where this greatness can emerge.”
(Bill Campell, football and leadership coach)
With my work as an engineering leadership coach I hope to support and guide new managers a little bit on their journey towards this inspiring but challenging goal of leadership.
PS: In a next post, I will describe the very nature of management work and how the day-to-day of a manager looks and feels like. I will talk about all the things that will suddenly change when transitioning from software engineer to engineering manager and the some of the typical challenges that come with it.
PPS: Are you unsure if you should become a software engineering manager? As a professional coach I help people like you to find out. Get to know me and let’s talk to find out how I can help you making the right decision. Or read the article “Should I become a software engineering manager?“ in which I describe how I work with people like you that are currently considering the engineering management role for them but are unsure if it will be a good fit.