The thing is that role model should not be your manager, it should be a senior developer. A good manager is not a role model to teach you, a good manager realizes the importance of lowly engineers having role models and creates a structured mentorship program to make sure that need is being met.
I don't understand why managers cannot fulfill both roles though? The job of management isn't hard (I'm doing it). Outside of the project management responsibilities, there is a lot of time doing nothing. If I wasn't coding, as a manager, 80% of the time I would sit around doing nothing.
I strongly believe that managers should be able to fulfill both roles but maybe it's just because I've been burned by so many managers in the past.
I’d ask a few questions about the bits of management that I think are hard.
How do you get your team aligned on the company’s priorities as they shift?
How do you foster growth?
How do you assess who needs to be promoted/given a raise?
How do you handle feedback for employees that aren’t doing well, or aren’t meeting your expectations (or even harder, employees who think they should be promoted but you think are just solid at their current level)?
And the big/meta one - what do you think the job of a manager is? (Could just be a semantic disconnect on what the job entails).
I have concluded that nothing is easy. Being a manager (at least a good one) is definitely not easy; being a good engineer is definitely not easy. They are both difficult in their own district ways.
The most important skill to have in the workplace, management or not, is humility. This absolutely does not mean that you’re a pushover, but it does mean that you should never deceive yourself with the notion that you’re infallible.
I don’t think I’ve seen it ACTUALLY be anything but B in the real world, but theoretically, to answer your question -
1) that’s interesting! What do you consider the hardest people management issue you’ve run across?
2) what is the people management problem you think most people overrate in difficulty?
It usually will surface if they, for instance, consider people management easy because they have zero emotional affect and hence never bear any emotional load, or if they’ve been bless by ignorance and don’t see the work their peer and senior managers are doing to avoid them setting everything on fire, or never consider coaching or growth of someone to be a problem - because they never do it.
I'm going to pile on here with the others. If you're legitimately a people manager (not a low grade 'team lead'), there is no way, no how, you could have 80% free time.
I've been doing this for some 23 years and had a stint as a proper manager for a year, where I spent about 20% of my time coding, and I was more starved for time than just about any other phase in my career.
I'm currently a principal eng/ arch at a mid-size medical device company, and my principal eng/people manager complement, perhaps one of the strongest devs I've ever encountered (close to a fabled 10x dev), barely has time to code at all. He's just slammed all day every day with general meetings, doing 1-on-1s, presentation prep, working on process improvements, Scrum/product owners for backlog grooming, interfacing with other managers, etc, it just kills his day for anything more than tiny bits of coding here and there, and because he is such a great dev, he does provide meaningful contributions.
I have worked at small startups where things are a bit better, but I can't recall ever seeing a case where a good manager has more than 1/3 of their time to code. 80% dead time would mean hardly managing at all.
> If you're legitimately a people manager (not a low grade 'team lead'), there is no way, no how, you could have 80% free time.
Just because you've never seen this dynamic work successfully doesn't mean that it doesn't. The best manager I've ever had operated like this. She spent most of her time coding and made sure to know what everyone on the team was up to. We were all competent professionals, so we did a perfectly fine job of prioritizing our work and working with others within the team and across teams to get things done. It helped that much of our work could easily be undertaken in parallel with strong ownership of different parts of the code by a single person, but when there were projects that required strong and frequent collaboration she just carved out a sub-team and designated a lead then trusted the lead in the same way she trusted us as individuals. Not only did this mean that we got the benefit of her very impressive technical contributions, but it also meant that we were all able to be more productive because we spent vastly less time in BS meetings.
Afterwards, I moved to a company with a more traditional structure. Ostensibly there were three people in charge of me: my engineering manager, my product manager, and my designer (since we are "design lead"). It was a pretty big culture shock. One difference is that there are a lot more junior people in my new company (the average age was around 50 in the first one), and I think younger engineers may need a firmer hand, but I'm not sure that that explains it all. I joined the first place right out of college and thrived in that environment.
I think most people don't understand just how effective a minimal management strategy can be because they've never experienced one that works well.
I meant specifically things only a manager does. For instance, the presentations he does are for director/vp level, hefty slide deck stuff.
Of course the more senior ICs do more than simply code AFA talk across teams and divisions to scope and define work, present workshops and presentations to the team and cross-departments, contribute to architecture decisions, present as SMEs across various parts of the stack, and mentor juniors. None of the ICs year on my team spend more than 80% of their time simply coding, the more senior staff spend probably more like 60-70%, and I spend about 50%.
I’ve worked at 14 companies over 23 years, from 3 Fortune 500s, to a couple mid-sized, to a bunch of smaller companies, to a handful of early stage startups. Have had probably close to 20 supervisors over this time and interfaced with dozens of other managers on related teams, and been a team lead about 5 or so times and a manager once.
I’ve never seen this dynamic play out. IME you're talking about a team lead not an actual people manager. Even in the most streamlined/simplest environments, I don’t think I’ve ever seen a people manager spend the majority of their time coding, not unless they were pushing 60+ hours doing so. Something as simple as 1-on-1s should be done at least once every week or two, and that can take up to an hour (or more counting prep) for every report.
Your mention of having multiple sups and junior heavy ICs at one place sounds dysfunctional and has little relation to any place I’ve worked at.
Those presentations to the higher levels didn’t really happen because the corporate structure was very flat. Also, I would not expect those to take up all that much time.
You may have worked at a lot of places, but your experience is still only a tiny slice of the different shops out there. My experience is likewise limited, and I acknowledge that such light touch management is probably very rare, but it can and does work.
You said she was a team lead not a real manager, which does have some truth to it, but it’s not like there was someone doing the “real” management work to pick up the slack for her. In the right environment that stuff simply isn’t needed.
> such light touch management is probably very rare
Don't be too certain about that :-) I recognize the things you mention from my first job, I had a manager / CTO who were like her. (This was a 20-30 ppl startup, high trust, not many meetings)
> general meetings, presentation prep, working on process improvements, Scrum/product owners for backlog grooming, interfacing with other managers, etc
You as a manager don't need to do all that. If you can't delegate most of that to reports then you have a problem.
In most companies, once you’ve built or found the people to delegate that too, and handed it off successfully - congrats, you’ve demonstrated you can handle the next level and you get the next round of challenges.
If you’re sitting around with nothing to do, either you’re in a dead end, or no one actually trusts you with more once you’ve ‘succeeded’ because you’ve burned too many bridges or alienated key people - even if the org chart looks good.
Of course if someone is finding themselves in that churn all day for any length of time, you are quite correct - they are busy not succeeding.
You don't delegate everything to a single person, you delegate the parts to the person best fit to do it.
And no, delegating a lot of those tasks doesn't mean that you as a manager have nothing to do. Instead you can spend 20% time doing management tasks and 80% time coding. Each person in the team sharing the "management" burden makes it pretty manageable. (it isn't really management to coordinate with other teams or present to people etc though, no reason you should have a bus factor of 1 for that role)
I literally do this for a living (20+ years now), and have never seen anyone successfully pull this off that was doing what I (or the company) called managing.
I have seen a few people convince themselves this is what they were doing (usually in a line manager/tlm role), while everyone around them was suffering from lack of a proper manager, which their lack of EQ was hiding.
If you somehow found the secret sauce for this, please do share!
Seconding that - managing for ~15 years, with 15 years eng career before that. If you're a manager who spends 80% coding on anything but a small team (<7 people), you're letting your team down.
You might think you're doing a good job, but you really aren't. 20% of your time are only 8 hours. Even if you just spend half an hour with everybody on your team of 8, 4 of those are gone. You haven't spent any time yet coordinating the team as a whole. You haven't spent any time planning. You haven't even answered e-mails yet. Neither did you do any signficant coaching. Nor did you spend time hiring. Or even writing a job description. Or planning compensation. Or helping your two star engineers who are at loggerheads to come to an agreement. Prioritized the backlog? Set up a triage process? Spent way too much time to find out why your junior is super-withdrawn and doesn't ask questions? Set them up with mentorship? How's that design review coming along? Talked UX of the latest "luxe UI" ledge? Got yelled at by them because one of your engineers decided that specs are just suggestions? How's that training program for the new toolkit coming along? Also, the team is kind of nervous because the big project will end in 9 months, and there isn't a new big project yet?
TLM roles are the biggest mistake this industry makes. They work beautifully for 3-5 people, start crumbling for 6-10, soak 100% of your time for 11-14 people just managing while you despair you can't do technical work any more, and become an incredible way to burn out people at 15+ direct reports.
As long as we are throwing out anecdotes, I've been doing this for 3 years and have seen successfully done it on several teams, though they were all at the same company. It absolutely can be done with the right culture.
> Instead you can spend 20% time doing management tasks and 80% time coding.
If you're that good at delegating that you're only using 20% of your time and your team is humming along at a high level... congrats, we've got these other four teams that AREN'T being managed that well, you're now the senior manager in charge of all of them, please get those other managers up to your level too!
Where do you work? Sign me up! I have hardly any time to code after weekly sprint-related ceremonies, 1:1's, cycle planning, and architecture and code reviews.
The job of management, like the job of any developer, varies from company to company, and situation to situation. Thankfully, the people side of my job as a manager is easy right now, but only because the people I manage are reasonable people to work with, and well receptive to feedback. It was very difficult last year when I had to work through more delicate relationships between the employee and employer. As always, it comes down to people.
It also sounds like the place you may be managing at may not be challenging enough for you. Perhaps it's time to make a change?
It all becomes a bunch of soft targets as a manager and that's really hard.
The one big success I had when I was a manager was getting our client teams to unify on the bugs they were having and to be much more cohesive. When I first got there the android and ios and web people never talked and refused to believe they had the same types of issues/bugs. LOL.
I ultimately hated it because really... I don't want to yell at people for being late to standup, so went back to engineering.
I've been a manager for a while and at best I get 20% time to code. With 8+ reports the weeks tends to break down into:
* 20% for 1-on-1s and dealing with management level issues people bring up.
* 20% spent on hiring
* 20% on various status meetings (team, cross-team, with my boss, etc.)
* 20% spent on pro-actively finding or solving issues before the explode. This includes networking with my counterparts in the rest of the org so I get information and build political capital.
I'm an engineering manager and find it hard to relate to this. With 1:1s, ops reviews, planning, retros, design reviews, support syncs, etc., I have ~6-10 hours of meetings per day - then for non-meeting work I'm writing roadmaps, interviewing, managing escalations, doing project management, status reports, etc. How do you have 80% of your time free as a manager after this? I think that makes sense to code if you have that time, but my experience is that having that much time available as a manager would be an outlier.
As an EM, 20% of time spent on project management sounds about right. What you are overlooking is the time spent managing the people on a team. Hiring, recruiting, promotions, coordinating parental leave, working out visas with immigration attorneys, check ins, comp adjustments, etc all take immense time and energy to do properly. It’s a full time job and then some.
There was a post on HN few months back where the author listed atleast 30 tasks that a manager should be doing. The list included planning, mentorship, motivating team, hiring, communicating to higher management etc. It was a long list. I don't thing any person doing those task can also be a competent programmer.