Part 6 in a series on managing programmers

It’s my experience that many technical managers aren’t – and don’t really want to be – managers. See, we generally start out as engineers or developers, and probably show some strong competence as individual contributors. Maybe we’re also one of those rare engineers who can keep their cool with customers and has a knack for explaining technical solutions to non-technical types. Then something happens – someone resigns, a team gets too big, a new project starts – and we’re thrust into the job of “leading a team”, perhaps “just in the interim”. And we try to continue doing things like we had been doing, but now we’ve got all these extra meetings to go to and emails to answer and we have to hang out with the guys in sales and marketing and the project manager keeps asking me questions about when we’ll be done and I have all this PTO to approve and then Sally’s dog died and Jason’s getting married and I’ve got hire an intern for the summer and all I really want to do is write code!

This isn’t the fault of the poor sap who just got thrust into management. This is a problem with the organization, because most organizations don’t pay enough attention to succession planning and training their managers. I find this is a problem with how most places define the role of manager, and how they expect to find manager. Put simply: The best engineering managers aren’t normally the best engineers on the team. Sure, they can do the work, but they’re more often the guy or gal on the team who knows exactly who else in the organization might be better at a given task than they are. So I wanted to share some of my thoughts on what the job of technical manager actually is and isn’t.

A manager’s job is about…

  • People. This one’s obvious, right? You saw it coming, sure. But the problem is that most organizations don’t make this point crystal clear to new managers: “Your people are your number one priority. Period.” Not your code, not the new architecture. Your people. Their productivity, their effectiveness, their professional growth, their ability to work as a team, and, yes, even their “happiness” is your single most important responsibility. That means your job is to listen more than you talk. That means if someone on your team wants to talk to you, you should very seriously consider dropping everything else on your plate to have that conversation. That means everyone on your team should have your cell phone number and personal email address. That means emails from folks on your team are the very first emails you read and respond to (and yes, you always respond!). That means you make time to meet with everyone on your team one-on-one in private at least once a week, and that your weekly team meeting is something you prep for and retrospect on afterwards. That means thinking about how to resolve interpersonal conflict between your team members is something that keeps you up at night. That means you are concerned with the professional development of your team members over the long term, not just with their performance in the moment. And yes, that means all these things are more important than you getting to write code or build robots.

  • Productivity. Ultimately, your job is to help the folks you manage be as productive as possible. This is a good thing for the company, obviously, but it’s also a good thing for the people on your team. Studies have shown that happy people are not necessarily more productive, but that productive people are usually happier. This makes sense: If you can help the folks on your team get stuff done, then they are rewarded by a sense of accomplishment and having made a real difference that day. So, when considering someone for the manager role ask: Is this someone who by hook or by crook makes other folks more productive? Are they the ones you find moving the furniture, putting away the dishes, making sure the coffee is hot, walking over to marketing to get clarity on deadlines, and running interference with the sales team – just so that the folks doing the work can have the physical space, mental tools, and emotional focus to be effective and productive?

  • Priorities. One of the ways you help make your people more productive is by being creating exceptional clarity around priorities – both for the folks on your team and the stakeholders outside your team. Ask around and you’ll find that most developers have a half dozen “top priorities” at any given moment. But again, studies have shown that most of us are actually pretty terrible at multitasking, so it’s just wrong to believe that someone with more than one (or maybe two) priorities is actually going to be effective. One of a manager’s most important jobs is to stretch those half dozen tangled priorities out into a clearly ordered list, and then share that list with everyone. So is your manager always the one ordering and re-ordering and clarifying and communicating priorities? And making sure everyone knows what everyone else is working on and why they won’t/can’t/shouldn’t get to priority number seven until two weeks from now? They should be.

  • Positivity. Engineers are problem solvers, and therefore problem-oriented. It’s very easy for most of us to identify what’s wrong with any possible solution – the risks, the holes, the probability of error, etc. But the danger is that a room full of engineers can drift toward negativity and inaction (we are also a data-driven lot, and there’s almost never “enough” data). The manager’s job is to keep the team focused on the positives, help the team create a workable plan, and drive toward an acceptable solution. You are not necessarily the smartest person in the room, so your job is to get those folks thinking, and thinking about solutions not roadblocks. Are you supposed to have a vision, a plan, and be a bit of a cheerleader for your team and the organization? Yes. And are you supposed to smile and give positive feedback for things done right? Yes. Negativity is very easy for engineers, and it’s part of your job to set an example and focus on what can be done and what’s getting done correctly.

  • Teaching. A manager needs to be a teacher, and the job of a teacher is to help their students learn and grow their knowledge and skills. It’s important to note that most great math, science, or history teachers are not themselves great mathematicians, scientists, or historians! Great teachers ask great questions – the kinds of questions that inspire their students to think and rethink, to question what they thought was true, to become curious about alternative paths and different ways of doing things. Likewise, good managers ask more than they tell. “What do you think?” “What are some other ways of doing that?” “Is that really the best/only way to solve this problem?” “How could we do this faster/better/stronger/differently?” Good managers recognize that learning is about the student growth and ask these questions with the intention of leading the team to the best possible solution, not simply to demonstrate how smart they themselves are. Good managers recognize that it’s sometimes okay to let someone choose the wrong path and fail if it helps the larger goal of learning and growth. And good managers are always thinking about how to engineer a better learning process.

  • Trust. We gain trust when we do what we said we’d do. It’s really that simple. And a manager’s job is about brokering trust within her team and within the larger organization. Managers need to trust team members, team members need to trust their manager and each other, and the company needs to trust the team. This all boils down to a process of setting expectations, communicating clearly about those expectations (including letting folks know when they change), and then meeting the expectations you’ve set for yourself and your team.

  • Leading. It’s the manager’s job to stand up and lead. Yes, leading usually means public speaking. It’s your job to run the daily stand-up and the team meeting. And it’s your job to call and order the pizza. And it’s your job to present the team’s latest work at the company demo. And to shake hands with new customers and new employees and meet and actually talk to actual people. Of course, not all of us are great at this part of the job (since many of us are introverts), but it is indeed part of the job. Good managers know that they are always on stage, and everyone is always watching. But leadership is more that just public speaking. It’s also about creating a shared vision and mission for your team. Who are we? Why are we here? Sure, we’re engineers and we’re here to solve problems and get paid. But most high-functioning teams have some understanding of how their group fits within the larger organization, and why the work they’re doing matters. It’s the manager’s job to articulate this vision and help forge this identity through goal-setting for individuals and groups, positive and constructive feedback, and communication with folks inside and outside of the team about how awesome the team is.

