In my experience, splitting managers, designers, and QA people across 3 simultaneous projects results in 1 project dominating their time and the other 2 projects being starved for attention. Repeat this across the product manager, engineering manager, QA person, UI designer, and project manager and you virtually guarantee that every project is going to be starved of resources.
Instead of having 3 separate product, project, and engineering managers split their time across 3 different projects and wasting time synchronizing with each other and the teams, it’s better to have 1 person handle the role of product, project, and engineering manager with 100% focus on the project and team.
I’ve worked in teams like you’ve described. It quickly turns into a mess of meeting scheduling conflicts, repeating every discussion 3 times because you have to communicate it to 3 different managers, and constantly working around blockers because your UI or QA person has been pulled into a higher priority project.
Put small teams together. Let them focus 100% on getting things done. Don’t cross everyone over to 3 teams. Don’t give everyone 3 different managers.
Product manager (Product Owner in scrum), Senior Dev / Tech Lead, Dev1, Dev2, QA, and UI/UX Designer all report to Engineering manager.
Further, changing the mindset from "as a manager these reports work for me" to "as a manager I work for these reports" improves the feeling of ICs having "multiple managers". The managers job should largely be unblocking the ICs.
In my experience, product managers have never reported to an engineering manager.
Which is probably part of the problem, and why this type of hierarchy can lead to a "3 managers" type scenario. The product manager, senior dev / tech lead, and engineering manager all have some management responsibilities. When the separation of responsibility is not clearly delineated, so the regular team members are left in an awkward position of having 3 different people they have to report to, and often get conflicting feedback from each of them.
Eng Manager <- Devs, Project Manager
Product manager -- UI/UX (same org not direct reports)
QA (Had their own reporting structure)
This is incredibly difficult to get right. A good product manager needs to be spending time "in the field", sometimes literally but always in terms of focus. A good engineering manager has to be spending time "in the lab", again literally & figuratively.
These two things are in contention, and balancing them properly in one person is very difficult.
Anyone who has project management skills can do that part, but trick is dedicating enough time to it. On a complicated project, this can easily become a full time job.
matrix management has it's own challenges (not that this is the only way to handle it) but your contention that because there are 3 "managers" involved means that everyone "has" 3 managers just isn't true. Most of this stuff is about responsibilities, not chain-of-command.
'Eight?' - Bob
'Eight Bob' - Peter
I think this is where the impulse to let the managers handle this as a small part of their job comes from. It's already clear who the managers are and what their career progression is, and handling stuff the team needs to unblock, which doesn't fit well into any particular box is already part of their job.
Ideally it seems as if you'd want someone with administrative capabilities and focus but with enough understanding of the tech and business side that they're able to understand context and conversation.
Problem is, although its easy to find administratively capable resources who you can pay a decent salary to retain, the minute you require them to understand broader context the incentive structure changes as this is inherently more work.
To me that is why Product Managers who's focus is a single product should also take over administrative tasks on that project. It gives them an opportunity for "field time" as stated by another poster as well.
It's often best to keep the number of roles low on the team to increase flexibility/provide freedom for individuals to tailor the roles to their own strengths.
Team members were: - Manager (me), BA - managed backlog and some project management (actual title was principal dev, but she wanted a role change), 2x senior developers (both capable of architectural work), 2x developers, 2x test engineers, 0.5 Product manager (they report through their own branch of the org chart and cover several related products).
Additionally, I had 2.5 developers working on a different project, run as a separate agile team.
New team is 1 architect, 1 senior dev, 1 dev, 1 test engineer. BA and PM support comes from elsewhere, which is a big change fo me. Also in a new technical area (SRE vs 20 years of product/app dev). Fun, but stressful. I'll reserve judgement on the lack of BA/PM until I'm a few months into the role.
You may be doing it extremely well! It does happen. But I can understand why you're getting skepticism.
Granted this is just one way that situation can go, I’m sure there’s plenty of effective dev managers who still write code regularly, just hasn’t been my experience.
Usually, people in your position will systematically wear one hat at the expense of the other, leading to long-term retention or code quality problems.
It's a delicate balancing act, that isn't easy for most people to pull off. It's not impossible, I've seen it done well. But it's a lot easier when "times are good", and you are not consistently tested by hard decisions where the EM and TL hats would disagree.
Do you know what the sales people in your organization do? What about the legal department? Procurement? HR? Your lack of knowledge is not evidence.
"lol, do some coding instead"? And what should I code? How do you know what _you_ should be coding? Where does that work come from? Who makes sure that you're writing quality code and not some shit spaghetti mess? When the lawyers come knocking who answers the questions about security and compliance? You're just going to write some code for that?
Your myopic complaints do nothing to further your own goals - rather than make baseless accusations, look into the problems yourself and try to solve them. You might get some career growth out of it. At the very least you'll understand that not all problems can be solved with code.
Actually, who decides this, and how?
I mean, I understand why 1:1 are considered necessary, but I still get the creepy vibe. It's probably mostly my introversion speaking, but this is honestly how I feel about it.
> conversation about your goals; your concerns; and anything else that needs to be discussed about your career
What goals exactly? We do sprint planning every spring, plus all that backlog refinement and other stuff.
Long-term goals? Well, they don't change that often (that's what "long-term" means). Neither does my career. So having this kind of debate once or twice a year would be quite enough.
If you have no goals that's your failing, not the meeting's. If you lack the imagination to see where you want your career to go or the introspection to see where it's headed then, again, your fault - not the meeting.
Questions I get in my one on one's with people who care and are going places: -Why is the organization failing at x/y/z? How can I make that better? Is it worth fixing? -I am having trouble accomplishing e/f/g goal - I've hit q/r/s roadblock. What do you recommend I do about this? -I want your job, how can I change what I am doing to get me closer to what you do?
I also use them to get information I need from these people: -How is your team doing? Is anyone under/overvalued? -Are your commitments on track? -Is there anything I can do to make you or your team more effective?
I mostly have these meetings monthly. A month is long enough for things to change. 6 months is too long - too many things have changed, too many have been forgotten.
The best team composition I have ever worked on looks like this:
Product manager: Has <=3 teams knows company product / strategic goals / customer needs. Sets high level goals, updates those in response to scope estimates, coordinates with product org.
Eng manager: Highly technical, has institutional knowledge of codebase + understands the politics of the org. Has <=3 teams. Sets tone, handles dev career growth, mediates/prevents conflicts, recruits, shields devs from institutional nonsense.
Senior Dev / Tech lead: Trusted by eng manager to independently make arch level decisions. Can mentor / peer with / support other devs.
Dev1: Specialist in one relevant aspect of stack, but with general knowledge (can pick up any ticket if needed)
Dev2: Same as above, different specialty
QA: Half-time dedicated QA resource
UI/UX Designer: 33-50% time for team.
Project Manager: Half-time dedicated resource. Owns Jira, scrum master etc as noted above.
This group is flexible, resilient, and plays to people's strengths. If you don't have a project manager then yes it can be left to the eng manager or tech lead, but it's not ideal.