Should Engineering Managers Be Technical?

(Crossposted from leaddev.com)

Last week someone asked me this question, ‘How important are management skills vs. the rest of it?’

They continued, ‘Like, shouldn’t we be able to hire people into these engineering management roles if they have management skills, but not necessarily any software engineering skills? Why do we treat one skillset as non-negotiable, and the other as easily learnable? And since we’re always telling managers not to write code or do technical work – since what managers actually do all day is go to meetings, write emails, and other managerial things – shouldn’t it be management skills that are non-negotiable rather than engineering skills?’

I have thought long and hard about this; not least because our profession has a long and inglorious history of treating technical skills as innately superior to other skillsets (and engineers as superior to other professions). It’s as though simply learning to code well is some kind of wild card ability that makes you instantly better at everything else around you. My instinct is to say that engineering skills are non-negotiable and the managerial skills can be acquired later, but am I simply manifesting that same old snobbery?

I don’t think so. But maybe! I will make my case here, and let’s see if you agree.

I don’t think you need to be the best engineer in order to be a good engineering manager (EM). I wouldn’t recommend becoming an EM until you have been working as an engineer for at least five to seven years and are comfortably senior-level, but beyond that, I see little evidence that superior engineering skills translate into greater management aptitude or better engineering outcomes. I am actually a vocal proponent of offering management opportunities to middlingly-skilled engineers.

Management is not a promotion, it’s a lateral step to a parallel track

But management itself is less of a discrete skillset and more of a superset or an adjunct discipline. It’s a coaching relationship, a derivative role, one that leverages your existing knowledge of the discipline to help teams make decisions, resolve conflicts, and develop skills and processes. Therefore, managers need to have a solid grounding in engineering fundamentals before they can usefully help others grow as engineers. Managers may also need to go back to the well periodically and engage in engineering work to refresh their capabilities.

You can’t recruit a Starbucks manager to manage a software engineering team any more than you would recruit an NFL coach to coach your Olympic gymnastics team. If you want to coach a team, you gotta know the game.

Some of you are nodding along and thinking to yourself how obvious this all sounds. But this is actually a somewhat controversial stance. Every time this topic comes up, a sizable minority of those present begin strenuously disagreeing with the case I have just made, and always for the same reason: because they have worked for managers who were non-technical, and consider them the best managers they have ever had. Seriously.

‘I had a manager who knew nothing about technology, and they were the best manager I’ve ever had. They knew their limits, they never interfered, they always took my word for it and backed me up’; ‘The manager was always paired with a tech lead (TL) who they relied on for technical stuff, and they just supported us as people’; ‘Engineers mentored each other technically – we didn’t need the manager for that.’

This experience is surprisingly common, enough that it’s worth taking seriously. And I do.

Non-technical managers may be unicorns or a split-brain

Clearly, it is possible for non-technical managers to effectively manage engineering teams. I know it is possible – I have seen it done myself, once or twice. There are two scenarios where this can work.

In the first scenario, the manager is a truly unique individual, a unicorn of sorts, who compensates for their lack of technical ability with an almost uncanny empathic, intuitive sense for who to trust; when to trust them and for how far; and usually an extensive knowledge of the domain. They overcompensate for their lack of technical skills by being stunning in every other possible way. They usually climb the org chart fairly quickly, because the higher you go, the less relevant your hands-on engineering skills become compared to your strategic ability and your skill at motivating and influencing others.

These people exist, but they are rare. You cannot plan a hiring strategy that depends on you finding and hiring them, because they are exceptions to the norm.

In the second scenario, non-technical or less-technical managers are part of an intentional organizational strategy – usually due to some quirk of who the early employees were or the organizational philosophy of the founding team. Non-technical people managers are paired with highly technical tech leads, essentially splitting the brain of an EM in half. This strategy relies on those two staying in lockstep; it has rigid leadership dynamics that I’m not super fond of, but it does work. Note that it ‘works’ by designing the entire organization around compensating for this blind spot.

If the manager and the tech lead disagree, it’s bad news. The manager has limited ability to personally evaluate or review your work and they have to outsource their judgment to the tech lead. When faced with tough decisions, the manager cannot guide the team to explore the territory and arrive at a group consensus, so the tech lead generally makes all decisions.

It’s a rather fragile state of affairs, but when you roll the dice and get the right coworkers, it can work – especially for the tech lead. Tech leads in this configuration are extremely powerful; the manager basically defers to the TL whenever the TL thinks they should, which can be quite gratifying to a senior person. Most of the vocal proponents of this model are people who miss being that TL. They tend to talk longingly about how no one ever questioned their judgment or evaluated their performance and just left them alone to do engineering as they saw fit. And they say this like it’s a good thing.

