The Engineer/Manager Pendulum

Lately I’ve been doing some career counseling for people off Twitter (long story). The central drama for many people goes something like this:

“I’m a senior engineer, but I’m thinking about being a manager. I really like engineering, but I feel like I’m just solving the same problems over and over and it seems like the real problems are people problems. I have to be a manager to get promoted. I hope it isn’t terrible, once I make the switch. I hear it’s terrible.”

I’ve been meaning to write this post for a while. There’s a lot but let’s start with: Fuck the whole idea that only managers get career progression. And fuckkkk the idea you have to choose a “lane” and grow old there.  I completely reject this kind of slotting.

“Your advice is bad and you should feel bad”:

The best frontline eng managers in the world are the ones that are never more than 2-3 years removed from hands-on work, full time down in the trenches. The best individual contributors are the ones who have done time in management.

unicorns-are-jerksAnd the best technical leaders in the world are often the ones who do both. Back and forth.  Like a pendulum.

I’ve done this a few times myself now; start out as an early or first infra engineering hire, build the stack, then build the team, then manage the team, then … leave and start it all over again. I get antsy, I get restless. I start to feel like I know what I’m doing (… a telltale sign something’s wrong).

It’s a good cycle for people who like early stage companies, or have ADD. But I don’t see people talking about it as a career path. So I’m here to advocate for it, as an intentional and awesome way of life.

(h/t to @sarahmei who was tweetstorming this up at the EXACT SAME TIME as i was writing this.  Yes Virginia, internet feminists ARE linked by a mystical hive brain.)

On being a manager (of technical projects)

Promoting managers from within means you get those razor sharp skills from the people who just built the thing. That gives them credibility, while they struggle with their newly achieved incompetence in a different role.

helpfulcat

That’s one of the only ways you can achieve the temporary glory of a hybrid manager+tech lead. This is an unstable combination, because your engineering skills and context-sharpness are decaying the longer you do it.

You can only really improve at one of these things at a time: engineering or management.  And if you’re a manager, your job is to get better at management.  Don’t try to cling to your former glory.

Management is highly interruptive, and great engineering — where you’re learning things — requires blocking out interruptions. You can’t do these two opposite things at once.  As a manager, it is your job to be available for your team, to be interrupted. It is your job to choose to hand off the challenging assignments, so that your engineers can get better at engineering.

On being a tech lead (of people):

Conversely: the best tech leads in the world are always the ones who done time in management. This is not because they’re always the best programmers or debuggers; it’s because they know how to get shit done, which means they know how to communicate and manage other people.

A tech lead is a manager … but their first priority is achieving the task at hand, not grooming and minding the humans who work on it.

They still need the full manager toolset.  They’ll need to know how to rally people and teams and motivate them, or how to triage and restart a stalled project that everybody dreads. They still need to connect the dots between business objectives and technical objectives, and break down big objectives rainbow-swooshinto components. They need to be able to size up a junior engineer’s ability and craft a meaningful assignment, one that pushes their boundaries without crushing them … then do the same for another twenty contributors. This is management work, from the slightly shifted perspective of “Get Thing X Done” not “care for these people”.

So these tech leads usually spend more time in meetings than building things, and they will bitch about it but do it anyway, because writing code is not the best use of their time.  Tech is the easy part, herding humans is the harder part.

Senior engineers who have both these toolsets are the kind of tech leads you can build an org around, or a company around. They get shit done. And they are rare.

Almost all of them have spent considerable time in management.

The Pendulum

We don’t talk about this nearly enough: the immense breadth and strength that accrues to engineers who make a practice of going back and forth.

Being an IC is like reverse-engineering how a company works with very little Rainbow_dash_12_by_xpesifeindx-d5giyirinformation. A lot of things seem ridiculous, or pointless or inefficient from the perspective of a leaf node. .

Being a manager teaches you how the business works.  It also teaches you how people work. You will learn to have uncomfortable conversations. You will learn how to still get good work out of people who are irritated, or resentful, or who hate your guts.  You will learn how to resolve conflicts, dear god will you ever learn to resolve conflicts.  (Actually you’ll learn to YEARN for conflicts because straightforward conflict is usually better than all the other options.) You’ll go home exhausted every day and unable to articulate anything you actually did.  But you did stuff.rainbow-clouds

