I got a lot of joy out of helping everybody develop, find their groove and helping them coordinate and learn from each other.
The business demands I was shielding them from were extremely stressful though. A million things that everybody wanted done yesterday in wildly different directions.
At some point in trying to make concessions on the business side I started losing the support of a couple of senior guys on the team though. After a couple of months it was pretty clear there was no getting that confidence back. When the demands from both sides became too high to resolve, I didn’t have any choice but to move on. Really frustrating too because I gave so much to that job and team, but you can tell when you’ve lost people and there’s no easy fix like refactoring the code to make it all better.
As a manager, trust is the only thing that allows you to be effective; when your team knows that you are really looking out for them.
you kind of have to do this. idk how I could function effectively if I didn't have a reason to be looking at the code all the time.
Even if the manager specifically says "Hey everyone, give me some feedback. Be open and honest" - That's a trap. No one will ever actually do that, because if you bruise your manager's ego, they have the power to make your life a living hell.
As someone who has worked with managers who did tried to get too involved in projects, they just become a dictator. Since the manager will play an oversight role in the project, any small issues will be visible to them at all times. Normally, the team could work out small roadblocks on their own to keep stress low. If the manager is involved, they'll often try to "make themselves useful" and slow things down. Let's not even mention manager statements like "Hey guys, let's keep a note of this so we can work on restructuring our processes in case this happens in the future"... (Because everyone loves redrafting SOPs every 2 months, right?).
A good manager is one that stays out of the way and lets you do your job. Having a manager on a project kinda feels like that episode of The Office when Michael comes to Jim's party and everyone was just kinda standing around awkwardly.
1) I pick what I'm going to work on after the rest of the team picks their tickets.
2) I fix one bug per day, not matter what.
3) HIPPO (HIghest Paid Person's Opinion) is not an acceptable reason to make a decision.
It's worked well for me, your milage may vary.
Then I'll never know how to make things better. It's dysfunctional when you can't communicate safely and equally dysfunctional when problems are hidden for fear of a manager's ego.
If you cross the barrier the people in your team will be put under pressure having to do things like for example disagreeing with technical decision or debating something in a code review with... the same person that has the power to promote or fire them.
It creates a power gradient in every day activities.
That's "stealth" micromanagement regardless of the good intentions and technical skills of the manager.
Of the best managers I've worked for, one of the most obviously important things they did was keep other teams off our backs. Constant interruptions, shifting priorities, "just a quick question", and the like do more to destroy a team and its progress than anything else. Their name doesn't get attached to lines of code or completed items but a lot more things get completed as a result.
Do they need to be the one with hiring/firing/promotion/rewards authority? I don't know.
It was what it was, and it is what it is.
I just wrote about my own experience, and my own feelings about that experience, as opposed to rendering judgment (look through my posting history, here, and you’ll find very little judgment of others. I am too old and tired to fight. I have better things to do with my time, other than TCP/IP posturing).
1) reading emails. These emails generally consist of a few categories of things — stuff I need to be informed about, questions, asks for permission (a special form of question), documents (generally decision and decision docs, or stuff from Product), and meeting requests.
2) meetings. These meetings generally consist of stuff that couldn’t be handled over email, but is a lot of the same stuff. It’s also status updates, not from my staff, but with my peers. 1:1s and staff meeting (mine and my manager’s) are the balance.
3) There is no 3. Really, it’s a full time job to do 1 and 2. Every now and then I will carve out some time to write a document myself, but in general that gets delegated because I will do it more slowly than someone who doesn’t have a pile of time-sensitive email and meetings to deal with.
Oh I forgot - we give the people who do this control over the employment of the people who do the actual work. Very weird system.
> And yet one that billions of people participate in.
Most of humanity participated in slavery for a long time as well. A lot of Europe's city dwellers enjoyed watching the hanging of criminals at dawn or sun-down, too. People also developed the mass habit of accusing a neighbor they don't like for being a witch and were hoping to have them burned (because the neighbor's chicken pecked your watermelon seeds or whatever; yeah, people are that petty).
Appealing to statistics and what the majority does is missing the point of the big power imbalances that are sadly one of the constants in every human society or system.
It doesn't help that many programmers are rather introverted and prefer passive resistance as opposed to having a good and informative one-on-one meeting, of course. And many managers are stuck in the unenviable position of having to develop skills to extract valuable actionable info from introverted people who prefer to sabotage them behind their backs. I recognize that and I sympathize.
But the inconvenient truth is, and one many managers forget about all the time, is that most of us have zero decision power -- which is quite the shame because we need it in no small amount of situations.
Formulas like Scrum (or anything "agile" really) are a complete and pathetic joke. The process must adapt to the task at hand. The best performing teams I've been in had zero process -- they only had some 10-15 ground rules like "if you are stuck for more than a day please raise the issue with the rest of the team; nobody will think you're stupid, we'll only try to unblock you". Whatever needed to be done, we used our own breed of process that best served it. On the rare occasions Scrum was actually useful btw. Most of the time the schema was more or less "enable your ICs, actively seek to unblock them, then leave them the hell alone, they know what they're doing".
You alluded to (in another comment) that you don't make the decisions; that you facilitate the people to arrive at the right decision. Kudos to you but you should still recognize that you're the minority, sadly.
Most programmers are forced to work with managers whose ego is easily bruised. That's a fact of life, one that can't be fixed by going to another job because the odds are at least 90% that it will be the same there as well.
So yeah, there are problems on both sides, that's unquestionable. I mostly went on to rant about how appealing to statistics is a poor strategy to evaluate if a given system is good (which doesn't at all explain how many companies started getting more bang for their buck after they moved to a 4-day working week btw; among other examples).
It’s quite simple - you as a manager can only do the work of one IC but your are responsible for multiple ICs. If they sit idle, make the wrong decisions, are demoralized or leave the company, you hurt the org much more than help by technical contributions yourself.
I’d put the cutoff at about a team of 6. Below 6 you can do technical work yourself, above 6 you’re better off taking care of your team.
[1] This business jargon term has seriously got to go. It's bullshit and oddly demeaning.