Interesting view of Managers
management is just an annoying, mundane chore someone has to do so that the smart people can get their work done. Think of an academic department at a university, where being the chairperson of the department is actually something of a burden that nobody really wants to do; they’d much rather be doing research. That’s the Silicon Valley style of management. Managers exist to get furniture out of the way so the real talent can do brilliant work.
It’s an interesting way saying that managers should exist to facilitate and not decide (technical issues).
Everyone is familiar with the PHB. However not all managers are like the PHB. As a technical person who has recently become a manager, I am certainly biased. With that in mind, yes, one of the important jobs of a manager is to facilitate discussions on technical issues. However managers do and should make decisions, including (possibly) technical ones. Ultimately the manager is *responsible* to his or her superiors for the team’s success or failure, which means that they carry the can (they basically act as an umbrella to prevent poop from falling on the team from above). Good managers make decisions and take responsibility for the consequences of those decisions. Bad managers avoid making decisions, or take decisions and then avoid the consequences when the decisions are wrong. If there is a designated technical lead on the team (in itself a managerial position), then that person will normally own technical decisions instead. But it comes to the same thing. This is not to deny that great teams are self-organising — they can and should be, and one of the other jobs of management is (as Joel points out) to get all the impediments out of the way of the team so they can function at their best. But when it comes to the high-level technical decisions, there are many where there is no immediately obvious “right” answer — in that case, the manager will take account of the various risks inherent in the possible options, make a judgement call, and own it. This is in itself a way of removing impediments from the team.
I don’t necessarily disagree with you, however, I have to ask why it is that managers cannot take the decisions made by their team to the client and own those decisions as their own?
I think a managers role is to be more of a proxy between the rest of their team and the client (or the people above them). They stop the crap coming and going in both directions. A manager is the one who stops a teammate from going and yelling at that stupid VP and they are the ones that stop that VP from doing the same.
I also disagree that the manager bares the responsibility of the success of the project. They share a piece of it. The rest of the team share pieces as well. This means that when the project succeeds, it is the entire team that receives the praise and rewards, not just the manager.
I also think that in those cases where there is no “right” answer (when is there ever a “right” answer?) that it is the managers job to act as that proxy again and give the team the space it needs to find the best answer. Ultimately though, it has to be the team’s solution.
With all that being said, I still think there is plenty of room for managers to make decisions; staffing, priorities, time and meeting management, IPMs and retrospectives (i.e., all the people stuff) are areas that the rest of the team shouldn’t have to worry about and fall into the domain of management. Technical decisions should be left out though.
As for the role of Tech Lead, I agree, this is a management role; however, the tech lead is still a dev in the sense that they had better still be involved everyday in the creation of code. This means that any tech decisions that they make, they have to code with and live with. From one point of view (the dev’s) they have earned the right to make technical decisions.
They code everyday, they understand the technical issues and they understand and live with the consequences of the decisions they make. A good tech lead will delegate most of the decision down to the rest of the team and make it a team decision. That way the team owns the decision and its results.
I think to sum this up, what I am trying to say is that technical decisions needs to be explored and made and owned by the whole team. It is the managers job to defend those decisions to their superiors, but not to make them.
I sit on the side of the fence where the manager should make technical decisions. In the event the team cannot make a decision a lead from another team should be brought in to make the final decision.
“It is the managers job to defend those decisions to their superiors, but not to make them.”
That is a great way to sum it up.
“I don’t necessarily disagree with you, however, I have to ask why it is that managers cannot take the decisions made by their team to the client and own those decisions as their own?”
A good manager will own this decision, even if it was a bad decision.