I finally decided to just not sweat over it, do work that matches my pay in 2-3 days a week and spend the rest of my time teaching better programming skills to whoever is willing to learn and has a good attitude about it. With focus on general skills that they can take to their next job rather than internal proprietary tech. I don't care that I am not getting paid extra for that, at least it feels good to be in office.
You just have to be aware of the market you are locking yourself into. I'm well aware I could be making more as a manager, or even if I let myself be called a “senior” which often overlaps in terms of having some responsibility for people/things in a manager-y way, but I pootle along as I am anyway because I know while I'm not exactly happy ATM I'd be less so the other way and I don't think that the extra compensation would balance that.
We may fall foul of AI in the not too distant future and end up stacking shelves for Tesco, but then again a lot of those management reports and decisions look rather automatable by the same LLMs too, if not more so…
It's funny, I think I'd feel more dumb if the person beside me was crocheting half the time but still more productive than me!
And the chance of 5 random people producing something compared to the 1 you know is a huge contributor is exponentially lower too.
> Business likes predictability.
That's great. Then they should actually stick with it i.e. reward the 1 that's been contributing rather than gamble on something that might not work. It's common in sports teams, e.g. where you sell your star player and buy 5 others hoping to get more value. At the end of the day you're lucky to even get the same value.
You’ve now undoubtedly made your life and that of those around you worse basically on the basis that you need to be proven wrong about being a “5x engineer”.
Engineers hate the hand-wavey nature of labour markets almost as much as they hate any attempts to remotely objectively quantify their performance.
The everybody-compromises happy medium is defined career tracks with largely qualitative and certainly subjective measures of actual responsibility. Nowhere in that are you going to get the reassurance that you’re after: that you’re worth 5 other engineers, or whatever. That’s just not how things work, even in IC roles. The fact that you pose this as a means of measurement in my eyes speaks volumes as to where you’d land on this imagined scale.
Honestly 99% of professions out there wouldn’t get away with being as entitled as software engineers are. Which, yes, market forces and all that. But let’s not pretend that there are many if any unreasonable aspects of a typical dev job.
> spend the rest of my time teaching better programming skills
Are you an engineer or a product manager? If you’re a PM, sounds like you should switch roles. If you're an engineer, sounds like your manager/peers don’t know that. :)
But in seriousness, it sounds like there may be a mismatch somewhere.
I love programming and I'm more than happy to work with juniors and solve junior tasks. I feel like this industry puts so much pressure on people to be an engineer or an architect or something more than a person who writes a little script to fix something and moves on. Everything built today seems to have to be architected and scalable and I hate it.
I've spoken to managers in other sectors and it's the same for them too.
Speaking for my own experience, program-level and above management often doesn't put their money where their mouth is. Maintenance is chronically under-funded, well-articulated and respectful feedback is ignored with a thank-you. Hell more than once I've been forced to spend an entire day in a conference room with all the other relevant devs to do a "Root Cause Analysis" of a given recent crisis, and we took it seriously each time and came up with genuine solutions. But said solutions required more hardware, more maintenance, more stuff that no one wanted to budget for.
You work in that environment long enough, you learn to clock in and clock out. If you allow yourself to give a shit you'll just be constantly tearing your hair out. Those of us with some objective sense of professionalism usually evolve into the functional elites you mention, but I completely understand those who go the other way.
Those "functional elites" you mentioned? Usually they're working 20-50% more for 0-25% percent more pay. They're called the clueless because they've been conned into working more for less, usually under some clever guise like company being family or company values or the promise of a promotion that's always a cycle or two away. The essay then goes on to argue that losers are really just the clueless once they "get it." Losers understand the treadmill and lean into the tedium always aiming to save their time by playing dumb as needed. Sociopaths break out of the cycle by operating only with concern for power and switching up how they talk to folks based on whether they're clueless, losers or fellow sociopaths.
Sociopaths speak in powertalk -- an exchange of information on clear terms. It's usually veiled because the clueless and losers listen in and it makes them feel uncomfortable. If it weren't veiled it would probably sound like lawyer-jargon with lots of plausible deniability, conditions, arguing and explicit shared definitions.
Losers and clueless speak in their own languages based on who they're talking with. It's basically just lots of trying to feel okay... except for when it comes to losers speaking with sociopaths. There the only communication is straight talk, which is basically just direct requests of a master-slave dynamic (i.e. "do this"). The essay is well worth the read!
1. https://www.ribbonfarm.com/2009/11/11/the-gervais-principle-...
Please do not just oversimplfy a challenging problem into just "incentives".
Some people lack resilience, and they will collapse under the pressures of professional and personal life. Some people lack ambition and drive, they don't want to exceed their level of productivity no matter what you do.
It's not just a matter of incentives. If you offer the right incentives and opportunites to the wrong people, you will not get results.
The right approach here is to avoid hiring these peoples (not a perfect science). In absence of that, provide feedback expetations to provide a resaonable opportuntiy to change their behavior, then move them to other projects or terminate them.
And there are organization where non of this is possible - like government and many corporate IT.
I've found that's due to completely backwards incentives. Most people don't give a fuck because they aren't rewarded properly. If I do an excellent job and complete whatever task I'm given well ahead of schedule the only reward I get is more work. Even if I sandbag a bit and do an excellent job and complete on time, often the reward for being "better" is more responsibility or more difficult tasks (without compensation). Some folks want that, many do not. Dollars to doughnuts if your team members know that quality work on schedule will be actually rewarded then you'll find more of those members capable of producing that quality of work.
I think too many people see managing a team as "managing the people to do good work." When, in fact, managing is much more about managing the right projects/opportunities into your team's scope. I very rarely tell people what to do, because ultimately, I don't have any power to change what they do. And they'll respect me, and the project, more if they think they're making the decision instead of me.
Ultimately we are all paid to solve the problems the business needs solved, even if the solution is boring and not 'exciting' or 'cutting edge' tech (which is often). The best people finds excitement and challenge in almost any work and are self-motivated. Sure, as a manager you should try your very best to shield the team from crap work and have a healthy balance, understand their interests and find opportunities that match (even outside your team), but ultimately also work is work and is not always, or even often, possible to have super exciting bleeding edge work that fits everyone's interests. Even harder when people have a very narrow set of interests or they don't even know, they're picky, etc.
> I very rarely tell people what to do, because ultimately, I don't have any power to change what they do.
Are you a manager? you very much should be able to change what they do if you are. If project x comes along with twice the value of the current project someone is working on, you very much should be able to preempt what someone is working on. It's not ideal and we all try to avoid project churn, but it happens and needs to be handled effectively by the manager.
> And they'll respect me, and the project, more if they think they're making the decision instead of me.
I mean, delegation and ownership are fine as a mechanism to boost engagement and career growth, but you can't delegate everything (otherwise what are you doing again?). Also, what's up with the "if they think" wording here. Are they making the decision or not, are you tricking them into thinking they're making the decision?
As an uninvited specific action recommendation: I've made it a habit to look through PR's (merged and unmerged) regularly. I point out opportunities for improvement, and more importantly I call out excellent solutions. The excellence can be in the form of elegance or just hard graft finding a bug. It's a small action that's additive and doesn't interrupt work. But it does wonders at setting the tone.
One thing I've found very hard indeed is if the team you manage is surrounded by peers that "don't give a fuck if what they do works or is of merchantable quality". However, if you reinforce your culture of excellence it becomes resilient to it ... and then the tricky thing becomes avoiding arrogance within the team.
If you did this in an environment with undercapacity, with the exception of being a very well respected or lead dev, I'd eventually call you out for being a snake trying to set the tone of development with nothing better to do. I had a colleague do this and its obnoxious. Especially because
>reinforce your culture of excellence
is almost entirely subjective.
Well they are paid for the hours required. That's the problem (as some commenters have already mentioned).
It's not just the pay. It is often unfair. It might not be you but I've seen plenty of managers reward those that do a lot less compared to others. When people start to experience these things, how. do you expect them to care?
At least as a manager, it wouldn't be my direct problem. If the developers want to crunch to fix last minute issues because they didn't do it right the first time then that's their decision; but I don't want to be part of it anymore.
I look at my director and senior directors schedule in Outlook. It is 6 to 10 hours of meetings per day. They often start at 6am and might go until midnight because the company is worldwide. Meetings with people in India, China, Singapore, Israel, Europe, east and west coast US.
I get annoyed if I have more than 2 hours of a meetings a day. I get really annoyed when they interfere with my personal life outside of normal work hours.
I may be working from home at 6am or 11pm mostly to monitor jobs and check results. But I don't want to have a meeting at those times.
Even if I am paid hourly (I am) ... it's rare.
I am not sure what kind of people do that, but if it's managers, then EM/Lead is as far down that path I want to go.
When adults can be responsible they need more than one other adult to address issues and challenges with. To learn from and to teach to.
Management is a industrial and corporate construct. Its put in place to force labour intense industries to tell others what they need to do. Tell is often a monologue.
There is indeed need for adults to be around other adults with a sane understanding of responsibility. That's not management though.
Management is often a bleak blank cover to compensate for what I would call being professional.
Most often management does not work because the construct is that one (the manager) gets to rule more than the other, even though the manager might be completely wrong.
Some management must be in place otherwise things will stagnate.
Most management is a big fucking joke being mostly about looking good upwards. Politics.
More wine...
The less edgy and more academic version of this is https://en.m.wikipedia.org/wiki/Theory_X_and_Theory_Y.
Having been a manager and having learned what it means to scale your ability to have impact and to land impact purely through leveraging others, I feel far more equipped to be the kind of engineer that I would like to manage.
More than that, one of the best experiences I've had as a manager is to be able to dissuade myself of many of the misconceptions and stereotypes that are rife in this thread.
I'd strongly advise non-managers in the thread to read Charity's other blog posts such as the Engineer/Manager Pendulum too.
As it turns out, going back to being hands-on made me realize that I'd kinda been-there, done that in terms of the things I wanted to get done myself. I really missed a) playing an integral role in the career growth of others and b) the strategic level thinking of being an upper-level manager, so I went back to full-time management. There are times where I still think the grass is greener on the other side of the fence, but then I have those moments where someone on my team or in my org will thank me for supporting them or how that X that I've done has reduced the hassle of their day.
Switching jobs is quite hard as an (engineering) manager, at least if you're a bit introverted like me. Often you depend on the number of people who trust you from their experience working with you that have switched companies and have come into a trusted position there.
My career:
ages 20-30: Individual contributor.
ages 30-45: (Engineering) manager, running product development teams of varying sizes (up to about 50 people), being all over the architecture/system design. Not really coding in a focused way.
ages 45-now: Individual contributor, coding most of the time.
I was really concerned I wouldn't be able to keep the interest in actual coding all day long when I went back to that, but lo and behold, I'm actually finding it more fun and rewarding than the management roles. Stress is down too.
You too can recover from being a manager :).
hoping that by using more of my "soft skills" and thinking about architecture at work, I'll be able to come home and work something like a solitaire solver without feeling like it's "non-productive"
Being recently hands on with the technology helps coach and assess reports and means you know the real situation of the software.
Being a manager, if you carve out enough space, lets you make a highly productive, happy, successful team, and sometimes you might be the best person to do that.
I think I'd find only doing one forever more a bit tiring!
I was able to eventually cool off on technical burn out as a manager and went back to working on some personal projects. Eventually though, sitting in meetings all day for 12+ months had the same mental effect and I lost motivation and burn out increased. I'm back as an IC now and balancing my time better.
I think the better solution may be to find a way to pace yourself at work so you aren't slinging code for 8 hours. It's unlikely many of your coworkers are doing the same. I think it's important to find a sustainable pace at work and to just say no to the rest. Hopefully your company supports that.
Most products/projects aren't like that that though - but perhaps the pressure is still there?
And the skills not being transferrable? How is being good in a particular field of tech _more_ transferable than management skills, which is arguably needed everywhere be it tech or not.
Finally the credit/blame - managers and people above them get paid much more than a lowly engineer. Sometimes you get blamed and then paid handsomely, lol.
The hard conversations and emotional drain is true though. But generally, if you love writing code and interfacing with people equally, it’s hard not to be drawn to the appeal of the management position.
* who the different personalities are within the specific organization in order to get things done and who's opinion you need to take into account and who you can safely ignore
* who you can escalate to in order to get more resources (perhaps get a email pushed up to the CEO if needed) and who to apologize to if things go bad
* when to let your team self-manage and when you're going to need to assert your opinion
These are all highly specific to an organization.
The two ways to achieve this are through being in the trenches and observing for many years or have the social skills to hack your way in.
As such I think the interview for an engineering manager would be less than straightforward than a standard fizz buzz test.
More importantly if you do somehow pass the gatekeepers to such a job, your ability to actually hack into the new organization in order to keep your job for more than a year becomes a challenge.
So many fragile egos in high authority positions who can't admit they made a terrible decision 3 years ago and are still in denial and doubling down on it.
shudders
* handling the sheer amount of times that somebody says something is going to happen and then the complete opposite happens, because they lied/they didn't have information/they were projecting their desire/they are out of touch with reality
Managers are viewed the same way engineers are when it comes to skill transfer, in that their "expertise" is limited to the field. Which is why it's rare to find managers who made leaps that way across fields, as they always get overlooked in favor of someone who's either already in the field or is ok with switching from a technical role into a managerial one.
Managers are not having any easier of a time finding jobs right now.
Measured qualitatively in terms of 6 months performance
Charity is not a man!
1) ownership - the manager does not really own the way the team works, in most cases it's just applying processes defined somewhere else (career progression, expectations, OKRs, sdlc, internal processes and the way the team works)
2) the eternal doubt - managing teams and people is not a science (that's why there are thousands of books claiming they have found the formula) and people are always different (different motivators, interests, personalities), and usually managers don't get proper training, and if they do it's more about facilitating discussions and giving feedback than anything else. This creates a lot of uncertainty over the actions that a manager take as the results, often, arrive later in time than, let's say, building a feature.
And the reality is that it's a complete different job than being an IC and most people don't realize this until they are deep into it.
ps to people talking about meetings, the reality is that this depends a lot on company culture and organization...in general the more the meetings the worse the culture (because it means that there aren't really good processes to share status updates and people don't take advantage of async communication as much as they should, but still want to be on top of everything so there isn't really much delegation and trust).
Software is a new industry, we're only just starting to get it right, and put behind us a litany of failed projects and methodologies. Every decision in a software company has a technical aspect. I personally am absolutely over non-technical managers and the aberrant strategies and directions they set out on. In my jaundiced view, any software company not led by developers is just waiting to be blown out of the water.
But don't let that detract from an intelligent, heart-felt and thought-provoking article :-)
I don't see the problem here either. Sounds like somebody overheard that comment and had no real answer hence "they're a shitbird".
I want to take instruction from managers who have literally done the thing they're asking for.
There is a reason vast majority of football coaches/managers are former players I don't see why that should be different from software -- even those managers who didn't play professional football often have a pro background in another team sport.
The reason there is nepotism. It’s insanely difficult for anyone without preexisting connections to get any sort of coaching opportunity. I definitely think ex players make worse coaches, generally speaking. They just have an almost insurmountable leg up.
I do think eng managers should be technical, though. Not because I think you need to have done a job to manage it, but because they are frequently asked to make what amount to being technical decisions.
I'm tired of having my warnings about things like tech debt and code quality ignored; only to be expected to fix everything and maintain deadlines when everything falls apart.
I'm tired of being compared to engineers who get things done quicker because they cut corners and build up tech debt.
I'm tired of caring about my craft when managers just want people who churn out slop.
* The politics and alliance building required to get anything done is both absurd and exhausting.
* You get it from both sides: leadership is pissed off because of X, individual contributors are pissed off because of Y. In both cases they are pissed off at you, or at least pissed off at something and using you as a pin cushion.
* You have to pretend to care about things. A good individual contributor can get away with an attitude of "I'll work on whatever you want me to work on, but this is just a job to me", whereas a manager is expected to be a loyal and excited booster of whatever stupid shit the company is up to.
* Generally I worked harder as a manager than as an IC, and the work was more stressful. The pay bump was not as significant as the stress bump. I've also worked at places (like my current job) where ICs make more than PMs. I am an IC here, and have no idea why anyone would ever take a PM job here. Sure enough, we can't keep them around.
* Do you like to consider all options and really think through a decision before you make it? Well, get used to being asked for definitive, snap judgments all day, every day.
I don't to manage a bunch of developers. Or stakeholders, annoying everybody every day for an update.
I agree with every single reason.
There are some that might push you to be an manager though, and I've had some fun time with that in the past. The two main ones to me are
1. The technical side of managing, things like how do you organize work for the best, process, etc.
2. Helping people grow - which you can have as an IC but is your main goal as manager. That system of taking a step back when someone asks a question, and figure if it's a problem of skill or clarity.
Both of these cannot be done when most of your energy is sunk into useless bureaucracy, as is often the case in large companies.
So you'd better be very aligned on those values to be happy in the job.
(for example, when I was a manager, my manager's goal was to "show the rest of the company we can make websites much faster", which meant putting pressure on everyone. I disagreed with that, making things faster just to "show it can be done" at a very high human price, didn't look like a good idea. So I suffered.)
In other words, sure, management is about authority, but there are many things from which authority can be derived: the authority of a respected teacher is very different from the authority of a coercitive cop.
Also, from a sociologic perspective, values are an outcome. If someone has to defend "the company's values", that means they are wishes, not values.
In the beginning of the project, I tried reorganize things, etc. And it went well for a month then pressure from the customer mounted again. And although I explained that things would be more expensive than planned, nobody wanted to listen. And ultimately, nobody stepped up to say "it won't work as expected", all the eyeballs were looking at me to say it. Which was difficult for me.
I should have realized that my boss was wrong and that I had to reach for help to someone else. I think I was too inexperienced to understand that soon enough.
Of course, it's always possible to end up with a boss who refuses to listen or just doesn't understand, and then you're in trouble.
Retrspectively, the guy created the conditions of a failing project and I was too unexperimented/weak to say "no" (it's pretty hard to say "we can't do it" when everythign around you ask for "we can do it"). Big lesson learned: have the courage to say no.
Fortunately, the company noticed and dropped in some additional management and the projcet went on. But it was too late for my health :-(
So, yeah, you can say it's nothing to do with company's core values but nevertheless, I got that feeling. And eventhough I may not be a great PM, I trust my feelings pretty much.
But point 6, “engineers can be little shits”, about how asking if the person in charge of you understands the work going on is mildly offensive for the obvious reasons, and extremely offensive for how fucking stupid it is.
Knowing how to do something is not an absurd ask of being responsible for that thing being done.
I only ever got up to 3 dozen-ish reports as an EM, but to the extent I ever lapsed in being able to read a diff, that was me just failing.
EMs should know a lot about engineering. That’s what “Engineering” and “Manager” mean. Like, in the dictionary.
EM doesn't mean the same thing everywhere. Last week I applied to an EM role that was 100% people management where my tech experience did not matter much. I also applied to one that was still a majority technical/architecture design, that some would consider a 'tech lead' or something like that.
Being offended by it is kind of funny. You'll probably have a boss like that eventually.
Calling them engineering managers and acting like it’s good to have EMs who can’t code is an anti-pattern. Just call them PMs and let them do all the high value stuff they do.
Ah the cliche Steve Jobs quote. Any driven person who wants to make change at an organization knows that they have to become a manager to scale. These are all day-to-day reasons that distract from why people get into the role in the first place.
Not sure if this applies at the VP level.
What's the trend w.r.t mgmt in healthy companies? I have seen the atherosclerosis-like effect of many many fiefdoms at the current "${JOB}" and the crushing burden of too many middle managers. Will the successful companies of the future (today?) have fewer managers and many more engineers?
Anecdotally I am seeing many more managers being laid off on my personal LinkedIn timeline than ICs...
One reason I'd like to get into leadership/mgmt is to have a greater say in team culture, tech choices, what gets done and what gets sidelined, etc. I feel currently very little power. Sure I could become a staff level or higher engineer and have some pull but it'll only be something that: "gets taken into advisement" rather than some edict given/decided by a manager or managers.
Is my thinking completely wrong?
before i started, i read the Managers Path of Camille Fournier... REALLY good book - and the only thing that did not match with me was "you cannot be friends with them (below) anymore". Which, sadly, is mostly true. But i did not expect the other parts. Politics that is not called politics.
So, yeah, looking for Mentoring/ Principal/ Staff/ Whatever-you-call-that - in my 35years making software i have-been even life coach (of few chosens) but seems not a Manager (of whoever run-of-the-mill is there)
ah. have fun.
www.svilendobrev.com
edit: and the lesson is: you can only be a proper manager if you have proper "manager" above..
However, i picked it up when i started my own company and it has considerably changed my pov. Hard conversations, managing time, developing people, building the organisation, delivering value to clients and a ton of other things which i couldn't dream of doing as an IC have been possible and extremely rewarding.
I think the article makes a few good points but on the overall, I feel that an younger, immature and less clued in me would resonate with it more than me now.
Imagine having those responsibities, but nearly no decision-making power. All those messy human behaviors are now coming at you from above and below.
What's tough is that to do management well, you need a level of freedom like what you experience as a founder. However, most managers with their own bosses will never get that level of freedom and have to somewhat conform to existing culture/process.
I read it as a general screed on managers in general. Not on improperly structured environments that don't enable managers to do good work which I understand is what you read from the article.
I am running into the situation where pay bands are tied into titles. Once you reach the upper end of your pay band you have to gain a new title. So you'll be pushed into management track or pushed out the company. I'm pretty sure I'm headed for the latter.
So keep it simple, quality and don't get distracted by shiny things.
I'm not blaming "managers" here. This applies to anyone who sticks their nose into an engineering process without the merit or to do so.
I really should find a new job because my manager has your attitude and it drives me crazy. I'm at a big corp and I can't stand the "just deal with it, there's processes and they suck but it's for the best" attitude that everyone has. I keep having the delusion that this year will be different because there has been small improvements.. but ffs. We run a Java stack and VisualVM is something I should be able to download without all the hoops. Nobody wants to help you jump through the hoops either, they just tell you to do it, and expect you to succeed.
Joy is an internal energy, orthogonal to the (tangentially) flat Earth that sits external to us.
We might take pleasure or find satisfaction in our work, but joy is a mystical thing derived from one's faith.
Whether a manager or Individual Contributor, one's capacity to find joy in the most suck-tacular experiences is the key to the next iteration of One Little Victory => https://youtu.be/o_dzB1EX_2I