1/3 is in service of the team. Some of this is bureaucratic (approving expense reports, hiring/firing/promoting), and some of this is being a team facilitator. In meetings, watching that everyone is talking and that one person isn't dominating. Helping with conflict management. Pulling together people from three teams for a meeting and leading it.
Again, that's about 1/3 of the job. Half of this could be done by team members, but these are skills that require knowing tech but aren't tech.
1/3 is getting senior management what they need. Does the project need another developer? What is the high level status of the team? Is there technical debt that needs prioritizing that requires more than what the individual team can commit to? These are things that can be done by developers, but it's going to look a lot like what the manager does, and someone is going to be pulled off of more and more development work to do these.
And the last third is to the rest of the management team. These are the work to make the department run that people don't notice.
I worked at a place that had a very lean management:worker ratio, and instead developers ended up doing a lot of the management work, effectively becoming managers without the pay bump or recognition.
I mention this because I think one thing that separates mediocre managers from really good ones is that the good ones understand each employee's strengths and weaknesses and try to help them chart a course for success. That means finding their place on the team and it also means growth. It's to everyone's benefit if, 6 months or a year from now, that employee is a better employee. A manager is in a unique position to coach and mentor, and to create the conditions for growth and encourage it. A self-starter employee will do some of this on their own, but they usually need the manager to participate too by doing stuff like recognizing realistic opportunities for an employee to take on more responsibility and taking a chance by trusting them with it. A lot of managers don't seem to even attempt to do any of this or aren't even aware that it's a thing, and then their team languishes and stagnates and they wonder why they aren't getting anything out of their people.
Emotional labor can be hard to quantify, and so outside of 1:1s and ad-hoc goal setting meetings and reviews, it's both important and hard to quantify in terms of time. Further, it's another task that can be a peer task - that is, it's something that technical leads can do for their teams and management can reassign the rest.
The original comment was talking about taking out most of management, so it's probably something they wouldn't consider as a key management priority that couldn't be done by developers.
Also branded as "Flat Structure"
Imagine you are CTO of a pretty successful eCommerce company.
What you need to oversee as a CTO:
- iPhone and Android application
- Front-End Website application
- Back-End Website application
- SAP (Or something similar) integrations for billing and documenting
- BI infrastructure and reporting via tool like Tablou/Salesforce or similar integration with replica read-only DB
- DevOps (AWS, Azure, GC, or similar) maintanence and R&D
- Bonus: A lot of meetings with other top-management regarding company stuff (structure, plans, vision, etc..)
Now, how many people (Developers, QA, DevOps, BI, ...) do you think work under you - at minimum 30 (bare in mind I'm talking about successful stable company, not a 2-man garage startup).
Do you really think one guy will want to deal with all the 1-1 bullshit, day-to-day operations, everyoen asking raises, people leaveing, people coming (hiring)? It is literally impossible.
I think I do, I’ve worked at places with more middle-managers than engineers! They mainly held meetings with each other all day as us engineers got on with the real work, self-organised when necessary.
It wasn’t too bad since we were mostly left alone but we still resented their generous salaries being paid off our labour.
Without a manager, team members need to justify a $5 expense to finance, deal with back and forth iterative design with product team, argue that the hardware partner isn't delivering what they promised, deal with security expectations from bigger partners. There's a lot of unnecessary meetings in there and you don't want the people doing the work to be in them.
Without a manager, the CEO sits next to your back end guy, rants about bugs that the guy is already fixing, and pokes him for update schedule progress every four hours.
It is possible for middle management to get bloated, but this is sort of a response like we have too many meetings, therefore we need more people to handle meetings.