The Independent Magazine
for Software Developers
Books Articles Blogs Subscribe d.* Gear About Home

The Diagram of Effects

Published June 12, 2005

Editor's note: this brief article explains the basic concepts behind the Diagram of Effects technique. It is intended as a supplement to more detailed articles that show these diagrams in action. "How Did This Happen?" also by Donald E. Gray, is a good example.

Software development managers seldom face linear cause-and-effect problems. Instead the problems have inter-related components with feedback loops between the components and time delays between when actions happen and when the effect is noticed. General systems thinking addresses this type of problem. General systems thinkers have developed the diagram of effects to bring the structure of these problems into view.

The diagram of effects consists of these objects:

  • Variables or nodes. For measurable quantities we use clouds. The quantities may not be measured, but could be if it were worth the cost. For actual quantities we use ellipses.
  • Arrows between nodes indicate a relationship between the variables. The A node has an effect on the B node.
  • The direction of the effect of A on B is indicated by the presence or absence of a gray dot. No dot means as A moves in a direction, B moves in the same direction. A dot on the arrow means that as A moves in one direction, B moves in the opposite direction.

Figure 1: Diagram of a Balancing System

The diagram in Figure 1 describes a system that:

As "A" increases, "B" decreases. As "B" decreases, "A" decreases. This is a balancing system and will stabilize. Consider also Figure 2.

Figure 2: Diagram of a Self-Reinforcing System

The diagram in Figure 2 describes as a system that:

As "A" increases, "B" increases. As "B" increases, "A" increases. This is a self-reinforcing system, and will continue to grow (or decline) until some other system limit comes into play and ends the self-reinforcing action.

There are many books available on systems thinking. The best one for relating software management to systems thinking is Quality Software Management, Vol 1: Systems Thinking by Gerald M. Weinberg. QSM 1 introduces more diagramming options such as delays and how to diagram human intervention points. A good general reference is Systems Thinking Basics: From Concepts to Causal Loops by Virginia Anderson and Lauren Johnson.

For a quarter century, Donald E. Gray has worked in applied cybernetics, starting in machine and process automation and migrating to organizational systems and change. His major areas of interest are cognition, modeling, and understanding system change. His work focuses on integrating people, projects, and processes. He is a host for the Amplifying Your Effectiveness conference. Visit his website at
RSS Feeds
Software Engineering Articles and Essays Feed Icon
Software Engineering Blogs Feed Icon
Our newsletter policy:
No list sharing of any kind.
No "special offers" from "partners."
No "webinars." No "Special Reports."
No junk.
New developer.* Shirts & Accessories
A Jolt Award Finalist!
Software Creativity 2.0
Foreword by Tom DeMarco
Web developer.*

All content copyright ©2000-2006 by the individual specified authors (and where not specified, copyright by Read Media, LLC). Reprint or redistribute only with written permission from the author and/or developer.*.