A manager’s job is tuning sociotechnical feedback loops

These days we all work on, and from within, these incredibly complex sociotechnical systems and feedback loops that are so complex, there is rarely any problem that is purely ‘social’, ‘tools’, or ‘technology’. It is all entwined and interconnected. And if you are to have a hope of improving these systems and feedback loops, you need a full toolset. You need both social and managerial skills, and technical engineering skills. Furthermore, you need to learn to wield them together.

You need to be able to look at a team that isn’t shipping very fast and figure out whether it’s because of under-skilled engineers, legacy code, a weak product culture, a leaky CI/CD pipeline, or a team that has given up and lost confidence in itself. And then you need to start influencing people to do things that visibly and materially improve the system.

If you try to separate the social from the technical, and assign different domain owners to each, you are slicing up the ownership and responsibility lengthwise. You’re setting yourself up for squabbles about whose fault it really was, instead of making the lines of responsibility and accountability crystal clear.

Good engineering managers have both social and technical skills, and they take an interest in the personal development of their engineers (or support their very senior engineers). This is the ideal situation for a team: to have a technically-skilled manager who can weigh in but knows their boundaries, doesn’t hog all the decision-making for themselves, and lets engineers own engineering decisions.

It is not your job to make all the decisions now

But too many engineering managers mess this up by not letting engineers own engineering decisions. This is especially true if they are used to being the most senior engineer on the team and so they tend to clutch onto those decisions as a manager. This is deeply disempowering and frustrating for the people on their team. It creates the conditions for engineers to speak longingly about being neglected by their nontechnical managers. It is a self-inflicted wound. Don’t do it.

Much fuss gets made about managers needing to stop writing code and contributing. I think this is close, but not quite right. Managers need to stop writing code in the critical path. They cannot allow themselves to become a bottleneck, so they shouldn’t write key features or contribute to the really interesting parts. I think it’s actually a great thing for managers to keep their hands warm with bug fixes, low pri side projects, etc. Teams really appreciate it when their manager viscerally feels their frustration with them.

So go ahead, put yourself in the on-call rotation, keep your skills sharp, all this is good and worthy. Just remember that your primary job is to be interruptible and available, so as a manager, writing code is a luxury that comes last.

Should Engineering Managers Be Technical?

Questionable Advice: “How do I feel worthwhile as a manager when my people are doing all the implementing?”

“How do I feel worthwhile as a manager when my people are doing all the implementing?”

— An Engineering Manager

Hey, real quick: how long have you been managing? If it’s less than two years, honey, the answer is “you don’t.” Your feelings about your performance don’t mean much in a new role. If you think you’re crushing it, you probably aren’t. But hey, if you think you’re screwing it up royally, you probably aren’t that either. ☺️

It took years for you to develop reliable instincts as an engineer, right? Then you switched careers and went right back to beginnerhood. That rarely feels good. So just don’t worry about it. Try not to obsess over how well you’re doing or not doing. Just engage your beginner brain, set phasers to “curiosity!” and actively pursue every learning opportunity for a year or two. Your judgment will improve. Give it time.

But experienced managers still struggle with this too. So if that’s you: let’s talk.

job satisfaction feels different for managers

First, let’s be clear: job satisfaction as a manager, should you find it, will feel very different than it did as an engineer. As an engineer, you get that very tactile sense of merging code, solving puzzles and incrementally pushing the business forward. It has a rhythm and a powerful drip, drip, drip of dopamine, and as a manager you will never ever feel that. Sorry! Some people eventually make peace with this, but many never do. No shame in that.

This is partly a function of time and proximity. Manager successes and failures play out over a much longer period of time than the successes and failures of writing and debugging code, and you can only indirectly trace your impact. It can be hard to draw a straight line from cause to effect. Some of your greatest successes may resonate and compound for years to come, yet the person might not remember, may never even have known how you contributed to their triumph. (Hell, you might not either.)

It is also related to your changing relationship with public credit and attribution. It is extremely poor form for managers to go around taking credit for things, so hopefully your org has a sturdy culture of celebrating the people doing the work and not their manager. But if you are used to receiving that stream of praise and recognition, it can be disorienting and deeply demoralizing when it dries up.

Most managers are unreliable narrators

There seems to be precisely one acceptable answer to the question of what motivates managers: loftily waxing on and on about how they get ALL their joy and fulfillment from empowering others and watching other people succeed without ever personally building anything tangible or receiving ANY of the credit. I call bullshit. (This bugs the ever-loving crap out of me.)

It reminds me of the self-abnegating monologues women are supposed to give about how amazing motherhood is, as they’re covered in vomit and haven’t slept in a week.

