It is well-known that difficult goals are best achieved when people work in small teams of under ten people. Various agile methods were created based on this principle. Communication in teams is optimal when the lines are short. But that doesn't tell you how to structure an organization with hundreds or thousands of people. The solution of simply dividing them into many small teams is clearly insufficient. How do all these teams fit into a bigger picture?
How do you align many teams to work towards a common goal?
Management hierarchies seem to be a necessary evil. In this blog post I will not waste time on bashing such hierarchies. Everybody already knows that management hierarchies have a bad influence on information flow. (You can read Malcolm Gladwell's book Outliers, and see that there is a strong correlation between plane crashes and hierarchical cultures.) Of course, that doesn't mean that we should not have managers. As I discussed in earlier posts, some people are needed to point dozens of teams in a proper direction. (And I need to have something to do, besides blogging, and sipping tea.)
Let's see what my requirements for an ideal organizational structure would be:
Every person in the organization is part of a team. Nobody is responsible for doing something on their own;
All teams are cross-functional, meaning that they are formed around (sub)goals, not around expertise;
Every person is managed by a functional manager who has full understanding of the type of work being done;
Finally, any emerging hierarchy should be as flat as possible. The fewer steps from top to bottom, the better.
What would such an organization look like?
Well, that depends on how you solve the subordinate-manager relationship. Basically, there are two main options (with some small variations that I'm going to ignore for now):
One boss is assigned to the team, and manages all members of the team. The boss is part of the team, though he could be managing the team from a distance. This is the traditional department-with-a-boss solution.
Several bosses are assigned to the same team, and each manages only some of the team members. The bosses are not part of the team themselves, they are all managing from a distance. This is the modern matrix management solution.
Some people claim that option 1 is the optimal solution, because it keeps communication lines between team members and their functional manager short. When the functional manager is part of the team, he knows all that's going on, which is clearly not the case with option 2, where it takes a manager more effort to understand what's going on inside the teams. It is also said that the matrix management solution of option 2 can lead to conflicts between the functional managers who are managing people in the same team. And it can also lead to conflicts between functional managers and informal team leaders, or project managers within the team.
Still, I believe option 2 is better than option 1. Here's why…
This is a picture of option 1:
The picture shows you a situation where every team has a functional manager inside the team (level 5+6). But who is managing the managers? Well, that will be other managers operating from within their own teams. And those teams have their own manager as well, inside the team (level 3+4). The top level is the company's management team, which also has a boss inside the team (level 1+2).
In the example above, where people are organized in teams, and each team has its own boss inside the team, you end up with a 6-level hierarchy.
Now let's see a picture of option 2:
This picture shows you that there is no boss inside the teams. Instead, each team member is managed by someone in another team, one level higher. No functional manager is part of the teams of his subordinates. In fact, each manager can manage people in several teams, while each team itself can have a project manager or informal team leader. But the project managers and/or team leaders are just "first among equals". They are not functional managers. They are nobody's boss. The team at level 1 is giving direction to the teams at level 2, and they in turn are giving direction to the teams at level 3.
In this example, when the boss is not inside the team, you end up with a 3-level hierarchy!
As Chief Information Officer of our company I have just two concerns: optimal communication, and nice tea. A 3-level hierarchy is much better than a 6-level hierarchy. Therefore, option 2 is my preferred solution. Of course, I understand that matrix management can bring some (small) risks, but I think these can easily be managed. And I'm only painting an ideal picture here. Compromises may be necessary, depending on the situation.
I also know that several other options for organizational structure are available, but I'm sure they all break one or more of the four requirements I listed earlier. So I will happily ignore them, while pouring myself another cup of sweet Darjeeling.