Agile Zone is brought to you in partnership with:

Jurgen Appelo calls himself a creative networker. But sometimes he's a writer, speaker, trainer, entrepreneur, illustrator, manager, blogger, reader, dreamer, leader, freethinker, or… Dutch guy. Since 2008 Jurgen writes a popular blog at, covering the creative economy, agile management, and personal development. He is the author of the book Management 3.0, which describes the role of the manager in agile organizations. And he wrote the little book How to Change the World, which describes a supermodel for change management. Jurgen is CEO of the business network Happy Melly, and co-founder of the Agile Lean Europe network and the Stoos Network. He is also a speaker who is regularly invited to talk at business seminars and conferences around the world. After studying Software Engineering at the Delft University of Technology, and earning his Master’s degree in 1994, Jurgen Appelo has busied himself starting up and leading a variety of Dutch businesses, always in the position of team leader, manager, or executive. Jurgen has experience in leading a horde of 100 software developers, development managers, project managers, business consultants, service managers, and kangaroos, some of which he hired accidentally. Nowadays he works full-time managing the Happy Melly ecosystem, developing innovative courseware, books, and other types of original content. But sometimes Jurgen puts it all aside to spend time on his ever-growing collection of science fiction and fantasy literature, which he stacks in a self-designed book case. It is 4 meters high. Jurgen lives in Rotterdam (The Netherlands) -- and in Brussels (Belgium) -- with his partner Raoul. He has two kids, and an imaginary hamster called George. Jurgen has posted 145 posts at DZone. You can read more from them at their website. View Full User Profile

Nonlinear Software Projects

  • submit to reddit

Nonlinear systems, like software projects, are complex because causes and effects are not easily distinguished.

Complex systems are called complex because these systems typically harbor multiple nonlinear chains of cause and effect. This is why the behavior of software teams is so hard to analyze and predict. A causal loop diagram (CLD) of a software project typically looks like a bowl of spaghetti with meatballs on a trampoline.

Reinforcing feedback loops

In a causal loop diagram we identify a reinforcing feedback loop (sometimes called positive feedback) when cause and effect are circular and an effect strengthens its own cause. For example, the low productivity of a team reinforces itself through low customer satisfaction, and low team motivation. In a CLD a reinforcing feedback loop is sometimes identified with a picture of a snowball.


Stabilizing feedback loops

We identify a stabilizing feedback loop (sometimes called negative feedback) when the effect weakens its own cause. For example, when a business really needs to fight for survival, there is an increased chance that people put in extra hours (temporarily increasing productivity), customers are dropped (decreasing pressure), or radical changes are implemented (driving business improvement). In a CLD a stabilizing feedback loop is sometimes identified with a picture of a seesaw.


Note: If a business survives despite all kinds of reinforcing feedback loops, as described in Story of a (Fictional) Doomed Software Business, then there must be at least one unidentified stabilizing feedback loop in the system.

Opposing effects

Sometimes a cause has multiple opposing effects. For example, the threat of decreased revenues might increase the pressure by management on their software teams to improve. But at the same time it decreases the time and money available for such improvements.


Multiple causes

Sometimes an effect has multiple causes. For example, low productivity of team members can be caused by low motivation, bad skills, bad discipline, and much more. If you try to find just one “root cause” in a team with low productivity you might be oversimplifying the situation.


Separation in time

And sometimes there is a separation in time between a cause and its effect (indicated with two dashes in the middle of an arrow). For example, investment in education should lead to improved skills of team members. But in most cases it will take a while for such effects to be realized.


Nonlinear systems, like software projects, are complex because there are multiple reinforcing and stabilizing feedback loops, multiple causes per effect and multiple effects per cause. If you intend to take control over a messy system, you will find it hard to determine how causes and effects relate to each other. It might be easier to untangle the spaghetti from your trampoline.

This text is an excerpt from the Agile Management course, available from March 2011 in various countries.

Published at DZone with permission of its author, Jurgen Appelo. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)