A manager’s job is not about…

  • Always having the (right) answer. Your job is to help solve people work together to solve the problem and come up with answers. Most often this means you’re the person who knows the person who might know a person who probably has the answer. The manager’s job is to connect smart people and thereby magnify or focus their impact.

  • Being the smartest person on the team. See above. I’ve worked with some horrible managers who were absolutely brilliant engineers. This, in a nutshell, is why if folks can’t get behind all the “soft stuff”, and can’t bring themselves to “schmooze” and “deal with all the politics” then they’re probably better suited to continue in a role as an amazing individual contributor. The manager’s job is to know who the smart folks are, get them in a room, set some goals, and help them work toward a solution and a commitment to getting the work done. They need to be smart, but they’re probably not the best scientist, engineer.

  • Doing the work themselves. The manager’s key skill is to be able to accomplish more through other people than they would themselves. If the manager is the person who’s constantly called into play to fix the problem, write the key algorithm, or save the day, then something’s wrong. It’s not that the manager couldn’t necessarily do the work. Rather, it’s that the manager is supposed to be leading a team, and when the team does the work the team works better.

  • Perfection. It’s amazingly easy for engineers to let “perfect” become the enemy of “good enough”. Smart managers know that their job is about people, and people are rarely perfect, and rarely produce perfect work. Smart managers know that a solution that meets 80% of the customers needs today is about a million times better than a solution that meets 95% of the needs but gets delivered too late. The 80/20 rule is the right way to approach things about 80% of the time.