The 1st Law of Software Development = Motivate People The 2nd Law of Software Development = Empower People
Three Kinds of Organizations In ordered organizations, most people have only very little power to organize their own jobs. It’s their managers who make all the decisions. (The military comes to mind, and just about any other branche of the government…) In chaotic organizations it’s the other way around. People can simply empower themselves to do whatever they want. (I’ve noticed some Internet start-ups belonging in this category, and next door's kindergarten as well.) Complex organizations find themselves right in between. They are partially controlled organizations. In a complex organization, people should not be able to empower themselves. They are empowered by managers. And it's them that face the challenge of finding the perfect balance between empowermentand authority, between self-organization and control.
Balancing Self-Organization and Control In natural ecosystems this balance is achieved all the time, as it is part of evolution. Too much central control in an organism would make it neither flexible nor robust, while too little central control would make the organism’s inner systems too chaotic. (For example: my mind can control my limbs and my breathing, but it cannot directly control my heartbeat, my digestive system, or my immune system. Though I'm quite fortunate it is able to control my libido.) The mechanism of survival of the fittest makes sure that only organisms with the right balance of self-organization and control have a chance to survive in the harsh reality of biological ecosystems.
The Edge of Chaos In complexity theory this balance is called the edge of chaos. It is at this edge between chaos and order, between empowerment and authority, where complex systems find their greatest creativity and productivity. But development managers have a really hard time, as they have to do this balancing act fully on their own! (Trust me, I know this from personal experience.) If they are too rigid in their management styles, their organizations have a hard time coping with ever-changing business environments. And if they are too easy-going, their organizations will hardly be able to find a proper direction and to avoid the dangers down the road.
Do you allow your team members to choose their own tools?
Can they select their own development method?
Do you enable them to select their own fellow team members?
Are they allowed to work anywhere they want?
These are questions of the utmost importance, but I'm afraid there are no right or wrong answers. It all depends on the rest of the complex dynamics in an organization. The empowerment of people is the balancing act of delegating as much control as possible, but just enough not to fall over the edge of chaos.
It's the manager's job to find out where that edge is… blindfolded.