Skip to content

The 2nd Law of Software Development

November 11, 2008 by JurgenAppelo

Edgeofchaos In a previous blog post I wrote about the 1st Law of Software Development. This law deals with each manager’s concern to make sure that team members have the motivation to do their jobs well. But, for a job well done, their motivation alone is not enough! (I might be motivated to work in the middle of the night, but if I'm not allowed to, then what is my motivation good for?) In creative and productive organizations people require the power to do what is needed, so they can achieve the results their managers have asked for.

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 empowerment and 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.

Comments

The best way to motivate

November 12, 2008 by Anonymous (not verified), 1 year 12 weeks ago
Comment id: 1987

The best way to motivate people nowadays is through good management promotions, respect in general and appreciation, money and good conditions.

When the salary is not following and the expectations are too high, the developer is forced to write unit tests for anything, nothing is changing, if the developer is good and intelligent, he will leave.

Saying all the time "Yeah good job" or applying blindly what is inside books doesn't motivate anyone, especially if the employee is more educated than the manager.

Got it slightly backwards

November 12, 2008 by Paul Davis (not verified), 1 year 12 weeks ago
Comment id: 1988

I think you need to reverse the two laws.

I often notice that when people are empowered and obstacles removed, they tend to be very self motivated. They places I've worked where the average motivation is the highest are the places where people are the most empowered.

If it's a development shop let devs choose their own operating system and development environment. Give them the tools and software they need. Don't tell them what can't be done. Keep as much administrative overhead away from them. Give 'em plenty of coffee.
Do this, and I think you'll find the motivation takes care of itself.

Not backwards

November 12, 2008 by JurgenAppelo, 1 year 12 weeks ago
Comment id: 1989

Paul, the 2 "laws" are not intended to be sequential. They both must always be true and always at the same time. Of course, I agree one has impact on the other. Though empowerment is just one way of motivating (some) people. I also know a few people who are *not* motivated by empowerment.

The burden vs. freedom of choices

November 12, 2008 by Rob Whelan (not verified), 1 year 12 weeks ago
Comment id: 1990

Agreed on the tricky balancing act the manager must pull off.

Giving each team member the choice in everything can be counterproductive -- it depends on the developer. You can tell one person they should decide which development tools, methods, and work environment, all of those complicated choices might pull them into exhaustive research and experimentation while the actual work goes undone... and choices can be stressful. You might tell another developer the same things, and they will be overjoyed and immediately more productive, because they have a favorite tool that wasn't "on the list", or the lead developer set up a far-too-restrictive coding standard, etc. etc..

Respect is probably the most important thing; you need to build and maintain a relationship that's solid enough that you can talk through how a developer is spending their time and help them tweak it without them feeling a need to be defensive or secretive.

Complex organizations

November 12, 2008 by Ilja Preuss (not verified), 1 year 12 weeks ago
Comment id: 1992

I think the notion that in a complex organization, there is a balance between self-organization and control is too simplistic.

The important thing is that there is *a different kind of control*. Instead of making sure that people do the work they are supposed to do, leaders ensure that people know about the goal of the project, know about the boundaries they can work in, and that the right people work together.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <b> <i> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <br> <blockquote>
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.
  • You can enable syntax highlighting of source code with the following tags: <code>, <blockcode>. Beside the tag style "<foo>" it is also possible to use "[foo]".

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters (without spaces) shown in the image.

Best of AgileSoftwareDevelopment.com