That’s what it was like for me, anyway. I’m an IC again now…
If this becomes a problem, I would rather assume this as a strong sign that there are simply too many management levels in the organization, which makes managing the multitude of management levels difficult.
Turns out the flat structure doesn't work out either; you will have a hierarchy, one way or the other (that is, planned or emergent.) I think us techies underestimate the necessity of coordination, and yet we paradoxically chafe at meetings.
now realize that large organizations are basically distributed systems with more smaller unreliable components.
you could not have a horizontal spunky start up land on the moon in the 60s. It is too complex and too much information to possibly transmit to everyone.
There are distinct issues and hard problems at each level of the company hierarchy.
its a lot like software architecture in a way. Getting up and running is easy in the beginning, one person can dictate how everything fits together and things are straight forward. Then as you scale, things that were easy and simple are now bottlenecks, so through refactoring, you create a more solid foundation, that if looking naively at the initial implementation is more complex and structured, but it allows a framework to handle bigger challenges. Success at this stage is how well the architecture lends itself to scaling.
Large companies require structure, and their success is dependent on how well that structure operates.
small companies need a group of smart people in a garage.
It’s fine for non technical customer liaisons to have input, but putting non technical people in charge of a product doesn’t tend to work well in my experience.
It does take a lot of vision and leadership to successfully run a large company. Unfortunately, I would argue, we tolerate a lot of unsuccessful companies.
indeed. i can't figure out what sort of organizations all of these "omg get rid of middle management" folks have worked for.
if you've got piles of middle management who only have a few reports each, well, sure, that's not great because now they've got too much time on their hands to pester you. but the other direction is no good, either.
i've seen a VP with 45 direct reports before. he didn't get much done, and shed bodies as fast as he could hire new ones. he didn't know anything about any of his people, and they didn't bother trying to take their problems to him, they just quit.
Since taking this position I've started to think of middle managers as human lubrication on the gears of bureaucracy. The better the gears fit together, the fewer of us are needed. Unfortunately, we're not really incentivised to make ourselves useless, so designing better gears isn't something a lot of us spend time on. And I don't know how one could properly incentivise a whole class of mid-seniority people to work themselves out of a job.
It's not, though. On the management side, you quickly learn that teams range from proactive (will get the job done without having to ask twice) to the most mind-bogglingly slow group of people you've ever worked with. If you're not constantly asking questions to understand each situation further, the latter group will abuse their lack of oversight to no end.
It doesn't make sense if you've always been responsible and ethical yourself, and you've always been surrounded by responsible and ethical people. But once you get into management, you realize that you can't count on everyone being honest like yourself. A small but troublesome minority of employees will take full advantage of any slack you give.
It doesn't mean you should make the situation bad for your high performers (common mistake), but it does mean that you do need to ask questions to understand what's going on when things are falling behind.
In the above example, the next management move would be to understand why the onboarding was so slow and to allocate some resources to fixing it so it doesn't happen again. Something that wouldn't happen if management hadn't started digging in to understand.
Is it protecting developers though? Or rather protecting higher ups from direct consequences of their crassness and cluelessness?
If in absence of middle manager, the upper manager said something like that to me he would have my resignation next day on his desk, along with a request for a raise and strongly worded demand to accept one of those documents.
So yes the Manager is protecting them, and helping set expectations for the higher ups.
Replace higher up with Customer and you get the same system. Customer demands something unreasonable, that doesn't get filtered to the team that is working on that feature as it's just a distraction to them. Let them do the job and execute on the roadmap as planned.
If there's a better moment to negotiate, I don't know what it might be.
Would hearing this be distracting for me? Sure it would be. But it's not me who would get to pay for my distractions. So it's 100% of protecting higher ups not developers.
One of the things I learned very quickly was that I was naive to assume that all developers were diligently working on their tasks with reasonable effort. At first I assumed everyone was working just like I did as an IC: Straight to work, focusing until the task is done, and enjoying the satisfaction of finishing things. Unfortunately, a surprising number of developers won't do any work unless they're constantly pressured by managers.
Junior managers often need help identifying the latter and understanding how to performance manage people. It was actually surprisingly common for a new or junior manager to hire an unexpectedly underperforming employee and not have any real idea how to manage their performance. Or worse, they might hire someone who become actively toxic to the team and not understand how to deal with it.
Stepping in to help performance manage, or eventually remove the problem employee, was actually very critical as it prevented all of the good performers on the team from quitting. Few things will destroy morale as quickly as a deadbeat showing up on a team and dragging everybody down with no consequences.
From the employee perspective: Have you ever had a teammate who didn't pull their weight? Imagine how frustrating it is if management is clueless about the person's relative lack of performance and isn't bothering to investigate why there isn't any output. Eventually you're going to get sick of doing their work for them.
just give them the information they want. If they don't like the truth, that is a different issue. They are asking you, because you have more intimate knowledge of the situation.
I inherited a team of seven working on a project. They were led by a very strong personality who led the project based on his principles (he was interested in funneling as much corporate money into "free software" as possible while resisting delivery of business value). He'd been running the project for a long time by the time I inherited the team. One of the upper level folks gave me a call on Thursday and said, "In the operations call on Wednesday I'm going to propose killing that project because it's gone off the rails. We can use the money elsewhere. Just giving you a heads up".
I spent the weekend figuring out how to pivot the majority of the staff into other projects, use staffing as-needed to develop features for business need, and provide a minimal maintenance budget. I called the guy who wanted to kill it on Monday, presented the plan, and he said he'd sign off on it.
When I told the lead that the project will need to change he was outraged. He accused me of abandoning free software blah blah blah. I didn't get a chance to tell him about how I saved his job and the jobs of everyone else on the team by working 32 hours on my weekend and finding them other work to do.
Save the day by investing your free time into making things work, then collect outrage anyway. Management in a nutshell! Great anecdote.
> They were led by a very strong personality who led the project based on his principles (he was interested in funneling as much corporate money into "free software" as possible while resisting delivery of business value).
I've dealt with someone similar. It's strange how certain people can work their way into management while actively fighting against the company's mission. Of course, it doesn't work out well for themselves, the company, or the team they manage.
Why not tell them?
Depending on that lead's personality he may "go over your head" and start complaining directly to _your_ boss. Which means you'll be dragged into yet another 30+ minute meeting when your schedule is already packed with meetings.
Part of your job as a middle manager is to not only shield people below you from unnecessary drama, but shield people above and beside you from unnecessary drama also.
This is where you have to use your past experiences with each individual person to gauge how to act. Do this for long enough, and grinding leetcode an hour a night for 2 months and just going back to moving tickets left to right at a FAANG company for (oftentimes) more money starts looking appealing.
But then you have some days where everything goes great, a major project is shipped without any issues, and/or you're able to (finally) give a promotion to someone who deserves it which makes it all worth it.
I ended up switching into speaking/training. All the pros of management (mentoring people, getting to speak) all the pros of coding (coding training materials is fun and simple, zero tech debt to worry about) and less responsibility on both sides.
The more I work as a developer, the more I appreciate the work of good managers, and the less I want to do it.
And that's the key - good managers.
Now, I think that it's pretty hard for most people to identify good vs bad managers, and that's why a lot of people who aren't sensitive to the difference get into the mindset of "management is a bunch of toxic leeches who don't add any value to the company".
Interestingly enough, it's also pretty hard for most people to identify good an bad developers - but most people aren't developers. It's far easier for those that are.
This raises an interesting question - is it harder for managers to identify bad managers than it is for developers to identify bad developers? What about the ease of developers identifying bad managers vs managers identifying bad developers?
I wouldn't be surprised if it's harder to recognize good/bad managers - management is all about abstracting away the stuff under you for the next level up, after all.
But, I also wouldn't be surprised if the problem comes down to something else other than identification - maybe bad managers are more prone to keep bad managers around than bad programmers are to keep other bad programmers around...
It's at times like this that I wish that I had more experience in the corporate world...
Communication between teams on feature alignment (read: tons of meetings), planning my team's sprint workload, dealing with other manager's politics/bullshit, dealing with Directors political bullshit, etc. It's a huge time sink away from actual engineering.