As I mentioned in a previous post, I became a manager to create safe spaces that allow people to do their best job. Becoming a manager was the hardest career transition I’ve made, mostly because I didn’t have a lot of good role models around me and didn’t have a great idea of what being a manager actually meant. The job of a manager is somewhat abstract and many engineers come to me asking for advice on whether to transition to management or not.
If you love coding and getting your hands dirty management probably isn’t for you. I say that because we as humans are restless for new challenges, and the more you advance in the management career and take up larger challenges as a manager, the less technical work you’ll do. Some people tell me they want to be a manager but they want to stay technical. I tell them this is very likely a contradiction and a signal that management might not be for them.
Management isn’t a place of authority. In fact, authority is the last tool in the toolbox of a manager and should only be used when all other things fail. And if you use it, I am mostly certain you failed somewhere along the way to end up in a situation in which you need to use it.
While being an engineer means your objective is technical and people is the context where that occurs, management is quite the opposite: people are your objective and technical is the context where that occurs.
The best way to frame the job of a manager (initially in their career, anyway) is to split into three dimensions: people, projects and team.
You’ll see it is a lot of work, and if you think that you still have time to do individual contributor work once you’ve done all of this, then you’re probably working too much. If you’re not doing all of this (and more) you’re probably not meeting my very high standards for management :-)
People
Summary (no particular order, so I remember to make a separate post about each of these):
Hiring
Developing people
Supporting them as humans
Manage performance
Fire people and/or help them find their path
Everything people related goes into this category: from hiring to firing and all in between those two, meaning, the journey of each person in the team you manage.
You’re responsible for attracting people into your team. No matter what some people might tell you, it is your job to have great people join your team, and then to keep them.
Once you hire people, you need to ensure they are working on things that are appropriate for their career level, ensuring that you continue to challenge them so they keep growing (if they wish, don’t be a pushy annoying person), independently of the level they are at.
You’re also responsible of taking care of this person, and make sure they take advantage of all the resources available to them as an employee when they are going through hardship: benefits from insurances, leaves, and anything else.
Besides that, while someone is working with you, you’re also responsible for their productivity, and helping them recover performance when they are having trouble, acquire new skills and guide them through taking on more responsibility and finally, if they are not a fit for the job anymore, it is also your job to deal with it. If it comes to it this includes firing them.
Projects
Summary:
Understand the role of your team in the wider business
Listen to the needs of the team
The delicate balancing act of goal setting
Make sure everything is assigned in a magic ballet of preferences, capabilities and priorities
Give credit and take the blame
A manager is not only responsible for the people in their team, but also the team needs to accomplish its goals. The manager plays then the role of ensuring this happens, starting of course, by making sure the team goals are clear. The manager doesn’t necessarily need to do this job herself, but ensure that someone does. In some organizations and depending on the project and manager, there will be a Project Manager (PM) involved, and these profiles can help with bandwidth for well…management of projects.
Assuming there are no PMs involved, the manager need to build an accurate image of the business needs and ensure the team is aware of those. Then you need to listen to the people in your team, and ensure all the important things get done to satisfy both sides: business and the people. Listening to the business is important because well, it pays the bills, and listening to the people is also important because if you don’t, you’re both being a terrible manager for not involving the team in the process but also for not taking things that are less popular in consideration. Think, for instance, of technical debt. “Focus on engineering quality and technical debt even if that means releasing no features” said no Product Manager, ever.
Once the goals are defined, then it is time to get the team members to sign up for the goals, based on interests, importance and competence (senior engineers probably will do the more complex work, as an example). It is a very delicate balance, and I use to joke that is a full plate of awesome, and a spoon of poo. Everyone gets to do the unpopular work, because otherwise you’ll have very unhappy people in your team (unless of course they like the work, but usually there’s a bucket of unpopular work).
The team takes the credit, the manager takes the blame. That is basically the summary of how this ends. Your job is to give credits where it is due, and also to own the mistakes made by the team in a way that doesn’t blame individual people for making mistakes.
Team
Summary:
Nice environment
Collaboration amongst team members and other teams
Processes and rituals
The job of the manager is to ensure there’s a good work environment within the team. The manager is the one that facilitates creating “the magic” which makes the teams productive: learning opportunities, graceful handling of conflicts, ensuring everyone is heard, and not wasting team’s time with bullshit.
This is the least objective of them all in my point of view, but nevertheless not the least important. Nobody likes to work in a toxic environment. Collaboration is important, autonomy is important, competition is likely to destroy the feel good of your team, unless it is an exercise to accomplish something in specific.
If your team meetings are boring, fix them. Make sure the time you ask from your team is well used with a clear objective, and once this objective is no longer being met, or it changes, it is your job to make changes. This goes from organizing weekly team meetings with agendas all the way to ensuring you have a good script to come up with team goals without spending a month of everyone’s time in pointless discussions. Knowing everything so you take all the complexity away from the team is your job.