There is nothing wrong with wanting credit for your work, and affirmation and validation, and there is nothing inherently noble about not wanting those things. Whatever motivates you, motivates you. What  matters is that you are self-aware about your needs, generous with credit, and conscious of who you lean on to get those needs met. Anyway, lots of people who become managers find themselves suddenly adrift and lacking reliable indicators about their job performance.

Part of becoming an effective manager over time is learning to recognize your own contributions and derive your own inner sense of worth. Nobody wants a needy manager. So here’s where I’d start: by locating your impact in the Really Big Stuff, the small personal moments, and any sort of crisis.

1 💜 The Really Big Stuff.

Are your users happy, and your business growing? Are you setting ambitious strategic goals and hitting them? Are your DORA metrics excellent? Are people happy to join your team and report to you? Are they awesome? Great, then you deserve some portion of the credit for that.

Most big shit is unfortunately only truly visible over much longer timelines, **but!** the longer you are a manager the more sensitive your feelers will become, the more they will pick up on subtle hints that betray deeper concerns. The sideways glance that suggests lack of trust, the offhand comment with an edge that sticks with you — those are fleeting clues which you may then delicately and expertly probe and use to disarm bad situations before they deteriorate or detonate.

(And sure, it can be really lovely to watch someone succeed when you know you had a small part to play. Congrats, you earned your salary. I just find it a little creepy and culty to act like this is what every manager must live for. There is nothing whatsoever wrong with you if living vicariously thru your reports’ successes doesn’t do it for you.)

2 💙 Random little moments.

On the flip side are the small and precious moments: did you just make someone feel supported in taking their mental health days? Did you pick up on someone’s anxiety and take a moment to check in them? Did they leave with a smile? Did you amplify someone’s voice, or help them work through a problem, or argue someone into receiving a well-deserved raise? Wielding your manager powers for good can be so easy and so gratifying.

(Seriously — give yourself a little pat on the back. This is the closest you’re going to get to a compliment most weeks. And nobody else is going to do it for you. 🤣)

3 💚 In a crisis.

Every manager will eventually encounter a crisis, and those are the moments that reveal the most about how well you have done your job. Do you have the credibility to speak for your team? Does your manager reach out for your support? Do your peers take you seriously or confide in your? Will people vouch for you? You’ll find out!

Not to put it too harshly, but in a clutch situation, are you a source of calm or are you often on the list of “situations to be managed”? Do you consistently tamp down drama and lower the stakes and the volume, or do you react in ways that amplify and escalate emotionally-charged situations? Do your feelings become other people’s problems? This reflects your ability to regulate your own feelings and emotional impulses under stress, and most of us quite overestimate our own power to self-regulate.

Go to therapy. Practice that mindfulness shit. Find what works for you, but pay attention to the energy you are contributing to any situation.

“Does it even matter if I come to work or not?”

A friend of mine was recently lamenting that it didn’t feel like it mattered if he came to work or missed all his 1x1s or not. What even was the point of showing up, as a manager?

In a way, he’s right. It shouldn’t matter if you’re out for a day, or a week. No single 1×1 should make or break something major, or you were already on terribly thin ice.

It is impossible to predict what the next crisis will be. All you can do in the meantime is keep your sociotechnical systems humming along and steadily work to improve them. Build good relationships and deepen the web of trust around you. Optimize your systems so that your people can spend as much of their time as possible on satisfying, high impact work. Make sure nobody is running ragged or being taken advantage of. Ensure redundancy and resiliency across all social and technical domains. Never stop learning. Keep your troops shiny.

Managerial value accrues over time. You can’t show up in the middle of a crisis and start fixing trust issues, any more than you can be a good coach who only shows up on game days. Train yourself to rejoice when things go smoothly in your absence (and really mean it).

TLDR

In the end, your worth as a manager is seen in the trail you leave behind. The teams that got buy-in to achieve continuous delivery. The coworkers who fondly remember working together and recruit each other, or follow you from job to job for years. The way they saw you advocate for them. Set the bar high enough that their future managers will be compared to you. 🙃

If you are a good manager, you will rack up moments over the years that mean the world to you, heartwarming and vulnerable moments when people share the impact you’ve had on them. Treasure those like rare, unpredictable treats that they are, but don’t confuse them with fuel. It will never be enough to run on.

(And hey — if you’re just starting out, and all this sounds impossibly long-term? — never underestimate the value of just being fucking kind and generous and a pleasure to interact with. The job isn’t a popularity contest — the day will come when your effectiveness means the right people hating you. But that day is not today. And it is hard to be a good manager unless people genuinely enjoy talking to you and affirmatively want to help you meet your goals.)

charity.

Questionable Advice: “How do I feel worthwhile as a manager when my people are doing all the implementing?”