I never been able to get clear answer. What exactly is the role of a manager, why are they so highly paid. What does a software manager do on typical day.
They are paid more because they are multipler. They represent the department. Speaking to this one person I can get the whole department to do something. When something goes wrong that person has to answer for it.
On a typical day a software manager does work their boss assigns them and answers your questions/queries from other departments.
- Provide status updates to bosses. Reports / presentations in regards to department goals.
- They watch over the developers/leads make sure they are productive / issues handled
- They attend other department meetings, vendor meetings
- They read over everything and provide signoff
- They attend community events and represent the department
Every place is different. A manager could be a lead and expected to jump in and code.
A manager could be an office manager or a project manager or a product owner as well.
Does that help? They manage the department.. ensure resources are in place.
One of the crappier roles. Very little power, low respect from above or below. Slightly higher pay in general but not uncommon to be the lowest paid in the department.
Give your manager a high five once in awhile. They do a lot to make your life easier.
Depends a lot on each company, but managers are responsible for hiring/firing, holding their teams accountable to quarterly targets, shielding their team from politics, helping each engineer grow professionally (including having one on ones with everybody and doing performance reviews), and making sure the team gets the resources they need to do good work (which can include managing budgets and arguing for more capital allocation).
At some places they are also responsible for coding (this also depends on seniority), and at many smaller startups they will also play the role of product/program manager since the companies haven't hired for those positions yet or are not even aware of what those positions are.
I can't comment on specific cases, but I think most engineers are wildly unaware of just how much work it is to play politics at any company, and it's an unspoken part of the job for any manager.
There are of course many definitions. In my current small company, here's one definition of the "technical manager" role:
Figure out what to do, figure out what not do (10x more work), handle hiring/firing (both are really hard, but in different ways), handle random human situations with employees, motivate the team, get people to grow (give them incrementally larger individual responsibilities over time), get developers to focus on stuff that actually matters, manage the technical debt, plot a clear plan forwards. Feed developers with tasks, suitably small or large depending on their XP level. Learn exactly what kind of tasks each individual can handle. Pre-chew medium-hard tasks so that the can be handled by junior devs. Follow up on tasks, especially those that have an architectural impact. Create product progress. Manage issue tracking. Be on top of devops. Do some random small dev tasks yourself so you don't lose track of the code. Run regular team meetings. Etc. It's an exercise in time utilization/fragmentation.
For example, a project manager's role is to track progress of a project, reveal and resolve deadlocks (A waits on B, B waits on C, C waits on A), communicate progress to the outside and so on.
In other cases, managers act as proxies for teams. If you want something from a team, nobody expects you to talk to all 12 members and convince everybody -- instead you talk to the manager, and the manager then talks to the (relevant parts of the) team.
From the team's perspective, a good manager shields them from most of the company's politics, declines nonsense requests early on, organizes all materials necessary for the team to work etc.
In general, managers are paid well because they carry a lot of responsibility. Even a brilliant team will underperform under a terrible manager, and a very good manager can bring out the best in teams.
I’m friends with a architecture manager at one company in Austin that has 4 direct reports, attends a few meetings a day, spends his downtime doing online courses prepping for the next job change, all while making 145k/year.
My manager at a previous company had coding responsibilities in addition top 15 direct reports and was really overworked.
Delegate work. Thats pretty much it, coz in most cases they don't have expertise to do anything else (you will hear a lot of other arguments but when you dive deeper or investigate its all PR bullshit).
Keep in mind that delegating requires separate kind of skills to engineering. Tho often times I see an insult that managers don't understand the tech to make an impact.
Ps. Im not neglating some parts of the work they do. Simply comparing it to the amount of knowledge that is required in other parts of production chain.
Way back when I worked in organizations that had production lines, we had a job called "progress chaser". I think much of what goes on in a typical software project is the same kind of work.