There's an interesting tension in programming teams, between having too much management and not enough.
Anarchie doesn't really work when you are trying to build a complex system, and it takes an exceptionally talented and well balanced group of programmers to spontaneously form themselves into a productive, non hierarchical group. Not for nothing has managing programmers been likened to herding cats...
So ok, loath though we are to admit it, we do need to be managed. But hierarchy, in itself, isn't management. Standards, procedures, methodologies, are not management. Dictat from on high isn't management.
Sure, it helps to be organised. Of course, having a common approach is important. Certainly, splitting a big problem into smaller ones, a large team into smaller units, is a sensible approach in all walks of life.
The glue, however, the key ingredient, the thing that holds it all together, is communication. For me, promoting and enabling good communication is the true role of the manager. Helping to refine the different ideas, resolve conflicting ideas, and forge a common vision is important. Dissemenating that vision to the team, keeping it alive and evolving, is vital.
technorati tags: programming, management