Before that the manager was essentially the best engineer in the team (or the one that wanted to get promoted). Being a manger meant you were respected directly for your skills and you were expected to still be a full time contributor. Directors meant you were one of the best ICs out there. Now, being a manager or a director means you sometimes did an MBA in an unrelated field. This brought a ton of politics, nonsense meetings (because the most visible output for managers is more meetings where they can posture).
Let's go back to what it used to be. We don't need weekly 1:1s to check on feelings. We don't need a full layer of managers syncing with each others and taking political decisions that will mainly advance them. We don't need another layer of gatekeepers.
I'm not saying all managers are bad, but this charade has been pushed a bit too far.
As a manager that does weekly 1:1s, I agree with that statement. But I do need 1:1s to check on progress, uncover blockers that people haven’t surfaced on their own, make continuous small decisions, offer support, assess performance, collect status information for my manager, and last but not least give employees the opportunity to share feelings frequently. They do, and it’s not very often, but it’s important to have a dedicated place for it otherwise devs often don’t share until damage is being done.
I’ve also watched devs who didn’t have weekly check-ins go pretty far off the rails. One dev I remember would go off by himself for weeks designing clever code and over-engineering things that weren’t needed. I thought to myself that someone should be checking in with him, and then months later I got stuck doing overtime before a delivery deadline with dozens of other devs on a weekend chasing an intermittent release-only runtime crash that turns out he caused by trying to get tricky with copy constructors. A quick 1:1 could have prevented this bug that ended up costing tens or hundreds of thousands before it ever happened.
BTW, the best managers I’ve ever had were technical contributors, and they tended to be more relaxed about check-ins than the non-technical managers, in part because they had a better sense of where things sat. Personally I also feel like a better manager when I’m contributing technically to a project, and devs seem to respect that more.
I constantly reiterate to people, whether they're reporting to me or not, that they need to speak up when there's a blocker. I feel its a very telling skill of engineers whether or not they can communicate issues in an effective manner urgently and figure out the best course of action to unblock.
I've heard tales of 300k/yr engineers that just sit there and wait for a manager to ask if they're blocked, or just sit there until they're told what to do.
This is widely presumed to reflect reality within a 1-2 degrees of separation from myself as well as from many of the people I speak to. Part of the problem is that there is always plausible deniability. Like the adage of how unwise it is to fire custodians just because you never see a mess and therefore you never actually see the custodians do anything, it may be "unwise" to lose the presence of these 300k/yr engineers just because they somehow actually keep things going smoothly.
> I constantly reiterate to people, whether they're reporting to me or not, that they need to speak up when there's a blocker.
This is presuming a particular/healthy culture where open communication is valued, appreciated, and not punished. This is not always the case, and an "objective description of a blocker" could result in some bruised egos where it transforms into blame upon some person or team for being or causing the blocker. People who experienced these cultures may be waiting for private conversations (such as 1-on-1s) that minimizes the risk, and they may be waiting to identify you (or whomever they are talking to) as a person who could make communicate the nature of the blockage in a politically favorable or neutral manner. All of this may be happening without the people involved consciously aware of this behavior of pushing out information through private conversations. And this maintains plausible deniability for ALL parties. The person who is blocked is never identified. The person who may have been the blocker is never identified. And hopefully everything gets fixed before anything is actually worth escalating.
I could be this person that appears not communicate, but the reason is because I've never had a manager that could unblock me faster than if I didn't tell anyone and just did it myself. For the longest time, every manager I've ever had was mostly useless (for unblocking some issue), it took quite a few years before I got an EM that actually makes shit happen. Only then did it become a habit I had to break.
It doesn't make sense to tell someone who can't or won't help you that you're blocked on something. Eventually you just default to never asking.
In some particular cases and SMALL groups I do think a Manager by itself is unnecessary, especially if everything is working out and they are responsible enough to present usable information to others in the hierarchy, but if not, please stop this fighting and only complain when the Manager is really annoying.
If you think they are robbing you of valuable time, time it. Time it and tell them with hard data you're being robbed of at least a certain % of your working time, which means you can probably deliver less if they want X action from you.
I can see why this happens, and I was (and still sometimes I am) guilty of thinking as long as I have a little more time, I can solve the problem myself. We are all capable of figuring out how things work, we all want to learn, and we all have fears that admitting spending time spinning our wheels might reflect poorly or reveal weaknesses, and/or might be used against us in reviews.
Part of making people feel comfortable surfacing blockers is making sure the environment is supporting that behavior. Devs need to be rewarded for working together, and rewarded for being proactive about telling their manager or the team they need help on something. If these highly paid engineers have had negative experiences in the past, they might have learned not to bring otherwise important issues to light. Occasionally there are also people who learn what they can get away with and will optimize for the minimum.
IMO, the environment also needs to allow devs some space to go slow for a while, solve unfamiliar problems, and learn new things - so for me there’s a certain amount of being okay with blockers, when people are still being proactive. I’d rather talk about them than not and make a conscious decision, but I do try to be sensitive to what I label as blocker.
That's why historically having managers being strong IC contributors remove that need because they already KNOW the progress and issues on the field.
Modern BigTech created that artificial layer of managers that need to know about all the blockers and progress, just to report it to another layer of managers. That layer is so big that they need 8 hours of meetings to sync with each other. This is purely an organizational issue.
I'm saying a lot of the managerial work is busywork that got pushed as a need by BigTech need to empire building.
Calling it a feature of empire building might be somewhat accurate in the sense that yes all companies and most groups aim to make money, or otherwise grow and succeed. Still, that seems like a pessimistic way to put it. Even small companies and church groups and libraries and PTA associations will have presidents & treasurers. Middle managers appear as soon as group size hits a certain limit.
But the state right now is that:
- those management layers are now more disconnected than ever from the actual work. Most managers are career managers that have given up on any actual technical work. Even if they used to be technical ICs, most bigtech actively discourage managers to do anything remotely technical. I still cannot understand this.
- There are way more managers per IC than there ever was (Last big tech I was in, my org had ~5 ICs per manager. I couldn't believe it and have no idea what those people actually did the whole day besides meeting each other!). This is directly because Directors decide to hire Managers and have a direct incentive to grow the amount of layers and amount of people in their pyramid. Even if they don't mean to, directors and VPs are managers as well and as such they have a direct belief and incentive that more management is better.
Why do you assume not talking by default is better? Have you considered the downsides of your instinct to save yourself a few minutes a week? One thing a lot of devs don’t seem to realize when they push back on communication is the opportunities they’re missing to affect change in the group, to convince the managers to invest in things they need or want to work on in the future, to make changes to team communication practices, and to brag about what they’ve done, how hard they’ve worked, and what they really care about.
Yes, have them. Once a week.
I will again say that most 1:1s are BigTech cargocult rituals where you talk about your path to the "next level" or "how are you feeling this week" but it's also a lot of project management and busywork that mainly exists because the manager is in the picture. Without so many managers most of those self-sustained meetings would go away.
IMO face time is very important and serves more purposes than the explicit information transfer. It’s also a much faster, more efficient, and clearer way to have a conversation, when back-and-forth is needed (which may be more often than you assume.)
In my experience, devs (including younger me) often argue for what’s easiest or most comfortable for themselves, but sometimes they don’t see what’s actually best for themselves, nor what’s most effective for the organization, and they sometimes don’t care what’s best for the manager. (And I’m not suggesting they should have to care what’s best for their manager, just pointing it out.) Nobody likes a budget or oversight. Nobody wants to track time and be watched, and have to explain themselves, and have to compromise in order to finish tasks. Still, having budgets are sometimes good for us and sometimes produce better results, when money is limited and when focus is needed. Budgets also inhibit risk taking, which can be good or bad, sometimes we need risks and exploratory work… so, yeah, the right tool for the job…
And I additonally agree that people will gravitate toward comfort over the right choice.
I like to think of it as a manager isn't required to have technical expertise, it can help, I can hurt, but they have to be a leader. Junior and mid career are required to have technical expertise, but not required to have leadership, though it would certainly help them be high impact and thought leaders in their space.
The more senior I get, the more like a manager I am. Less hands on, more coaching, guiding, teaching and setting direction. Meetings and docs become my tools less than code. When I'm writing code I'm only increasing the output of one person, me. Everything else is force multiplication. I just don't have to do the bullshit performance management.
Having a manager manage performance is the worst organizational option, except for all the others.
Good managers understand they (like senior ICs) are the grease between the working gears of a large company.
Bad managers think it means status.
I haven't had many excellent experiences with project managers, but dang was he good at keeping me unblocked.
In my BU there were directors with 2 direct reports. Even at the next level up, the number of non-IC directs is only high single digits. There are many managers who were already engaging technically with the product (not PRs but playing an active role in planning work) and they have no idea what directors are actually doing...aside from attending meetings with other directors.
Almost all decision-making capacity has been moved outside of teams which has resulted in almost no actual work (because everything needs to be cleared by someone with no engagement with product) and people leaving (because promo decisions are made by people who have no idea what anyone is contributing, the worst ICs are the only ones they can retain ofc).
It is a terrible environment to work in.
I don't necessarily think the manager should be best IC but definitely someone who is genuinely talented with sufficient scope and responsibility to make good decisions/add value for ICs. There are way too many passengers today.
Also, this is true of higher-level ICs. At my work, they have no real engagement with product so have influence through ambiguous statements about the general direction that get passed around like the word of God. None of these decisions, so far, have been helpful or relevant.
A decade or so ago, the high level ICs I interacted with were much more technical.
They were the kind who would perhaps not invent truly novel things--but plenty did in the right companies--but they had mastered their domains and genuinely solved thorny problems that others struggled with.
Nowadays, they are more political and less involved. I have met many that do not code or barely code. I've been in months of meetings to decide to do something fairly obvious just to ensure "alignment" even though no parties actually disagreed, just wanted to nitpick minor details that could just be a comment on a PR.
I'm not sure that's ever been true.
Google and other adtechs are not hard tech, that's why they have so many managers)
An underappreciated reason for this is empire building: Someone needs to be promoted to Senior Director and one way to do this is to add a layer of management: Adding 5 headcounts that essentially do busywork makes it easier to advocate for why your org is very important and why you should be promoted.
- entry level dev
- senior dev (start being groomed for management)
- senior dev/leader (take on 25% management duties)
- manager - management track.
Once you're on a management track, you essentially are taken off of any dev work and then depending on how well you've networked determines how fast you move up the management chain. Some companies like Target, they groom and move anybody up relatively fast who they see any potential in.
The only exceptions I've seen in my career are either startups or medium sized companies where there is no management track. You're a developer from the day you're hired until you either get fired, laid off or leave the company.
When I was an entry level dev, I left three companies because they wanted to start grooming me to move up into management. I was way more into being a developer and writing code then managing people.
Please tell me where these 'managers make a lot of money and do nothing but approve timesheets' companies are, I'd kill to work for one!
On the other hand I've had managers just the same - cannot understand why anything is difficult and certainly wouldn't waste their time trying to help you.
It's just people, they're sympathetic or not. Determined or not. They care about the outcome for more than themselves or not.
But what we are saying here is that they are essentially an artificial layer of busywork that adds very little value. This is what decades of empire building and organizational issues have created.
It's slowly changing and people are realizing a lot of the manager work is self-created and sustained.
My prediction is that most tech companies will go through flattening cycles now that we start realizing that adding managers adds a similar amount of busywork.
the places - where pure managers just existed i.e manager, senior engineering manager, director, vp etc - just added unnecessary overhead.
places that flourished had a manager who was also an IC - who reported directly to the CTO
which means I was 1 layer away from the CTO
I worked in several BigTech that had managers excellent at talking and posturing in meetings but doing no or negative works.
The issue is that managers are hired and judged by other managers, not IC, not producers. This creates that managerial class that make themselves self-important.
It's as if people are saying they want a direct democracy in which every issue is voted on directly by the participants, with just one layer between the people and the "prime minister." Good luck with that when the group size exceeds 50 people, and one realizes that people don't want to vote on every issue affecting a larger society or organization.
I have been employed before the 2000s and that was the norm before AdTech started to empire building around managers.
Hard agree. One-on-ones are one of the silliest fads in our industry lately. Why would you wait until a weekly scheduled meeting to bring something up? Your manager's job is to be available to you when you need something, not just once a week. And if they want to know how you're feeling.. they should ask, putting it on an agenda feels very disingenuous.
Me and my direct manager (a C-level) tried weekly 1:1s for a full year and ended up giving up on it because it was clearly unproductive cargo-culting.
The dirty secret is that most employees in the software field are not capable of that level of maturity and forwardness.
I’ve had employees like that and our 1:1s switched to monthly cadence and were frequently skipped if they felt like there was nothing to talk about.
For the majority of the others they had some level of anxiety about discussing problems and needed the structure of a scheduled meeting to feel safe enough to bring up issues.
I see comments in this thread being dismissive about discussing feelings and I assume they would be terrible managers who couldn’t handle the first time they had a direct report break down in tears in front of them while struggling with some task and feeling worthless.
As a result, people pop in my office regularly to start these conversations, which I prefer because it leads me to believe I am approachable, which is by far one of the most important things a manager should be.
I prefer the exact opposite, especially when working remote.
When I was a manager, I saved non-urgent topics for a weekly 1-1 instead of pestering busy people with "Quick chat?" or "Do you have a minute?" messages. I wish others would do the same.
I'm also quite aware of what my people are working on, so its never a "what are you doing?" conversation. Some of my folks are remote, sometimes I am remote. If you do it right it really is just natural.
My own boss seemed to see the time as an opportunity to apply pressure so of course I utterly hated them and wanted them to end ASAP. I didn't want it to be like that for my team. I thought I should be a source of help.
A good manager is worth their worth in gold even if they produce zero technical output. I've had managers that were absolutely instrumental in my career as a programmer, and they did close to zero IC work.
>>Before that the manager was essentially the best engineer in the tea
Yes, and it was absolutely awful. Keep the best engineer in the team as the best engineer on the team. Call them experts, distinguished, senior++, whatever, don't make them managers.
>>Let's go back to what it used to be
God, please don't.
>>We don't need weekly 1:1s to check on feelings.
Speak for yourself please. I find weekly 1:1 extremely important for the entire team, especially in fully remote roles.
The two extremes of company culture are status cultures and service cultures.
In a status culture the product is the internal status hierarchy. External products are largely incidental goals, and customers and markets are only valued to the extent they create metrics that can be exploited by status seekers. Likewise employees.
In a service culture the goal is customer service through high quality output and employee development.
US corps lean far more to status culture than service culture. This is excellent for short termism, but the culture often becomes dysfunctional, if not outright abusive, and sooner or later it implodes, because status cultures aren't good at accepting reality, or at accurately reading it when they do accept it.
And status cultures tend to cargo cult management, where the C-suite is comparing its status to other C-suites, and copying apparent status-raising actions without thinking them through.
In good times a status culture will overhire, because hiring more employees looks like growth. In bad times status cultures will overfire because "cutting the slack" is lowest common denominator status management.
AI is the same on steroids. You get the promise of more growth with fewer employees, and that's hard to resist, even though it's entirely speculative and could easily be catastrophic. (Company results, and especially lasting company results, are orthogonal to whether some employees get good results with AI, because what actually affects results is how predictable the improvements are, whether there are likely downsides, and whether they're structurally in the right places.)
Whether managers should also be ICs is a side issue.