You’ll miss the dopamine hit of fixing something or solving something.  You’ll miss it desperately.

One last thing about management. There’s a myth that makes it really hard for people to stop managing, even when it makes them and everyone around them miserable.  And that’s the idea that management is a promotion.

Management is NOT a promotion.

Seriously, fuck that so hard. It is SUCH an insidious myth, and it leads to so many people managing even though they hate managing and have no business managing, and also starves the senior eng pool of the great mentors and elder wizards we need.

Management is not a promotion, management is a change of profession. And you will be bad at it for a long time after you start doing it.  If you don’t think you’re bad at it, you aren’t doing your job.

Managing because it feeds your ego is a terrific way to be sure that your engineers get to report to someone miserable and resentful, someone who should really be writing code

charity-gofmt
my feelings on having to only manager OR engineer for the rest of my life

or finding something else that brings them joy.

 

There’s nothing worse than reporting to someone forced into managing.  Please don’t be one of the reasons people burn out hard on tech.

It isn’t a promotion, so you don’t have any status to give up. Do it as long as it makes you happy, and the people around you happy. Then stop. Go back to building things. Wait til you get that itch again.

Then do it all over again. ❤

The Engineer/Manager Pendulum

30 thoughts on “The Engineer/Manager Pendulum

  1. OMG. I loved your Terraform posts, but this is a whole other level. You have put into words so many concepts about management vs. engineering that I’ve been rattling about in my head. I now have proper concepts to work with and tear apart and build over and … Thank you.

    Like

  2. davehillier says:

    Most management is a bullshit job if most manager entirely stop what they were doing life would go on.

    I don’t like the idea of being a manager; I consider myself a technical leader and mentor to my teams. I know some management is necessary, but I just want to scale myself as far as I can, grow to support whatever I’m working on.

    Like

    1. This is a common opinion among engineers, and it is unfortunate and self-sabotaging.

      Talking about a profession this way pretty much guarantees you won’t get good work done. You won’t get good people to spend their time doing work you clearly don’t value.

      That said, the state of tech management *is* on average … not great. But that means we need to value it and improve at it, not devalue it and do *less* of it.

      Much like operations engineering, quality management is often recognized in its absence. So if things are going well and you don’t recognize any apparent management (or operations) at work, often one should look harder and acknowledge the good work being done, not pat ourselves on the back for being too good to need it.

      Liked by 1 person

      1. davehillier says:

        Do do think the job managers do is important – ignore the hyperbole.

        I agree with you on that management should be interrupt driven, but I do think we should be doing “less” management so that we’re available for the things that are truly important. This has one consequence – which can have negative connotations; free time!

        I’ve seen teams not recognise this before; a question I’ve asked successful teams is, is whether their success is because of, or in spite of their manager. A good manager knows when to give a team lots of freedom.

        All too often management fill their time with busywork, or “bullshit” jobs. I’d rather fall back to doing something development related. It’s been a while since I read it, but Slack by Tom DeMarco covers this topic.

        Like

  3. BillyD says:

    This is a great post. Thanks! It is something I’ve been wrestling with for a while (so glad to know I’m not alone). I think the pendulum approach is a great way to grow and keep your technical skills. It should be encouraged and recognized more in industry.

    Like

  4. All of this, so much. We need to get away from this sense that making business decisions is somehow more prestigious than building things. I’ve even noticed that when I deliberately step back into full-time engineering from a management position, the same people I was working with suddenly treat my *technical* knowledge as less authoritative.

    Like

  5. The one thing that doesn’t seem addressed for me here is ageism (even if you do hint a little bit at it): in development, I feel like age is seen as a handicap, while in management, it feels less to be the case.

    So, naturally, I would tend to drift to management as I age, to avoid being perceived as a software engineer who did not succeed to get into management…

    Like

    1. That’s a really interesting and excellent point. Yes, ageism is a real thing, and yes, management doesn’t suffer quite the same penalty that engineers do for getting older. The perception that older software engineers are not managers because they didn’t succeed to get into management though is precisely the hierarchical bias I am trying to demolish. I think it should be much less of a big deal to enter or leave management. It’s simply a phase that everyone (almost) should do at some point, but most people probably don’t want to do (and shouldn’t do) indefinitely.

      Lower the stakes, lower the prestige, recognize that older engineers compensate for their shorter hours with efficiency and cunning.

      Like

  6. It’s easy to say management is not a promotion but in many organisations you hit the ceiling on remunerations a lot quicker as an engineer and there is no limit as a manager. You can of course say these orgs are dysfunctional and you should just leave them which brings me to my second point that changing job company every couple of years is just not that easy for everyone and impossible for some. I am glad you used the m word though because I’m getting tired of people thinking it is some sort of dirty word that should not be uttered in polite society.

    Like

    1. Management *shouldn’t* be a promotion. As long as orgs stop rewarding engineering advancement and decouple the pay brackets, though, it *will* be a promotion and you will bake in many of the dysfunctionalities of hierarchy. 😦

      Just like with ops engineers and software engineers. If they aren’t getting equal pay, they aren’t equally valued. I’m sorry, that’s super fucked up. All managers should lobby hard to replace it with a more egalatarian system, for their own good.

      Like

      1. I agree that moving between engineering/management is good for both sides, we should embrace the pendulum instead of feeling you have to be stuck on one track. But the salary of management/lead is often a response to the limited supply of those people. It’s easier to find talented engineers over talented managers/leads. The pool of available engineers is already small and the pool of great managers/leads is even smaller than that, so the pay reflects that scarcity.

        I think you even contradicted yourself in your own post. At the beginning you say:

        “Fuck the whole idea that only managers get career progression.”

        And then half way down you say:

        “Tech is the easy part, herding humans is the harder part.”

        Is it equal or harder? 😉 And you highlight how rare those kind of people are, so it explains why those people are often viewed as being “higher up” on the chain and often command higher salaries / prestige.

        I do think we would be better off if those two groups had pay equalized, but I’ve done a lot of hiring and it’s really hard to find talented tech managers that the team finds credible. And like you said, a lot of engineers have no interest in managing so promoting from within is often a non-starter. So then you have to try to pull someone away from another company and that generally means that person is going to be in an advantageous position re: salary negotiation.

        Like

      2. I meant “in this context for this person, tech is the easy part/humans are the hard part”, but you’re right, it was confusingly stated.

        Would it be asking too much to ask managers to voluntarily lower their pay to equal that of the engineers in their parallel track, as a leveling mechanism / investment in their own future movability? Possibly.

        I think too much negotiating is bad, and results in a system that advantages the good negotiators. I think it’s better to have flat-ish bands for each level, that allow for some promotion/movement within them, and state to everyone that we don’t negotiate. At a startup, it’s the fairest way to do it. I recommend this article: http://firstround.com/review/A-Counterintuitive-System-for-Startup-Compensation/

        Like

  7. […] The Engineer-Manager Pendulum (Charity Majors) — The best frontline eng managers in the world are the ones who are never more than 2-3 years removed from hands-on work, full time down in the trenches. The best individual contributors are the ones who have done time in management. […]

    Like

  8. Very interesting topic that will continue to generate endless discussions. I find it interesting how many engineers think that management is not important, and how if managers go away nothing changes. The reality is that thinking that way is a classic fallacy. In truth good managers are extremely key, and when they go away development organizations fall apart until another good manager takes over. That is because good manager allow engineers to do what they do best, and not get distracted by the business chaos or by people, teams, and coordination problems.
    Now, there is such a thing as bad managers, similarly as there is such a thing as bad engineers. Managing is a complex job, and a string engineering manager must have strong technical skills in order to understand what is going on.
    I agree with the author: managing and coding at the same time is very difficult. Nobody does it very well. It is a different job that moves at a different rate. One allows the other to do what they do best.

    Like

  9. ash says:

    This might sound like a silly question, but what do you mean by ‘manager’ and ‘tech lead’? ie what kind of management are you referring to? How do the two roles differ? Do they not overlap? And what did you mean by ‘IC’?

    Like

    1. manager: people-manager with direct reports. tech lead: engineer in charge of landing a project. these are very often not the same person, at larger companies they rarely are the same person. IC == “individual contributor”.

      Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s