I have been reading a bunch of books recently and just found Peter M. Senge. He is a champoin of Systems Thinking. I have finsihed the Dance of Change and am about halfway through The Fifth Discipline. There is a passage in The Fifth Discipline that just screamed agile at me:
Many feedback processes contain “delays”, interruptions in the flow of influence which make the consequences of actions occur gradually. Delays are interruptions between actions and their consequences. Delays can make you badly overshoot your mark, or they can have a positive effect if you recognize them and work with them. Delays exist everywhere in business systems. We invest now, to reap a benefit in the distant future; we hire a person today but it may be months before he or she is fully productive. But delays are often unappreciated and can lead to instability or even breakdown, especially when they are long. Adjusting the shower temperature, for instance, is far more difficult when there is a ten-second delay before the water temperature adjusts, then when the delay takes only a second or two. During the ten seconds after you turn up the heat, the water remains cold. You receive no response to your action; so you perceive that your act has had no effect. You respond by continuing to turn up the heat. When the hot water finally arrives, it is too hot and you turn back; and after another delay, it’s frigid again. Each cycle of adjustments in the balancing loop compensates somewhat for the cycle before (see figure 4).
Figure 4: A balancing feedback including a delay and its consequences
This is the type of mental model I have for TDD and CI, well all of agile really. I wish patterns had a heaping dose of Systems Thinking. Organizational Patterns of Agile Software Development and Software Configuration Management Patterns: Effective Teamwork, Practical Integration both could have benifted greatly from Peter Senge’s perspective. Peter talks about the need for a new language to discuss and truly understand systemic structures.
Language has a subtle, yet powerful effect on the way we view the world. English, like most other Western languages, is linear—its basic sentence construction, noun-verb-noun, translates into a worldview of “x causes y.” This linearity predisposes us to focus on one-way relationships rather than circular or mutually causative ones, where x influences y, and y in turn influences x. Unfortunately, many of the most vexing problems confronting managers and corporations today are caused by a web of tightly interconnected circular relationships. To enhance our understanding and communication of such problems, we need a language more naturally suited to the task.
I am sure that I will be a much more effective communicator of agile once I have mastered Systems Thinking. I can’t what to be able to successfuly convey how the combination of individual agile practices have a greater effect than their sum. I can’t even do that for my rational self, my intuision tells me that it is so. It also tells me that the answer to CI’s PendingHead lies in Systems Thinking.