Is engineering management bullshit?
makeartwithpython.com
makeartwithpython.com
Here, we see engineers reduce the contributions of such common roles as: Product Manger, Program/Project Manager, Scrum Master, Marketer, CEO, etc., as fungible or run by the biggest boogeyman of all, the dreaded MBA.
These arguments most typically result from not an inability, but an unwillingness to understand, the complexity and nuance that goes into running a business, and to recognize that actual smart people can make real contributions in non-engineering roles.
It's just personal and professional immaturity. Every time I ready these comments and articles, I really hope that the folks writing them are able to grow out of this mindset. They'd be a lot happier and more productive.
Engineers who don't appreciate the role of the product/marketing/management layers don't seem to understand that if they had to take on those responsibilities it would leave them with no time left over to write any code. If nobody takes on those responsibilities then our company won't make money to pay anybody to write code. It's not chicken and egg, it's cart and horse.
If you don't want to become a marketing expert as well as a product design expert for the sake of doing all these things simultaneously consider being glad others are taking things off your plate and coordinating work without you so you can focus on writing code.
Regardless if the manager is helping the team they almost always drain resources to aggregate information that they can synthesize upstream. It's a system that is so fragile it's not hard to see why we have an industry full of people that experience this.
As for "draining resources" to do whatever reporting they need to do I don't think I understand what is fragile about it or why it would be anything other than necessary. It's like log aggregation/introspection, you do it because you want to see what's going on at a lower level without dealing with the minutia of every point of data.
To this end as engineers we design code that fills management roles all the time in our systems, and we understand perfectly why their role is needed but sometimes fail to realize that human systems are analogous. Nobody is arguing why a load balancer can be an important part of a system, or the values provided by ORMs, but here we are arguing about what managers do in a complex human system.
I'll point out that the world is pretty diverse and there are actually lots of people who think that ORMs were a mistake and lots of people who think that using them is always a no-brainer. There's an interesting phenomenon that it seems like a lot of folks manage to build up reasonably long careers while only running into one side of this divide or the other and not even realize that the verdict on ORMs isn't a settled fact where one choice is always right.
Perhaps it's similar with engineering management and we should be having a more nuanced conversation.
Here’s an idea: Provide this information before they have to ask, when it’s convenient for you. Like between tasks.
Took a 5min break? Move the damn story over to done. Got stuck and seeking clarity but are blocked? Leave a quick comment.
If your manager has to ask what’s going on, you’re not communicating enough.
Not to say this work is necessarily not worth the cost, but it absolutely costs something.
Sometimes that's all the manager wants, and the team lets them down. Sometimes the team takes hours estimating work that no one can reliably estimate, because management wants a burndown chart to feel good about, even though the last n burndown charts were wildly inaccurate.
As with any situation, issues happen at every level. What's unique to managers, though, is that they combine overwhelming power on the team with zero accountability to the team. Obviously when something goes wrong the team is going to be mad about it.
Spending on marketing is like building and maintaining a nuclear arsenal in this respect: It is to everyone's detriment (yes, everyone) but if the competition does it, you must also.
Nobody is saying that the functions of these roles aren't necessary, they're saying that the people who live in these roles are overall bad, don't know how to effectively execute these tasks and present an aura of superiority over the technical roles when they're providing very little value at all.
These articles are undoubtedly written by people who have never been managers themselves, and frankly just don’t have any idea what the job is for. Which is fine - everyone starts that way. But to then assume the job is useless is classic sign of imaturity.
> Nobody is saying that the functions of these roles aren't necessary
That’s literally the premise of the article posted.
I'm sure you're aware of what they say: Its difficult to get someone to understand something when their paycheck depends on it. Do you have the self-awareness to recognize that this, alone, is a huge reason why managers immediately come to the defense of their position?
I've been in the industry for 20 years now. I've worked with good EMs; I've worked with bad EMs; I've been an EM (less often). That spectrum isn't even relevant to the underlying assertion that the core definition of the role is invalid. Its extremely rare to work with an EM whose entire scope of responsibilities wouldn't be more productively served by a peer PM. The only advantage to an EM title is in the organizational power structure, which is far too often leveraged to abuse their reports by trading quality output and mentorship for more working hours, burnout, and Jira graphs.
One of the major issues I have with the article is they lean heavily on the "creative work can't be managed like manufacturing widgets" train of thought. It feels to me that they define developers as artists when the article is about engineering. I think those are different roles are different. Even though both require a certain amount of creativity/subjectivity, it's a mistake IMO to conflate the two.
That’s not irony. That’s someone with no domain expertise saying something and then someone with domain expertise refuting it.
If I, a casual baseball fan, made a claim about umpires being useless in baseball and then an umpire came in to explain otherwise, that would not be irony.
I’m also not an EM, though I have been one in the past.
I don’t understand your point about PMs. You’re saying that the responsibilities of an EM should be that of a PM. So you’re just arguing for a name change? Or something else?
It is always your responsibility to advocate for yourself, your career, and your work.
If you are an engineer you should view your manager as a marginal value add only. Some managers add more value to your career than others, for sure, but it's still marginal relative to the effect that YOU have on your career. If you find yourself on a team with a truly bad manager who is having a negative affect on your career, get out...but this is truly a rare occurrence in my experience.
The average engineering manager may be a net benefit, or a net detriment. The rest we can extrapolate from there.
There are definitely a wide range of non-engineering skills required to produce good software but that doesn't automatically justify the existence of a dedicated engineering manager role in most or even any teams.
I do understand what OP said somewhat though. Mostly due to Peter's principle, thus, managers are not "about average" but "mostly incompetent". It is easier to promote people managers than ICs in growing organization, hence it is easier to play out Peter's principle in real life for people managers.
Surely you meant to communicate something different here and not a mathematical impossibility.
Do you mean most fall within 1 standard deviation of the average? That still means half the managers you encounter would be below the average quality assuming a normal distribution (which it’s clearly not - skills tend to follow the power law).
Most engineers are actually decidedly quite bad at software development itself for what it’s worth. The equivalent of a first level line manager is typically a first level engineer (not always but usually). Good managers get promoted to manage managers / multiple teams which dilutes their qualities (they now have to train other managers to be good). So think about whether you’d put a very junior engineer in charge of a project and what kind of results that might have, especially since if the manager is actually good they’ll be promoted away whereas an IC who’s hood is simply given more responsibility on the project but the role doesn’t change too much.
That is not how averages work. It depends on the distribution.
Anecdotally, I've met a lot more people who don't want to manage (again) than people who don't want to be ICs. I think that indicates a different "spectrum" of humanity.
I think it doesn't help that you'll find about 1 manager for 8-10 engineers. The same spectrum, but lower raw numbers, might give an exaggerated impression of mediocrity.
> frankly just don’t have any idea what the job is for
We know what the job is for, but maybe there's no actual value there.
Do doctors have managers? Do lawyers have managers? No, they might report to some administrative body, but they mostly work on contract or in teams. The 'communicate with customers' nonsense is delegated to lower-paid clerical staff, not 'managers.'
What engineers need is low-level clerical people to handle the day to day comms with others outside the org. We don't need managers, unskilled labor needs managers.
I will concede this though. When that bad person is a manager, EVERYONE on the team can suffer, the entire culture can suffer. When that person is just a team member, others on the team can usually figure out how to just avoid that person so that the problem can be compartmentalized. Better still, a good manager will not tolerate the bullshit because they know that it can poison the team if not handled properly. When that person is a manager, there's no avoiding the problem and team policies and culture will be poisoned accordingly so that the best people leave and nothing good is left.
It wouldn't surprise me to learn that a large number of users in this community have actually worked in a bubble of tech outside the norm where most devs were actually pretty solid overall. A developer who is truly incompetent (not just mediocre) would have a very hard time even getting hired at a FAANG or similar, let alone stick around very long.
The "old" saying (well, I've heard it said a few times) is: bad software (probably) won't kill your business. There's a litany of examples to this effect. However, bad management will, with increasingly leveraged effects the further that bad management is from the line worker.
A very large number of people really are saying that these roles aren't necessary. Larry Page famously fired all of the managers at Google at one point in the past. I regularly see people say that zero management at all would be preferable, both for startups and megacorps. Heck, the article itself is about this very idea.
But if everyone projects their worst fear on the role, then we’re all stuck making assumptions, being pessimistic, and missing the good people because we’re blinded by our stuck ideas incorrectly generalizing individual people to their roles. If we can’t stop to see the good things and what does work, then functioning together is difficult and it drags down the team.
What value do you see in good management, and what makes a good manager in your experience?
I don't malign the profession because I've had bad experiences. Engineers should be smart enough to know that experiencing a bad manager, or even a few bad managers doesn't mean that " people who live in these roles are overall bad, don't know how to effectively execute these tasks and present an aura of superiority over the technical roles when they're providing very little value at all."
That's just being irrational and salty.
A lot of the time, what makes someone good or terrible in their role is maturity and professionalism.
I had a relatively bad (inexperienced and overwhelmed would be truer) manager once when I was still doing engineering years ago. I know he was bad because I had to do a significant part of his job for him notably regarding smoothing interpersonal issues in the team and cross-team communication in the org. I don’t see most people here complaining they have to do too much management.
The irony is that I've heard the same said about engineers. It's easy to take the cynical point of view, but probably not wise or accurate. Like the OP, in my experience the people making those types of claims tend to have an overly simplistic view of the problem.
This is quite hyperbolical. A person can have a life experience of "mostly bad manager", but that does not mean "most managers are bad" or that "most people have experienced bad management".
I've been 16 years as a professional software engineer. I would not describe anyone to whom I was a direct report as "bad manager". Quite contrary, I've been quite happy with most of them. This does not mean a life without conflict or misunderstanding, of course.
Statistically, bad management is of course a non-neglible problem, but the above makes the situation sound hopelessly pathological.
FWIW, all my engineering managers have been great.
> Oh please, there's a reason why those comments exist - because more terrible managers exist than those "good ones"
I guess that's just your experience? Just because you've had a few bad apples doesn't mean all engineering managers are terrible.
> present an aura of superiority
Sounds like you're just projecting your experience onto other folks.
Well product or sales probably don't like stuffing the product with ads, they only put it in there because you like collecting a paycheck every month.
I don't think your view is anywhere near as common as you think it is, but maybe in your immediate peer group there's some self-selecting cause for believing so.
I cannot do sales, I do not want to do sales, but if I want a job someone needs to do sales. To me sales looks like an awful job, but some people really get a kick out of it and I'm glad they do because otherwise I would earn a lot less than I do.
We love to think that "if we build it they will come" but the reality is very different, and most of us work for companies that would struggle to grow without some form of sales or marketing operation, no matter how good the product might be.
You meet new people. They tell you about their problems. You explain to them how your product can alleviate them. You work on finding a common position regarding what you could bring at which price. When it works, you get a big cheque. It’s pretty fun really.
As for what I think about managers: unsure, I have been a manager, worked under many managers (most of them bad) but I am still not sure if mangers should exist or be replaced with another role.
I was terrible at it. Forced to actually contact customers I had no clue what to do. I had no idea how to price things. I communicated terribly and drove away initial customers.
I learned a healthy respect of other positions in a company, because when I tried them I had to accept they were actually hard.
And sorry, unlike a program you’re writing, you don’t have any say in how the logic works (or doesn’t). The rules are set and you’re in the system. You might be able to find some variations in other companies.
As you grow, you do realize that software engineering is a piece in the overall puzzle and you mellow down and start to learn the interfaces with other functions. Even then your superiority bias won't away but will mellow down for sure. This is simply because your success as a mid-senior engineer is no longer a function of just your engineering skills. Its a function of how well you can sell your ideas, how you can articulate your messaging so that every other function can work with you, how do you get buy-in from competing parties etc. But again, engineers will brush these aside as 'politics' unrelated to software engineering :)
Year after year after year I learned again and again that there's something truly toxic about middle-management and up. It's like the higher you go, the worse the air gets, and your brain starts to get clouded and fuzzy. Technical people stay in their roles for decades and get better and better over time; management plays musical chairs where they change roles every 2 or 3 years. The new role has almost nothing to do with their old role. If you saw a whole group of people randomly switch every couple years between being an Aerospace Engineer, then a Software Engineer, then an Environmental Engineer, then a Structural Engineer, you'd rightly go: wow, all these engineering jobs must be super easy! They just throw anybody into those roles. They don't take any time to learn, etc. etc. So why, when people randomly switch every couple years between product manager, director of operations, financial director, project manager, sales manager, director of internal innovation, director of digital growth, director of New-Techy-Buzzword -- why do you not conclude the same thing? All those jobs are stupid and worthless, clearly, because they come and go with the wind, and anyone in the mid-to-upper-management sphere can take on any of those roles. Clearly they require no training. Clearly they are not hard. Having an MBA degree does not qualify you to do all of those roles, unless those roles have absolutely nothing to them. Note that I intentionally excluded anything having to do with "legal" in there, because that's an actual job that takes an actual expert.
My long-winded point is that I did the exact opposite of what you claim. I used to believe that software engineering is a piece in the overall puzzle and that all these other functions are an important part. But I learned, time and time and time again, that the primary driving force in corporate America is the Principal Agent Problem and that all these roles are just titles to be shuffled around among those in the Business Caste for their own personal benefit. Entire companies are nothing more than pawns in the game these guys (and it is mostly men) are playing with each other, jockying for the most impressive-sounding titles, extracting as much money as they can from the public sector into their own pockets. If they're actually doing their job well, they're losing at the game. You have to switch jobs every couple years to keep up.
The last 2 paragraphs of your comment can be applied to your behavior actually.
Your comment added nothing because it was responding to a straw man rather than the article itself.
Imo, the real problem is that engineering work is disproportionately difficult compared to management and yet, management gets recognition, visibility and power to control engineer lives. This happens in every step. Engineering interviews are insanely harder than management, engineering promos are opaque and need grinding for years as opposed to management promos in growing companies and these days, senior engineers have to manage politics as well. Engineering managers are not useful in any way but yet, get higher compensation and recognition. Why?
The only manager that engineers like are those who have previously been strong engineers themselves. It's the earned respect that lets people be ok with bosses. Not titles themselves. Certainly not people management or glorified assistants managing spreadsheets for upper levels.
Perhaps this is why there are so many bad examples. The job is nearly impossible to do exceptionally well.
Therefore technical people develop a special sort of humility, reminded everyday of their errors by the law of physics, that bad managers who fail forward never do.
I mean, structural engineers are fighting physics. Software engineers, generally, are fighting information theory. FWLIW, I spent 15 years as a (quite successful) programmer with a lot of bullshittery going on about what code works. Have you never shipped buggy code and played it down b/c of time constraints or you were just tired or not motivated or realized this bit doesn't actually need to be perfect?
That's actually why I switched to being a people manager - I was a mediocre programmer that people thought was exceptional because I was good at the b.s. I find people management much more difficult to do well, and much more rewarding when growing junior eng into senior eng compared to shipping a bit of code.
Great EMs have that experience; and it makes their/your job way harder because now you understand, at a deep enough level, what the people you manage are going through. When product reqs come across the desk of an IC-turned-EM, they can feel that gut punch immediately: "fuck, this is going to be so hard, that system is so legacy, and Sarah is super overloaded right now because she's the only one with any experience on the message bus transformer converter ingester"
Management track EMs actually do have it easier, because they get to think in the discrete world of tickets and human resources.
At a high enough level in any company: senior leadership needs to think about the world as perfectly discrete like that, because there's so much other bullshit going on that worrying about the specifics of the message bus transformer converter ingester would drive them off a cliff. But EMs aren't that. But many, many EMs think like that, and a big part is the incentive structure of their career path; their boss thinks like that, and their boss's boss thinks like that, so if I want to have my boss's boss role one day I need to think like that.
The strawman side of what I'm arguing is: "Well, you're just describing a bad EM". But the whole point is that that's quickly becoming the average in the industry, and that average is starting to define the role. Career-track management who get promotions, then write the hiring reqs for their replacements, and every other EM below them, combined with a massive shortage of engineering talent meaning companies need to define a different bar for their EM hiring reqs anyway.
I believe that the job is nearly impossible to do well. Which leads a lot of people to suspect that the role of Engineering managers is badly defined. Which leads to all the complaints above. Nobody is happy with the current org structure.
I think it's fair so say that gross incompetence is easier to recognize in a programmer than a manager, especially to the untrained eye. It's also true that a well-functioning team may be easy to run and the manager shouldn't have to do much except not fuck it up.
But at any kind of scale, all problems are people problems, and there are never ending systematic dysfunctions and organizational problems. Everyone can be making a valid claim to doing their job, yet the output is nowhere near what it could be. These types of problems can be difficult to diagnose and extremely difficult to unsolvable at the high end. One must be technical enough to understand the details, able to zoom out and understand how costs of various paths interact with UX, operations, security and other concerns, and then say the right things in the right venues to nudge people in the right direction while also maintaining the morale and agency of all the ICs who do the actual work.
It is brutally difficult, and the reason most EMs are bad is not out of malice or sociopathic tendencies (though I will say the emotional toll is high for non-sociopaths which is probably one reason they are disproportionately represented in management and executive leadership).
Can they? Certainly. Do they? Well, not as often as you might like.
I used to work for a government contractor who had what I liked to think of as a "butts in seats" strategy. The contractor got paid by taking something like 50% off the top of what the customer paid for the employees (back when I was a contractor in industry, that was more like 15% but that is neither here nor there). The "complexity and nuance" that goes into running that business for a maximal profit involves keeping the direct customers happy---and they're managers, not users---while having as many employees as possible. You need to ride the line between leaving money on the table and having so much broken that higher levels of the customer start to get upset. Laying down narratives is a very important part of that process.
This isn't, however, limited to government contracting. I've ridden quite a few projects into the ground in industry because the goals and incentives of Product Managers, Program Managers, etc., were not aligned with the goal of a successful project simply because there are many ways to be a successful manager and a track record of successful products is not the easiest.
Yes, they were all smart people. Many were even likable, skilled leaders. But if your goal as an engineer is to be part of a successful product and not to be a well-rewarded part of a successful manager's organization, then you will not be happy. Is that what you mean by "professional immaturity"?
It seems really unfair to a developer, who thinks "if I screw up the entire company halts, if you screw up I have to work harder". And so the developer can't shake the feeling that management is bullshit.
There is way-way more to it than the title. Nowhere did the author reduce the contribution of non-engineering roles.
An excellent read!
When that happens, other people have to be involved to take over.
There are real requirements to communicate with other parts of the business, customers, coordinate who is doing what and triage what is needed when.
So generally, I agree with you that the mindset isn’t a great one.
At the same time, there are methodologies that aim to alleviate exactly this problem by ensuring engineers directly control more than they often do.
Scaled Agile (SAFe) is my favorite because of two core tenets.
1. There are 2 backlogs, one managed by product/business and one managed by dev/ops/arch. Going into planning, capacity allocations are given to each (usually 70-30 product dev). Priority among those backlogs is entirely handled by the group managing it.
2. PI Planning where backlog items are presented from each group and dev is responsible for planning out those priorities over the next 8-12 weeks in the manner that they believe is best. Everybody who could potentially answer questions that devs have is present with their schedules cleared to streamline the decision making process. Plans are discussed with management, risks assessed and finally agreed on.
I love this process. It gets everybody on the same page as far as who is doing what, when and why. It reduces friction and lets devs focus for 2-3 months at a time without a directional shift.
Planning from product is focused on the next PI instead of the constant “we have to drop everything and work on X now!” situations that so often happen.
I wish more orgs would adopt it. I hear so often about devs stuck in orgs claiming to do so that aren’t actually doing any of the things that make it great and it’s frustrating.
I love how you also snuck Scrum master in there, a role no one needs. Project managers are also often shoved into places they’re not needed (I’ve generally found them to be a net negative vs having the manager be responsible for it).
Meanwhile there are numerous process and personnel challenges that go completely ignored, because these Engineering Managers think their primary responsibility is as some kind of overseer preventing employees from doing their jobs wrong.
I would love if software companies started hiring dedicated, trained Managers. But that doesn’t seem like a thing they do. Instead they just promote an Engineer to Engineering Manager and hope for the best.
During my time writing software professionally I've had good, bad, and neutral managers.
I've found most of my good managers at companies that produce software as a product. These managers were technically trained and rose to their management roles through working as engineers at other companies. In two cases these managers were actually the CTO.
Most of my bad managers have been at companies that rely on software to facilitate their business, but do not consider software to be their business. These managers knew little about software and our teams were usually bloated by non-technical roles and often unproductive. Every idea ultimately had to be passed through engineers for validation / refinement and engineering became a very constrained resource.
Neutral management is where I would place most of my managers. They don't really aid in or detract from my productivity. They're there and doing things (even if those things are not always visible to me). They demonstrate enough value to dispell the feelings of: "If you weren't here then we could hire another engineer to actually work on this problem".
That said, you are 100% correct that if I didn't think about these things at all then I'd be much happier. After all, happiness is reality minus expectation.
Mind you - to "them", these "dreaded MBAs", the development organization is a problem, often regarded as cost, and development is done by... developers. Sometimes the developers is the actual problem and they have gradually sunk the software in to a unmaintainable swamp of crappy code and debt - but this is a competency and hiring problem. It will not be solved by any framework or project manager. But you need the competency in your leadership to understand what's what and this is missing from pretty much any large org I've set foot in. The high functioning teams is these settings are more a stoke of luck, and they often have to utilize guerrilla tactics to keep delivering value.
I've seen my fair share of global CIO's talking us through cloud and blockchain, never have to actually deliver and move on to the next company or fancy role.
I've seen CIO/CTO not trusting developers and believing no-code and citizen development to be the end all. Guess what - more unmaintainable crazy stuff
I've seen large organizations falling in to the "one system" trap on all levels, even trickling down to the software teams - a dedicated 8 person jira team for the whole org! What could possibly go wrong.
I've also witnessed amazing autonomous development teams that move at amazing speed with quality. In these settings you have management that understands the process of supporting a business with valuable code.
Most of the time IMO it's the business themselves that cause a lot of the problems facing developers by not understanding that it's they who own the processes getting digitized.
They buy software from vendors, staff up a project team to integrate, fire and forget. This "fire and forget" project mentality is what accumulates in a shitty org, and shitty orgs start from the top.
If you haven't read "Turn the ship around" it embodies all of this. This condensed video is really worth a look:
Having these ideas in mind, particularly backed up by some good background as is present here - some discussion on knowledge work, Peter Drucker quotes - is context orgs ought to try to be aware of, prevent from happening.
Sad to see such a well written well explained article reduced to "grow out of their mindset" antagonism. There's not any argumentation in this rebuttal, just personal badmouthing & berating. The conflict described is real, but apparently people who feel tensions & dissonance of it all are all just "immature".
Yes we know management metrics can't predict every end date, we know agile doesn't solve every problem, we know blockchain is a solution without a problem, we know code complete and the mythical man month are some of the best programming books.
There is no meaningful correlation between title, schooling, and/or effectiveness in management.
Everything would grind to a halt if it weren't for people who do X. Everybody else exists because X people are doing X.
For better or worse, this is what we, as an industry, have adopted and a generation has grown up not knowing any better.
All roads lead to the engineer. Bad managers can be worked around. Mindless PMs can be worked around. But if every engineer at apple suddenly stopped working there would be real economic consequences. If managers and PMs stopped working they'd be replaced by engineers who are by and large more capable at adaptation anyway. Engineers should hold all the power. In most orgs management exists to prevent what is effectively an artificial union forming among engineers. Most, I'd argue even 99%, of engineers do not want to be sitting in meetings and spending 9 hours a day building CRUD. Without the guy cracking the whip over your head you wouldn't. I wouldn't. Anyone wouldn't. The power dynamic favors managers - hence all the hate.
MBAs take a lot of flak because much like the kid engineer coming out of school who believes he's legitimately God's gift to man the MBA does the same. The difference? The MBA controls your salary, whether you keep your job, whether you get your job, the direction of the company, the marketing of the product, the features that will be worked on, the finances of the company, etc. The MBA holds legitimately all power that is not engineering. As such, by generalizing and blaming "the MBA" you are more right than wrong on who is the real problem. I believe most engineers should go back for their MBA. Not to get better at business but to understand their enemy. An entire career is boiled down to a few excel formulas.
Do you know what makes me happy? Not even knowing my manager exists. Not even knowing my PM exists. In my a little over 10 year career I can name two managers and one PM that actually made a fundamental difference to me. I'd be infinitely happier if PMs and managers were replaced by robots that let me do my job and enjoy what I do. Instead, even something as trivial as "I'd like an extra day to optimize this because I can see it having problems under load" needs to be "scoped" and "talked about", then it needs to be "put into a future sprint", then it needs to be "pointed", "tagged", "etc". This is borderline tyranny to someone who is creative. Only a spreadsheet monkey sees value in this nonsense because at the end of the day I'm right (because I built it) but I won't be given time to do it until it breaks (because the MBA), when it does I will be on pagerduty and probably hearing about it (from my manager), and then I will need to ask for time and a meeting will be called to discuss and do JIRA nonsense (by the PM). You see? As an engineer it's always my fault. Even when I'm right. Who are the people who will arrive at my desk to blame me? Them.
It's funny how these ultracapable genius engineers don't just start their own company free of these bullshit manager and PM roles and just steamroll the competition, isn't it?
1. They would rather be building cool things than doing all the other things involved in running a company. Nobody said managers are doing literally nothing, just that they're generally not very good and they really don't deserve or earn the authority they have. Their role is a support role, like a typist or a document manager or something. They should be considered basically secretaries to the engineers, so your question is "why don't the engineers all go become secretaries then?". Not to bash secretaries, but rather to give you the point that their authority comes not from what they do, but rather from the caste they were born into and/or the college they graduated from.
2. Many of them would go and start their own (likely very successful) companies, if doing so weren't a gated community open only to either (A) those who already have lots of connections and lots of family money to fall back on as a safety net if they fail, and (B) those who are willing to subsist on dry Top Ramen and live out of their car for years while they devote 100% of their time to their startup. Most of the good engineers out there have responsibilities like kids and/or mortgages, because it takes a long time to become a good engineer. And most people aren't born into the "business caste" that starts companies and becomes high-level managers at companies in the US.
3. They do. When it does happen, they become wildly successful and do completely fucking steamroll the competition, because the competition actually truly veritably is garbage run by chucklefucks who are only there because they were born into the Business Caste.
lol, okay, maybe before you have a couple $50k/yr revenue customers that rely on that legacy/tech-debt to run their business.
ask windows/office devs or linux kernel devs how often they get to fix all that tech debt.
(other people doing stuff, inducing mild amounts of accountability)
> This is borderline tyranny to someone who is creative.
> most engineers should go back for their MBA. Not to get better at business but to understand their enemy.
That's an incredibly adversarial attitude severely lacking in self-reflection and empathy. It's really tough to work with people wound so tight. Having been a manager, if I were yours, I'd be working on helping you grow up a bit, and if that didn't work, I'd be helping you find a different role that was more suited to your...ahem...creativity. A role far away.
I play ball at work because if I play ball I continue to make enough money where at the end of the day I don't care. I'm fully capable of reading a room and know full well the consequences of stepping out of line. Frankly a manager "helping you find empathy" strikes me as a form of indoctrination.
But thank you for the deep psychological analysis. Frankly I'm glad you're not my manager because the saccharin nature of your psuedo intellectual post would probably have me quitting anyway. It's always the "empaths" who are the first to fire the shots across the bow in the face of valid (albeit direct) criticism.
The scary part is, if you went to a selective enough school, it kinda works.
The Ivy League undergrad -> elite MBA -> management consulting -> C-suite pipeline is especially frightening.
The worst in my opinion is finance-- it's like driving using the rear view mirror. No business has ever succeeded or failed because their accounting was really tip top.
People would laugh at the idea of a good leader being thrust into a SWE role based solely on their leadership skills. Yet we often think transitioning from a SWE to a leader is just picked up. I'm asserting that they are different skillsets. Will being a good developer help lead a team of SWE? Absolutely, but that alone doesn't provide the requisite knowledge and skills to perform a manager role, but we often think that's the bulk of what's necessary.
Not so sure about that. In the beginning of my career I looked up greatly to a lot of people in these roles. The older I get the more that has faded. Truth is I can do their jobs fine, but they can’t do mine; yet they have a tendency to look down on me.
(I’m in Sweden though, and the MBAs still have a very strong grip on the Nordics. Might be a different social dynamic in the US.)
Coordination is necessary. Communication is valuable. Running a business is complex. Product managers do valuable work. Designers do valuable work. QA does valuable work. Leadership does valuable work. Engineers do valuable work.
The core of an EXTREME number of complaints about modern professional software development lies in the pervasiveness of Career Management; and EMs are an extremely attractive entrypoint for people into this kind of track, who have no experience in any of the IC-facing roles, yet now they're managing ICs.
Just go look at the vast majority of job postings for EMs. The requirements are extremely bare on actual, hard engineering experience; maybe you see the last requirement read something like "built an app in java or c++", and it never gets covered in the interviews.
You can't manage a role you haven't held, I will die on this hill. Senior leadership is fucking hard; that takes specialized skills, MBAs maybe, a little bit of crazy as well. EMs are not that, and anyone who tells you what EMs do is remotely as specialized as what the people higher up do is probably an EM. At their best, EMs should have an engineering background (or at least PM/PO; having worked with engineers as peers); they should know what it takes to build modern software systems from the inside; they should know how to mentor. At their worst, EMs who don't know any of this, but know management, spend their days as a Jira parrot and can make the lives of the people they manage miserable.
Its actually astounding to me that this is controversial, and that people don't recognize that the only reason companies change the requirements bar for EM positions is because, if they made the bar what I describe, that candidate would also make a great engineer; and companies are short engineers, not short "people who manage people". Its not out of some grand design that the best managers live on the management track. Many, many other specialized disciplines don't do what Big Tech does. The tracks for Engineers and Engineering Managers shouldn't be separate; they should be one track. But Big Tech companies don't want their engineers leaving the IC role, so they make do; and the irony of it all is all this does is lower the average quality of EMs in the org, which causes engineers to leave anyway; just to competitors.
That's why Engineering Management is bullshit. It doesn't have to be. Much of what that role does is necessary; its just overwhelmingly filled by the wrong people, who then morph the role into some bastardization of what it should be, get promoted, then write the job spec for their replacement.
[1] https://stripe.com/jobs/listing/engineering-manager-payment-...
[2] https://careers.google.com/jobs/results/77396557743170246-en...
[3] https://boards.greenhouse.io/cloudflare/jobs/3135805?gh_jid=...
Unfortunately one of the side effects of having something so important also be so complex, hard to reason about, and hard to prove causation for, is that there are a lot of empty suits attracted to an area where it's hard to disprove that they contributed, but a lot of money to be made if they can convince the right people that they did.
By definition we can't know how many are genuinely hardworking contributors, how many are parasites, and how many are somewhere in the middle (e.g. did some good work but is phoning it home these days, got lucky but misattributed their own success so now just doles out bad advice). Claiming that only one of these three groups exists is of course naive - but when running into people who have a different perspective or make different claims, it's worth keeping in mind that the subset of these groups they've run into might differ from your own.
Cow dung is common too, but not necessarily useful. Maybe for manure...
Most actual work happens despite those roles, not because of them... Or even against them - and is dilluted, sabotaged, rushed, and crapped upon all the time by the decisions of the roles above.
If you meant "software production needs this role", then no. Software production (from Xerox Parc to the Linux kernel) can be just fine without them.
If you meant "a modern corporate bureucracy needs those roles to make a product", then maybe, but that's part of the reason those enterprise products are shitty.
There are just as many useless managers as there are useless reports. The reason you see so many 'managers suck' posts is because they're in a position of authority over the talent they manage. That's all.
Management shouldn't mean authority, it should be like HR or IT, a support role.
I'm gobsmacked by the entitlement of these people.
The few who did have impact (1) were skilled engineers in their own right and were able to translate that into more management, (2) understood that managing down is much more important than managing up and (3) knew how to say "no" to upper management effectively. Those are very few and far in-between imo.
maybe the manager was busy in meetings all day in order to ensure you had zero impact on your work streams :)
the role of an EM in a large organisation is in large part to be an "enterprise abstraction layer", ensuring the people in the team(s) can work in a way that is as close as possible to what they could do in a startup/solo project
I worked for a guy like that. Sometimes technical decisions would bubble up and I'd get mad that he wouldn't resolve them but push them back down. I started to think he didn't do much of anything. Turns out he spent most of his time in higher level meetings finding out what projects were coming and ensuring we were properly staffed and projects got scheduled reasonably. He'd go into a meeting uninvited because "this project doesn't involve software" only to discover that there would be a software component to the project and make sure that was covered. Turns out once I knew what he was actually doing I'd say he was one of the more effective managers I've worked for. Things usually ran smoothly and random shit never dropped from other parts of the company unexpectedly. He did zero engineering (but he had previously), and most of what he did was unseen to us. Life was good because we lived behind an invisible shield.
The quiet enterprise professional, preventing fires and course-correcting to avoid "random shit" or missed requirements, just very non-sexy/non-glorious work, and a pretty literal example of, "if you do your job right, then no one will notice you did anything at all."
It's like good infrastructure, if you don't notice it and you can proceed through your life with minimum distractions, that means it's working as intended.
As someone who's been on all sides of this (currently an EM, been a tech lead and an individual contributor in the past), I really think there is a lack of understanding among large parts of the tech community about what engineering managers do. A good manager's first and primary responsibility is to reduce chaos for their team. In an ideal world you won't even know I'm here, because I am shielding you from all the stuff that is going on further up in the company and clearing out obstacles so that you can work without interference.
Good managers reduce chaos, bad managers create chaos. In my experience, engineering managers are a lot like all other employees: you have a few outstanding performers, a significant number of average/acceptable/mediocre managers, and some number of pretty bad ones. The difficulty comes in knowing which type you have, and often that only becomes clear when a manager leaves. Either a new EM makes things better, or things get dramatically worse because a good EM is no longer helping the team.
It's like that Futurama episode where Bender meets God: "When you do things right, people won't be sure you've done anything at all."
1) The EM looks up far more often than down.
2) The ICs miss out on collaboration which could be critically valuable to their projects, careers, and broader understanding of the business.
But that's the average! Some EMs pat themselves on the back and say "look at all these meetings y'all didn't have to attend, so you could focus and get the good work done all day" when in reality they didn't do anything remotely near the title of their role: Engineering Management. Managing the Engineers; not managing project dependencies, not managing leadership, not managing politics, but leading the people who report to them.
Great engineers swim in that complexity; and great EMs expose their team to (the relevant parts of) it.
It’s a nuanced thing. An EM should share accurate context, filter distractions, and deliver it in the most effective way for that team.
There’s also the shielding aspects in dysfunctional organizations which is a whole other thing.
The model of manager as a babysitter is, I think, what happens when an organization gets to a certain size. Once the organization gets big enough, management becomes a vehicle for bureaucratic surveillance. At that size, an organization uses managers to give a human face to bureaucratic machinations.
Wait, saying "no" to upper management _is_ managing upwards. If you have a high performing team you can damned near ignore them as long as you're paying attention to what matters to them so that you can manage up effectively and keep bullshit off their place. If you have a team that needs a lot of help then yes, you have to focus on managing "down" -- but that's the less common scenario in my experience.
I suspect you're defining "managing up" as "brown-nosing" -- which is just managing up ineffectively. Being good at managing up and out is honestly the bulk of the job at most organizations; engineers can usually just do their thing.
It’s sometimes a bullshit management job. Like working for the benefit of engineers on your team who view your role as bullshit. And dealing with negotiating between marketing, sales, founders, and being the voice for engineering. There’s a lot of bullshit there some times.
I appreciate good managers. It’s a tough job. You don’t always know the right thing to say but when you get it wrong people really make you pay for it. It takes resolve and pragmatism to step in front and take the brunt of responsibility for the teams output and shining the light of success on your team and away from yourself.
- You're managing fewer than four reports.
- You were previously a low-performing engineer & you find it easier to hide your lack of technical competency in the management track.
- You spend a lot of your time in broadly-attended meetings about topics on which you are not a direct decision-maker.
It's easier to coast as a bullshit EM than as a bullshit engineer because your impact is one step removed. When an engineer ships a bug-ridden mess, they get pinged by QA/product/whoever. When a manager hires an engineer who ships bug-ridden messes, the manager rarely faces consequences. When a manager lacks the backbone to put folks dragging down a team on a PIP, they're rarely called on it. When a manager lacks the backbone to advocate for their best engineers, those engineers leave and the EM gets to interpret for their boss "why" the engineer left. I doubt many say, "because I failed to advocate for their career" or "because they were sick of me misinterpreting the technical situation my team is in."
So engineering management is an attractive field for engineers who are technically incompetent, and by definition those folks are poorly equipped to manage technical teams.
Why don’t we see companies that “simply don’t” add this cruft, and accordingly sail off into orbit under propulsion of their own excellence?
They're afraid of trying anything different than the status quo and don't want to risk it. "Nobody ever got fired for buying IBM", right? Same stuff, different context. Nobody ever got fired for copying Google, Spotify, Twitter, <insert hyped company name here>.
This is the unfortunate truth IMO. Organizations rather get the known "cruft" instead of taking a chance to innovate.
Companies, especially early on, can't afford to innovate on many areas and this is a bet they simply don't want to make.
Now, ask developers if they were less or more efficient when their managers left for a month or more. Every single one I've ever asked was way more productive, happy and surprisingly even upper management was happier because status updates had one less layer of telephone.
The reason we don't do that, is because we haven't gotten past being in a famine, zero sum mentality where hoarding power/resources is seen as obviously well and good.
Its REALLY important to note the macroeconomics of our current climate. Tech is so, so, so rich right now. There's so much money flowing around that we just brute force our way through every problem. Cruft doesn't matter. Too crufty? Hire someone else to do that cruft. Split that cruft off into another team, that's growth and now my title is Director. Woah, don't touch that cruft, that's my cruft and I'm a Director, I'll die on my paycheck to defend that cruft.
Conway's Law: organizations design systems that mirror their own communication structure.
A Correlate to Conway's Law: in capitalist systems, an organization's communication structure is a mirror of its macroeconomic climate. Rich economic climates breed excess.
I'd posit that if you normalized the Y axis on the graphs "amount of time employees at tech companies spend on paperwork" and "the US M2 money supply", they'd correlate pretty well over the past thirty years. If you take the position that's a coincidence, or that the correlation doesn't imply causation in this case... just wait to see what happens to all that previously critical paperwork, pushed by previously critical people in indispensable roles, when the latter graph flatlines or inverts.
Basically I've got skin in the game over the entire product, not just my silo.
My advice to anyone feeling the pains of that article ... work for smaller companies. The 'operational overhead' of smaller companies is much much smaller.
Let me add, ive spent a lot of time thinking about what advice to give my children about their first job in real world. As someone in management, here is my advice to them:
Don't choose your first job based on salary, title, or company prestige. All of those can and will come with time. Choose your first job based on who you will be reporting to and what type of person they are. Will they understand you? Will you understand them? Will they support you? Can you trust them?
The spirit of this advice is that if you have a bad boss, most likely your day, each day, most likely will suck. Sure, twice a month your check will look nice, or maybe your business card will have impressive branding on it, but will you be happy? My wife gave me an article once, it was something like "you spend 1/3 of your waking life at work". Don't hate 1/3 of your waking life. Enjoy it. I believe the best way to enjoy each and every day of work is to have a boss that gets you, supports you, and empowers you.
An experienced engineering manager anticipates the secondary effects of every change, and weighs tradeoffs between a multitude of approaches in solving problems. By continuously modeling software systems, the organization they work for, and customer behavior, the most effective managers readjust their approach to problems daily.
This is a great example of what good engineering managers do because after a certain size of a project, one person can't build while also keeping all the downstream externalities in their head.
But wait! Microservices and self documenting APIs will fix all this right?
Nope - people and process management is as important here as it is on a car assembly line.
To adulterate a quote from James Madison:
If [programmers] were [perfect robots], no [management] would be necessary.
I have worked in an automotive assembly plant, I have read about the rise of scientific management and later the Toyota Production System. In a physical system, you have to respect the production environment and the product. If there is an oil leak or fire hazard you must address that if you want to continue producing.
In knowledge work, the factory is inside someone's mind. They have to be ready, willing, and able to manage their own mind. They have to bring that to the job. It is also imperative that management methods do not damage that production environment. Fear, shame, frustration, and anxiety can all shut down that factory. Some of those emotions can be used to force production, but that is like running a motor over it's torque and power spec - you can do it for a while but you're damaging components that you can't see and it will have to be replaced or rebuilt before it's stated service life. Also we're talking about humans not machines. Humans can choose to leave.
Managers used to be smarter than their subordinates, so they could steer the work.
With knowledge work, as soon as you turn manager, you're away from the knowledge. That means all of a sudden your subordinates are smarter than you.
So where does that leave the manager? Well, as the article also kind of concludes, the manager is now at the service of the team. Big difference!
Instead of coordinating and guiding the work, the manager now has to make sure the path is clear for the team to do their job. The manager deals with all the bullshit so the team doesn't have to.
This also means that it will be hard for you to notice a great manager, but easy to notice a bad one.
This is incorrect in a subtle but important way: Being closer to "the knowledge" as you put it, doesn't change how smart you are, it changes how well informed/up to date you are. That being said, it's always better to hire people smarter than you if you can :)
Similarly, being closer to "the knowledge" tends to make you poorly informed about other important aspects of your business, almost unavoidably. This information is often critical to actual success, more than IC's/engineers often realize.
To some degree this is zero sum, and reflects where you spend your time. Done well, a good EM will be an interface between the goals (from above) and capabilities (from below) and keeping them aligned.
This: > it will be hard for you to notice a great manager, but easy to notice a bad one.
is very true. The corollary is that as an IC you often perform much better in a high functioning team with a good or great manager, but it's easy/comfortable to believe this is mostly yourself.
But the question is here the same: is the manager most informed to take the decisions? I would expect the functional analyst to know most about the domain and what is required, and the sales or business development people about how to extract money out of the customer. In all cases, I think the experts of all fields are at the lowest level.
> Done well, a good EM will be an interface between the goals (from above) and capabilities (from below) and keeping them aligned.
I agree that the vision needs to come from the top downwards. That means "where do we want to go", but the "how will we do this", is in my opinion all the people at the lowest levels.
As for capabilities, a great manager will present what needs to be done to the team, and the team will decide what effort will be required.
Often, yes. Or at least knows who is, and how to put it to them.
Put another way, the domain experts are usually the best people to describe the tradeoffs but often don't have a sufficiently broad view to make the decisions. Obviously this isn't universal - one key skill in engineering management is empowering your team to make all the decisions they can most usefully make, and facilitating their input to the ones they can't.
> As for capabilities, a great manager will present what needs to be done to the team, and the team will decide what effort will be required.
I think this really misses the point. With a great manager, a team will fire on all cylinders; rarely is this true without at least a good one (exceptions made for small, experienced teams in certain circumstances). You are describing more of a project manager "hat", which sometimes is worn by an engineering manager, but need not be.
Software development at some companies often seems like that. The person in the position of leadership is instead led (at the expense of productivity) by the people they're meant to lead.
Of course this would never be allowed in a field where there are serious non-reversible consequences of negligence stemming from a lack of knowledge.
I feel like this is largely a phenomenon local to software development.
For software development, those things should be in the hands of the developers and architects.
People are very, very clearly reacting to the headline and making the same comments we've seen 1000 times before.
It's a shame since the article itself is interesting and could stimulate actual novel conversation, but the chance for that is gone.
- protect the team from bullshit corporate politics / micromanagement (pad the team estimates with a buffer / push back on management unrealistic expectations)
- help team member fulfill their potential and grow outside their comfort zone
- give the team credit when credit is due (help shy people be seen etc)
- promote good people (and fire toxic / bad performers that drag the team down)
- help the team prioritize / prevent going into rabbit holes
- help the team get to decisions faster
- hire good people
- provide training
- provide budget / enable / arrange fun activities (offsite / hackathons)
- ensure inclusive environment (give room for introverts to speak their mind in a non awkward way / make sure not only extroverts are speaking in meetings by splitting to smaller groups / doing activities that are async e.g. writing ideas anonymously via virtual post it notes etc)
All of this can be done by a good peer or mentor, doesn't have to be a manager, but it sure helps if your manager is also a mentor.
I've worked at companies with no managers and it's worked fine. At one place I worked we basically just had a sales teams, an engineering team and a CEO. There were no managers. The sales people raised tickets for bugs and requests for features that would make their lives easier, these would then get a glance over and approval by either a lead dev or the CEO and someone would pick up the ticket. As engineers we would also raise tickets when we identified areas of the system we could improve.
This worked really well and it was an extremely efficient way to work for us but what we gained in efficiency we lacked in accountability and scalability. But when you're a company with less than 50 employees neither matters too much.
For large enterprises and public companies there's clearly far more value in having managers and various other non-engineers roles. For one as an engineer I literally don't want to be responsible for any big non-technical decisions in large companies which provide critical products and services. But in larger companies there's just far more value in having a clear hierarchy of accountability.
That said, I do think a lot of small companies think they need managers when they don't. And I think the reason they believe they need these roles is just because that's how it's done in the larger corps.
To some extent this might be a matter of personal preferences too. I tend to like working independently and quite like being given fuzzy requirements. I know I've worked with some devs who prefer working with well defined requirements and get uncomfortable when making decisions that haven't been formally approved. Depending on your engineers and culture the value of managers might vary.
A thing I teach to younger folks: no one likes making decisions, but that's where money comes from.
I agree with this take, but with a whopping great caveat - the 'team' is far bigger than the manager's direct reports. Once you accept that the team includes people like product leads, QA, and the leadership team then you start to understand why engineering management is hard. You're trying to get the best work out of your dev team of course, but you're also wrangling a whole bunch of things that intentionally make the dev team's life more difficult, whether that's discussions about the broad direction for the team to go in relative to the wider scope of the business, or the minute little nitpicky bugs that QA won't let slide.
There are two distinct roles in an engineering organization: staffing, process and engineering resources (indirect), and product/project development and delivery (direct).
Relegating staffing, process and resource decisions to non-engineers (e.g. HR) is not the best solution. It takes experience and expertise to build a good staff and engineering culture. That is the job of engineering managers.
Do engineering managers act as mentors? Sure, and they can also provide technical input. But that’s just one of their many responsibilities.
Roughly 30 years ago, this same discussion was happening around something called a “matrix organization.” It was the same confusion of responsibilities under a different name.
Everything works fine when everyone stays in their lane (managers, I mean) and pushes in the same direction. It takes coordination, and it’s not something that people can reinvent on a daily basis.
In short: Make a plan for your organization, write it down, show it to everyone (over and over again like beating a drum) and then stick with it. For those who don’t comply, send them packing.
what's crazy to me are all the comments here that echo what the article is saying where managers seem to be some sort of rulers and be all in an oganization, which would totally suck and i'm glad i don't work somewhere like that.
Managers however become essential when this well oiled machine is thrown off by a sudden expansion of the team or when there's a chronic uncertainty about the work that's going to happen next month. Then you need whose who are good at navigating this chaos through networking, politics etc., to get the work done as well as making sure the team survives should the axe fall.
Thus, you cannot have effective nontechnical managers for products intended for technical people (e.g. IDEs, sysadmin tools, etc.), but technical managers for products intended for general audiences (e.g. email, office applications, etc.) are perfectly fine (and perhaps even better, since they provide a much needed nontechnical perspective to highly technical developers).
But anyway my point was that he does a bad job at communicating what he does for us.
The few I have had who were not capable of that were really ineffective. They didnt know how to handle top performers. They didnt know how to help low performers. They become managers of micro bits of information that they collected and passed up to their manager so despite the results of their team they can say they were doing xyz.
It was hell. I always found they gave useless advice too. Have a work problem that isnt some type of personal problem? Well they cant help because they dont know/understand what you do or how to help.
Read about Admiral Rickover. He built the first practical nuclear submarine in the world, for the US navy, in record time of 3 years. He cleared bureaucratic hurdles, played the politics when needed, kept tight control, delved deep into the technicalities of the project, recruited and trained a large number of people into the program, and ultimately made the project successful.
Dig deeper into any other large scale projects, you'll find great engineering management. The Manhattan project is another example (It should be categorised mostly under engineering management & not scientific management, according to some of the members in the team).
I'd also say military management is significantly different than civilian. If my manager tells me to jump I'm not going to say how high. I'm going to say why are you asking me to move its early and i havnt had coffee yet.
Secondly, about burnout and turnover. Let's discuss from an empirical standpoint. The number one proximal cause of turnover is lack of "commitment". There are longitudinal empircal studies which demonstrate this. Job satisfaction is important as well; however commitment dominates every other factor.
Hence, it is important for managers to generate commitment, one way or another. I believe from these aspects, Rickover truly understood engineers and technical folks... In fact, he went against the US military books, and emphasised Individual initiative and judgement, regardless of what the rulebooks said. In a way, Rickover was able to work around the navy rules to create sufficient commitment to get complicated jobs done.
"Errors are not in the art but in the artificer"
According to this tweet: - Startups with managers 33% more likely to develop product innovations
- Firing a bad manager and replacing them with a top manager drops costs 5%, since you reduce turnover.
- In a car factory, replacing a bad manager with a top manager diminishes the hours needed to build a car by 30%.
- In the game industry - good managers means +22% in revenue
If the upside of managers is only 33%, they're probably not worth the added complexity/friction/expense !
(it's worse in a company as it's the shareholders who earn +30%, not you)
I much prefer "clear the runway".
The great teams I've worked on, shared context oozes from the team and managers often don't know what that shared context is, but they protect it.
Once one studies complexity science, it becomes less "bullshit" and more "navigating complexity" and that's how i approach it.
You're gonna have a bad time in engineering if you think everything not engineering is BS.
You get to empower people to be better versions of themselves everyday. What other job allows you to do that?
The reality however is that most EM jobs are in fact bullshit jobs. They usually have people who are simply managers/operators, not often leaders nor coaches. To summarize a people manager's job, it's two main things:
1) Get results
2) Grow & retain your people
The challenge is that many EMs are also "assholes" so both of these goals are hard to accomplish. They fit into an asshole category in itself:
- political assholes master the art of corporate politics but do nothing but take credit for everyone else's work.
- controlling assholes micromanage to the point of strangling creativity and joy out of their team while taking credit for others creative ideas and call them their own.
- asshole assholes are mean, jealous, and insecure jerks who find ways to lie and manipulate others for their gain.
- mission-driven assholes are people who are crazy passionate and trample over how things are "done around here" to see the mission succeed.
Note: I use the term "asshole" in reference to Tony Fadell's book "Build". It's a fun way to think about it.
Most engineering teams tend to optimize for the incentive of the engineering manager, not the whole team. It's winner-take-all. The good EMs are the ones who see through this and ensure their whole team is empowered at the potential cost of their own incentive. These EMs usually win-win in the long term.
Yet anyone can start their own business, and thus prove how much better they are. Some do (even though their employees think they're incompetent), most fail.
I remember in particular a woman who worked at Microsoft in the 1990s. We knew each other through mutual friends. She heaped ridicule on how I ran my business. I'd just bite my tongue. One day she quit Microsoft, having made a fortune in MSFT stock options. She invested it all in her startup. A year passed, and she lost it all.
While I gave her a lot of points for putting her money where her mouth was, it was a brutal lesson in how difficult running a business at a profit is.
The problem is, it's often almost impossible to really know what's driving th success. And by hacking away at the problems you can endanger the unique combination of things that drives success.
Maybe a better corollary is managing surgeons? Highly technical work, highly paid, sometimes the manager won't be better than the people they manage or even be able to perform their role.
The way humans organize work is hierarchical. I view my role as manager is more servant leader, doing busy work dev stuff when I have time like patches, bugs, etc. and leaving "fun" feature/product work to the team. Make sure they have what they need to do their work (planning, filtering out nonsense, attending planning meetings, etc.) and get out of their way.
For someone in some profession 'A' at the top 5% of their peer group, everyone else seems incompetent by comparison. However, it's easy to ignore the incompetence of their own peer group. There are a few reasons for this. For example, if you're good at 'A' and someone is bad at 'A', you can more easily fill the gaps with your own knowledge and paper over that problem, which makes it seem less important. Similarly, highly skilled people tend to work in teams with other similarly skilled peers, etc...
However, when looking at random samples from profession 'B' (whatever that is), then the top-5%-at-A person will typically come across median 'B' people. That's just statistics.
So what does a top 5% at 'A' person think of median people in profession 'B', 'C', and 'D'? That they're all idiots and that their jobs are not as complex or meaningful as whatever 'A' is, of course!
Don't assume anything about what 'A' is. Could be engineering, science, finance, or whatever. The statistics is the same.
Management however gets significantly more flak than other professions, because they're forced onto employees. You don't generally get to choose your manager, you're assigned one. You don't get to fire your "superiors", even if they're clearly in the bottom 5% of the management profession and you're in the top 5% of your profession.
This is why you hear skilled engineers grumbling about bad management. So does every other skilled member of every other profession, including skilled managers, which have random managers above them!
To then declare that all engineering management is bullshit because measuring isn't a discrete number really makes me think less of the author.
I've had both good and bad managers, the good ones are able to identify dead weight, provide career growth and balance company needs against staff needs. The bad ones are yes men or never fire anyone.
Some of this may be company culture, I left my last job because firing people who didn't even show up to work was a 2 month process (amongst other culture problems).. HR only wanted discrete numbers in terms of performance, which to this articles point, is not 100% accurate.
Clearly some are able to measure, and sure its not a discrete number but its possible and currently its a skill, which is why most good managers are also engineers.
The article is not anti-management or 31337157
——
Summary Paragraph:
what is Engineering Managment’s Job?
We’ve touched upon a vague set of goals, but haven’t really settled on what an effective manager’s daily job really is.
Going back to Drucker, a manager’s job is to prepare people to perform, and to give them freedom to do so.
Creative people need psychological safety in order to perform. An effective manager provides this, along with coaching to help reports become more effective versions of themselves. This should then allow them to reap long term rewards.
An effective manager builds trust and space for their reports to execute, along with guidance for where their efforts will have the largest impact, helping them to continue growing in their career.
An effective manager cares for their team, their work, and its effect beyond the immediate organization. They are stewards first, realizing that much is beyond their control.
The ones who care are just trying to keep the bullshit at bay.
There are engineers out there who sees themselves as "idea compiler" ,which is totally fine imo. Not everyone needs to see the "big picture". But the maintenance and marketing aspect of any software project is not to be underestimated. And it is beneficial to not undermine things that one doesn't understand. You don't know what you don't know. Keeping an open mind helps you to reduce the realm of unknown.
And if you look at how engineering management happens, at really any org big enough to have even one manager of engineers, I think you'll see this stuff really is a problem. But it's a problem because, well, organizations need to find some way to scale accountability over all of their members, which, when it faces the really tricky vulnerable and weird work of engineering, runs into these problems because of how incommensurate that work is with the tools it has to understand how it's going at scale.
When EMing is a bullshit job, it's because the engineering manager is so constrained by the bureaucratic needs of the organization that she cannot actually do the work that matters between the lines. Like when you've gotta manage up so much that you cannot find the room to support an engineer grappling with a novel and uncertain task? Well, the engineer suffers, rightfully blaming engineering management -- we were responsible for supporting them, and failed to do so.
As EMs, we have to ask ourselves what we wanna do. Do we wanna fit with what the org asks of us, or do we wanna do what we're responsible for: delivering results by supporting engineers as they do the scary, vulnerable work they do? When those things diverge, I think good managers discover ways to keep the people above them happy, while delivering on their responsibilities to their team. But they often do it despite, not because of, the organization they're serving.
I'd like to say it's as easy as just always focusing on results, as when they are delivered, the rest of the org will see that you know what's up! But no. If you just do that as an EM, you'll be fired, or passed over for promotions, or have your team cut from underneath you, or be told you're a better engineer than manager and demoted. Ultimately, your job is to do both: to deliver what the people above you say they need, and to help those who report to you.
The coda to this is that the people above you are also human, and also probably realize what they're asking of you is bullshit (if you're lucky). So if you're capable of dealing as humanely and vulnerably with those above you as much as your direct reports, you'll also win them over, and you'll win the cover from them to be able to do what matters with your team.
If the answer is no, what do you think are the chances that optics are the main factor in their decision making process?
An example from personal experience: one of the downtime post-mortem action items that manager was pushing for was a complex alerting system (we already had a good amount of monitoring in place, but it didn't catch all issues).
The right action item should've been: we got extremely unlucky, but despite downtime we're not going to change anything, because likelihood of that happening again is extremely low.
It takes balls saying "this is a risk I'm willing to accept".
Consensus planning is often expensive, error prone, and glacially slow.
Seen some groups end up navel-gazing in ivory towers, as their company collapsed. ;)
> The minority of people who deliver results are drowned out by the people focusing on controlling the narratives. And for those who stick around, the operational overhead of the ineffective management only grows
There's the problem, right there.
I'll just leave it at that...
I was an engineering manager for 25 years.
I hated almost every minute of it, but I'm pretty sure that I was able to justify my existence (indeed, as I worked for a Japanese company, I had to do a weekly QCD report, and I called it my "Justify Your Existence Report").
Way too much to go into detail, but the post seems to be the usual "Post something inflammatory, and watch the clicks come in" kind of thing.
Because in our industry management has no legal accountability. Nobody dies if a feature is half-assed. If the feature sucks they just create a ticket and assign it to a dev.
And because of that tech management has always been crowded with bullshit artists who promote other bullshit artists like them (which they have to, if not they would get exposed). And the story repeats over and over again.
there is probably a struggle in many organizations with bad managers, simply because in a typical technical organization the only mobility path for very smart people is to be promoted to a manager to bump up their pay/role in their company. many of these managers have no business being responsible for managing other people.
what a good manager should be is simply a good people person. being technical is not a requirement, a good manager when asked for technical question should be cognizant enough to realize their limitations and put the direct report in touch with a technical mentor.
a good manager should manage his resources within the direction of his organization and ensure they have the tool sets, support or anything else that the direct report need to successfully complete their task.
the engineers take tasks from project/program and the manager is there to ensure that the engineer has the bandwidth to support his tasks and milestones and has all the tools to complete those tasks.
This is generally not true. Although there's no etalon SWE in Paris Chamber, it is extremely easy to measure relative performance of engineers in one team.
Saying that, the article itself is off the point and very click-baity. It's a pity to see links like that on HN's first page.
Also, if you don't have solid project management you shouldn't bother with engineering management. Hire a good PM instead. I've seen half a dozen companies make this mistake with serious consequences.
The former are worth their salt. The latter can get back to coding or go pound sand for all I care.
Even if a manager let nearly zero bullshit make it to you, from your perspective you can't always tell if that was your manager being good at that, or if your manager just received very little bullshit to deal with in the first place because their manager was good, (unless they happen to mention some of the non-sense they are blocking for you at some point or other).
I am not a developer, but I studied CS until my eyes bled, and I've been watching you guys. Seems to me you (royal, developers) have already long figured this out with 2 metrics. The first isn't how many lines of code, but the opposite; the best coders will meet programming specifications with the least lines of code, the smallest program that produces the required results. The second metric is how fast this code on a given platform produces the results, and the faster the better.
Isn't this how you all praise each other, with how clever and efficient the code is? Perhaps this doesn't scale, but it is measurable.
The fewest lines of codes is an ok metric in that it often means more maintainable. But it can mean less maintainable if it's too cute. It's a leading indicator, but you can just directly measure bug volume and time to resolve issues.
Faster code is an irrelevant distraction 90% of the time.
Sister comment mentioned DORA metrics, which I wasn't familiar with and look exactly right:
* Deployment Frequency: Refers to the frequency of successful software releases to production.
* Lead Time for Changes: Captures the time between a code change commit and its deployable state.
* Mean Time to Recovery: Measures the time between an interruption due to deployment or system failure and full recovery.
* Change Failure Rate: Indicates how often a team’s changes or hotfixes lead to failures after the code has been deployed.
Time is money. Say a piece of code is executed zillions of times by hundreds of millions of customers. What would seem like a negligible increase in results, even a few milliseconds, adds up at scale. Sparing resources translates to saving money, both in energy expenditure and in squeezing in as many transactions in a minute as possible.
Most products are not concerned with squeezing in as many transactions in a minute as possible.
All of those have their time and place. B2C codepaths used by all normal users in their most common daily usage? sure. HFT platform? sure. Pretty much anything else? You're probably spending more in dev salary than AWS savings and getting sniped by a competitor.
I've never heard of coders gushing over how fast someone got a piece of crap to market, no matter how profitable it was. Adobe development, for example, was one of the first to release their pro applications on Apple's PowerPC platform, but no one was impressed because their carbonized code was known not to be as performant as it would have been if ported natively in Cocoa. On the other hand, they also took a lot of grief for taking so long (wasn't it about 5 years?) to finally release Cocoa versions of those applications, just in time for Apple's platform switch to Intel, to be run in Apple's Classic emulator.
Engineering management is anything but a bullshit job, the impact of good leadership is very, very high. Knowing where you are going and why, having good processes, and solid communication is a step function improvement in basically every dimension of engineering team performance.
But I also understand this person’s take, because just because it’s an important and impactful job doesn’t mean YOUR engineering leader or manager is any good.
Like everything, management and leadership are skills, and most leaders have received next to no training during their entire career.
What level of leadership do you realistically expect from an untrained person? And if that isn’t what you need, what are you doing about it?
Bad management can subtract value.
Bad management often results from a misalignment of incentives.
Sorry, I'm too lazy to give details and it is a pretty complex topic.
Def not bullshit tho.
Are there any jobs which command big salaries and which companies hire for directly that are bullshit?
High impact management work isn't mentioned here. These are things like developing your people and networking. It's a lot of work to get somebody promoted, even if that person is a well-known high performer. Networking with other managers, product managers, finance, IT... building influence with other parts of the company, this pays huge dividends for your team.
High-impact managers focus their efforts around the people on their teams.
"Rather than focus on delivering results (which again is difficult(!), might be wrong, and often not easily identified by leadership), these people spend time making alliances and crafting narratives about outcomes instead of delivering. Title acquisition becomes the goal, seeking to maximize the expected organizational rewards, at the expense of direct results, all while working to minimize accountability."
Where it becomes fascinating is the 10+ year EM. They used to know what to do, but clearly don't anymore. They either accept that, and lean on their leads for technical decisions and just focus on politics, or dont accept it and thats what it can get bad fast.
Of course organizations have politics. It will always be that way unless you get rid of all the humans.
To be clear, I'm addressing this narrow aspect of management, I've had managers who helped me resolve disputes, get access to resources and opportunities I couldn't have gotten on my own, et cetera, and I see the value in that without qualification.
But OPs post / self described high impact activities pretty much fit the definition of (company) politics perfectly.
The many pertinent questions I am asking are: Is it useful or necessary, to have people doing company politics full time, what are the incentives? What does this say about an organisation? Is such (internal) politics healthy for an org, how much is it predicated on, and much does it foster internal tribalism?
Is it? Why? Sounds like a problem created by managers to me.
> Networking with other managers, product managers, finance, IT... building influence with other parts of the company, this pays huge dividends for your team.
I sincerely hope no engineering manager acts or thinks this way, or they will soon be just another MBA manager who doesn't know anything, other than how to navigate among other MBAs who also, don't know anything.
Do you not get the problem with people who don't know anything besides politics being in charge of delivering real world products and services?
We shouldn’t think too highly of ourselves.
The worst and biggest messes in software engineering that I've seen have been situations where there was not enough engineering management. And those situations were fixed by... introducing proper engineering (and product!) management.
That being said, it is perhaps possible to survive with less engineering management in a situation where everyone is behaving and performing at senior or above level. However, realistically, that is very rarely the case.
I believe that there are probably a lot of problems out there that can be fixed by "proper engineering management". The problem is that 95% of what's out there is improper engineering management, which makes everything even worse. The whole point is not that engineering management is completely unnecessary, it's that in actual reality it's a trumped-up support role with false authority and completely swamped with utter bullshit. It's not done properly; that's the whole point.
They really helped the engineers save time in coordination while not getting in the way.
I think the key was that management didn't tell us what to do -- they told us what they company as a whole wanted to accomplish and how our team fit into that puzzle, and then we figured out the details.
Even circuses have stopped that, largely, haven't they?
https://www.ribbonfarm.com/2009/10/07/the-gervais-principle-...
Engineering Management is not bullshit, though there are many bad Engineering Managers out there, even at companies (like Google, where I've been an EM for over 6 years) that strive to build and support Engineering Managers. Google itself did research into the question of, "Do Engineering Managers matter?" The answer was Yes:
Google set out to determine what makes a manager great at Google. But first, a research team tried to prove the opposite: that managers actually don’t matter, that the quality of a manager didn’t impact a team’s performance. This hypothesis was based on an early belief held by some of Google’s leaders and engineers that managers are, at best, a necessary evil, and at worst, a layer of bureaucracy.
The team defined manager quality based on two quantitative measures: manager performance ratings and manager feedback from Google’s annual employee survey. This data quickly revealed that managers did matter: teams with great managers were happier and more productive.
https://rework.withgoogle.com/guides/managers-identify-what-...
Google currently asks Engineering Managers to focus on three areas: Leading work, developing people, and building community.
What are some ways I spend my time?
1. Making sure my people are supported in their lives and careers. This can mean giving someone a task they will take a long time to finish, because it's the right thing for them (and the team) to have that person learn about that area. You are trading off project/feature delivery for personal and team growth. It can also mean helping someone find ways to still have impact when they are struggling with some aspect of their job.
2. Clarifying strategies and priorities. There are only so many things the team can do successfully, and someone needs to be the person who says No. I am also the person best situated to look outward to other groups and teams to identify areas of collaboration.
3. Making sure we are organized appropriately and effectively, and that we are following good Engineering processes. I hate unnecessary process as much as anyone -- I've always said process should be something that helps you get your job done properly and effectively, not a hoop you need to jump through in order to do your job.
As an EM (and when I worked as a developer), I have had my own share of high-quality and poor-quality managers and Directors above me. If you feel EM is bullshit, I'm sorry you've never experienced what it's like to work on a team with a good, supportive manager.
It's very fortunate for shareholders that Google has a cash-cow business, but to the article's point, once bullshit starts to expand within an organization the only true long term control on it is outside the organization ... competition and forced reform, or competition followed by death.
Promotion policies continue to evolve at Google based on internally-sourced data. They changed most recently a few months ago. It's a constant that people don't like the current process, but they also don't like it when it changes :-). But I do appreciate that Google recognizes that the perf/promo processes could be better, and then they try to make them better.
i keep thinking of basketball and setting picks...facilitating others to score.
As an individual contributor with no desire to move to management and a deficit of skill in bullshitting and manipulating, I feel this advice ("run towards accountability") is really just self-preservation. I know I can't out-maneuver all the little Machiavellis around me, but if I can be legitimately useful to some of them (my boss, for example), then hopefully I can ride the coat-tails of the skilled Machiavellis for long enough to pay off my mortgage.
In other words, no I don't "care" about the goals of the company as a whole, but I still view it as rational to try and produce real value ("results" in the context of this article).
Now that I've seen high performers deviate from their job and make mistakes in the core role, I understand that even good workers benefit from managers.
I can even say the same thing about program management.
If communication is good, you don't need these as much, but big companies lack the ability to communicate effectively.