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. <3

The Engineer/Manager Pendulum

81 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.

  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.

    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.

      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.

  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.

  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.

  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…

    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.

  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.

    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.

      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.

      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/

  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. […]

  8. […] 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. […]

  9. 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.

  10. 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’?

    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”.

  11. I love this so much, and it rings so true to me: swinging between these two pendulum poles has been my career in technology. I’ve even swung from engineer -> manager -> engineer at a single company at this point…

  12. DAVID says:

    Just about to go back into engineering after 4 years of drifting away and of course ‘up’ into management. Wish me luck. 😉 – I’ll keep you posted. This article has helped gather my thoughts and make a decision.

  13. “There’s nothing worse than reporting to someone forced into managing.”

    I reckon reporting to sociopaths, narcissists, luddite micromanagers (luddites are fine, just not when they simultaneously feel the need to learn the details themselves) or full blown psycopaths is worse that someone who doesn’t want to be a manager. All those types want to be there, aren’t forced, and are there for the power fix.

    The hitchhiker’s guide to the galaxy describes the president of the galaxy as this weird person in a room completely detached from reality just focused on sharpening a pencil. The person who really doesn’t want to be in charge, to the point they don’t even know they are. Obviously a joke but the indifference to power is surely better than the power hungry alternative.

    Plato describes the best person to steer the “ship of state” as the person looking up at the stars, getting the big picture and the perspective to navigate effectively, meanwhile the person who ends up in charge is the one looking around at all the others on the ship, backstabbing and sneakily or aggressively stepping on others to get there. It’s a generalization but I think it’s unfortunately frequently true. There’s that expression – people don’t leave bad jobs they leave bad managers.

    I know you included people who choose management because they misguidedly think it’s a promotion and in that sense they are forced into it, but there either has to be some financial or power motivation to actively choose that route, otherwise why would you want the responsibility? People who actually care about other people and their wellbeing don’t aspire to manage.

    Regarding it being a promotion, speaking purely financially then of course it’s true. Perhaps not in the bubble of Silicon Valley and similar places where rockstar developers get paid very well but in most of the world people in charge are getting the money and the stocks and the bonuses. Perhaps not spiritually or for your personal fulfillment it’s not a promotion, and certainly it really shouldn’t be the only road to promotion, but in most companies I’ve worked at there’s a limit to seniority, authority and pay grade in the tech career path. At one company I actively chose not to join the leadership program and was told that I was crazy by the CEO because “tech is a limiting career”. Perhaps not a limit to responsibility or accountability, but who wants responsibility and accountability without authority? Plenty of those sociopaths I refer to have all the authority and none of the responsibility or accountability.

    Wow this ended up fairly negative, I didn’t mean for it to, I enjoyed your post and mostly agreed with it.

  14. Thanks for a great post of the dilema, indeed being a manager and tech lead are worlds apart with no talk of the swinging pendulum across both tracks. The challenge I think always is that moving up into “C-suite” management seems the only way to make more money due to a ceiling that is placed on growth as technical person.

    I tried being a “proper” manager for 3 years, different roles, then found that I suck at it … Like a workmate counseled me, it’s like you are wearing a suit that doesn’t fit you.

    Lesson I learnt: Find what you want to do and can do (be a techie for me), then become the best you can be at it … Its way more satisfying

  15. Good post with good advice. I encourage tech folks to change roles every so often.

    Two things I want to comment on about management in this post though: management should tax you creatively but differently than engineering. It should not be a series of countless meetings, email, and conflict. Your job as a manager is to contain that, reduce it, and address it preemptively. You are also responsible for developing your team: make leaders out of them, technical or managerial.

    The other critical difference between management and IC tracks is the stakes. With the latter, you are dealing with software bugs and occasionally minor dings to the company’s bottom line (not all cases and I’m over-simplifying for the sake of space). The former means you can impact people’s lives and livelihoods.

    Totally agree that technical tracks are underdeveloped; however, technical management is also still developing and needs people to help mature it.

Leave a Reply to Lessons learned managing the GitLab Data team – GitpossibleCancel reply