<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Integrating People, Projects, Processes &#187; systems thinking</title>
	<atom:link href="http://www.donaldegray.com/tag/systems-thinking/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.donaldegray.com</link>
	<description>Donald E. Gray</description>
	<lastBuildDate>Wed, 11 Aug 2010 03:18:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Boomerang Measurements</title>
		<link>http://www.donaldegray.com/boomerang-measurements/</link>
		<comments>http://www.donaldegray.com/boomerang-measurements/#comments</comments>
		<pubDate>Wed, 06 Aug 2008 19:52:58 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[improving processes]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/boomerang-measurements/</guid>
		<description><![CDATA[You can tell a lot from how a story starts. If you hear &#8220;Once upon a time &#8230;&#8221; you&#8217;ll probably hear a fairy tale like &#8220;The Three Little Pigs&#8221; or &#8220;The Little Red Hen&#8221;. Around camp fires, kayakers like to tell stories that begin with &#8220;No kidding, there I was &#8230;&#8221; and a tale of heart thumping excitement and harrowing escapades of misfortune or lucky escape. In software development stories often begin (or end) with &#8220;I&#8217;m serious. You can&#8217;t make up stuff like this.&#8221;1 I]]></description>
			<content:encoded><![CDATA[<p>You can tell a lot from how a story starts. If you hear &#8220;Once upon a time &#8230;&#8221; you&#8217;ll probably hear a fairy tale like &#8220;The Three Little Pigs&#8221; or &#8220;The Little Red Hen&#8221;. Around camp fires, kayakers like to tell stories that begin with &#8220;No kidding, there I was &#8230;&#8221; and a tale of heart thumping excitement and harrowing escapades of misfortune or lucky escape. In software development stories often begin (or end) with &#8220;I&#8217;m serious. You can&#8217;t make up stuff like this.&#8221;<sup>1</sup></p>
<p>I was flipping through an old work note book and came across the following story.</p>
<p>I spent three days working with a client who had adopted Scrum for project management about six months earlier. On the fourth day I attended a Sprint planning two (user stories to task with time estimates) meeting. As we talked about stories and sizes, George asked the following question. &#8220;How do we deal with work that is too big to finish in a sprint?&#8221; In all my time coaching teams, I haven&#8217;t found a user story so large that it couldn&#8217;t be done in a sprint. If there is such a story, it usually an epic that can be further divided into smaller stories.</p>
<p>Wanting to be helpful I said, &#8220;Well, split the story into smaller stories.&#8221; Mentally allowing that I haven&#8217;t seen all the possible user stories in the world (and there /MIGHT/ be one story so large it couldn&#8217;t be finished in a sprint, I continued &#8230; &#8220;If that doesn&#8217;t work, pull the work into the sprint and burn down as much as possible. You don&#8217;t get velocity points, but if the backlog is properly ordered you&#8217;ll have work done for the start of the next sprint.&#8221; Hoping to point to some future perfect day where the team was burning down faster than anticipated I added, &#8220;It&#8217;s just like when the sprint burns down faster than estimated. You pick the next story from the Product Backlog and start work on it.&#8221;</p>
<p>George replied &#8220;We&#8217;d never do that. We get graded on how well we complete our stories. If we have unfinished work it counts against us.&#8221;</p>
<p><strong>The Fundamental Software Development Process</strong></p>
<p>The fundamental software development process looks like:</p>
<p style="text-align: center;"><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/GradingSprintsOpen.png"><img class="size-full wp-image-192 aligncenter" title="Fundamental Software Development Process" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/GradingSprintsOpen.png" alt="Fundamental Software Development Process" width="407" height="57" /></a></p>
<p>This system dynamics drawing<sup>2</sup> varies somewhat from the Diagram of Effects (aka Causal Loop Diagram) I often use by showing the stocks (levels) and flows (rates) associated with the development process. User stories flow into the Product Backlog. The team converts the user stories into Implemented Features at some rate (Velocity). By and large it&#8217;s how everyone develops software. Steps may have different names and take more time to complete (or not) but we take what user&#8217;s want and give them software that performs those actions.</p>
<p>An important aspect of the Fundamental Software Development Process involves recognizing it&#8217;s an open loop system and open loop systems are inherently stable. User stories come in as they will and become part of the Product Backlog. The team works at some natural development speed based on their abilities, the story complexity, and their intrinsic motivation. The Implemented Features accumulate and eventually the software gets released to the users. Based on the Product Backlog size (in story points) and the team&#8217;s velocity (in story points) it&#8217;s possible to calculate when the next releasable set of Implemented Features will be ready to go to the users.</p>
<p>But what if that date isn&#8217;t soon enough?<strong></strong></p>
<p><strong>Add Some Feedback</strong></p>
<p>The conversation with George happened my last day on site and I had meetings stacked the rest of the day. But on the flight home I started wondering, &#8220;Why would someone want to &#8216;grade&#8217; the teams on how well they completed the stories?&#8221; One answer is to build confidence in team&#8217;s velocity value. Another possible explanation would be a behavioral assumption that the developers tend to avoid work and a way to make sure the developers don&#8217;t shirk is to compare the sprint results with the estimates made during the sprint planning.</p>
<p>Whatever the reason for &#8220;grading&#8221; the sprints, the action of &#8220;grading&#8221; has created a feedback loop in the system. Adding feedback means taking a system output and sending that output (or some portion there of) back into the system input. I wrote about feedback control loops in <a href="http://donaldegray.com/a-multi-use-model/" target="_self">Multi-Use Model</a>. Feedback loops provide the opportunity for control, aiming the system at some new target such as a new delivery date. Unfortunately feedback also provokes instability in the system. Unless great care is taken, the system becomes dysfunctional at best and destructive at worst. The Fundamental Development Process now looks like:</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/GradingSprintsClosed.png"><img class="aligncenter size-full wp-image-193" title="Grading Sprint Results" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/GradingSprintsClosed.png" alt="Grading Sprint Results" width="407" height="198" /></a></p>
<p>The <a href="http://donaldegray.com/reverse-engineering-reality-part-1-reading-causal-loop-diagrams/">&#8220;split&#8221; rectangle</a> means management has a choice at this point. They can choose to &#8220;grade&#8221; sprint results or not. If the grading happens, the rest of the reinforcing loop happens. In a nutshell:</p>
<ul>
<li> Team members want to look good. I don&#8217;t know if &#8220;counts against us&#8221; includes performance evaluation, but it could.</li>
<li> Since the team wants to look good, they&#8217;re not likely to take risks. Not taking risks could mean:
<ol>
<li> Not bringing additional work if they finish early.</li>
<li>Inflating story points for user stories during estimating sessions.</li>
</ol>
</li>
<li> Since the team won&#8217;t take risks, measured velocity won&#8217;t decrease (and indeed may increase) while actual velocity (the rate of delivering implemented features) may decrease. As Robert Austin notes:</li>
</ul>
<div class="simplebox">Measurements often do not represent what they purport to represent, and they are able to be manipulated by those with vested interests in their outcomes.<sup>3</sup></div>
<h5 id="Boomerang_Measurement" class="showhide_heading">Boomerang Measurement</h5>
<p>I confess I&#8217;m doing a certain amount of mind reading now since I didn&#8217;t have a chance to talk with the person who decided grading the sprint results would be a &#8220;good thing&#8221;. But I can&#8217;t wrap my mind around the concept that they explicitly set out to slow the development process. But they did, we have another boomerang measurement.</p>
<p>Truth be told, I believe the person thought they were (are?) doing the best possible actions to help the developers be more efficient. I&#8217;m serious. You can&#8217;t make up stuff like this.</p>
<p>For more information on how management goes astray with measurements I recommend reading <span style="text-decoration: underline;">Measuring and Managing Performance in Organizations</span> by Robert Austin and <span style="text-decoration: underline;">Slack, Getting Past Burnout, Busywork, and the Myth of Total Efficiency</span> by Tom DeMarco.</p>
<p>Got an example of a boomerang measurement? Drop me a note.</p>
<p><sup>1</sup>I first heard this line from Jerry (Gerald M.) Weinberg<br />
<sup>2</sup>http://en.wikipedia.org/wiki/System_dynamics<br />
<sup>3</sup><span style="text-decoration: underline;">Measuring and Managing Performance in Organizations</span> Dorset House Publishing, ISBN 0-932633-36-6, page 38</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/boomerang-measurements/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Beating Brooks&#039; Law</title>
		<link>http://www.donaldegray.com/beating-brooks-law/</link>
		<comments>http://www.donaldegray.com/beating-brooks-law/#comments</comments>
		<pubDate>Tue, 29 Apr 2008 13:46:43 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CLD/DoE]]></category>
		<category><![CDATA[improving processes]]></category>
		<category><![CDATA[systems thinking]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://donaldegray.com/beating-brooks-law/</guid>
		<description><![CDATA[Joe Little does a marvelous job recruiting speakers for the Agile-Carolinas meetings. This month was no exception. Israel Gat from BMC Software discussed &#8220;Leading the Disruption&#8221;. This presentation focused on releases 2.3 and 2.4 of their distributed system management software. Near the presentation&#8217;s end Brooks&#8217; Law was mentioned and the question posed, &#8220;Does Brooks&#8217; Law still apply?&#8221; Adding manpower to a late project makes it later. &#8221;Brooks&#8217; Law&#8221; Why is it so? Jerry (Gerald M.) Weinberg chose to use Brook&#8217;s Law in Quality Software Management:]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.kittyhawkconsulting.com" target="_blank">Joe Little</a> does a marvelous job recruiting speakers for the <a href="http://http://agile-carolinas.pbwiki.com/" target="_blank">Agile-Carolinas</a> meetings. This month was no exception. Israel Gat from BMC Software discussed &#8220;Leading the Disruption&#8221;. This presentation focused on releases 2.3 and 2.4 of their distributed system management software. Near the presentation&#8217;s end Brooks&#8217; Law was mentioned and the question posed, &#8220;Does Brooks&#8217; Law still apply?&#8221;</p>
<div style="border: 1px solid black; padding: 1px; text-align: center;"><strong>Adding manpower to a late project makes it later.</strong> &#8221;Brooks&#8217; Law&#8221;</div>
<p><strong>Why is it so?</strong><br />
<a href="http://geraldmweinberg.com" target="_blank">Jerry (Gerald M.) Weinberg</a> chose to use Brook&#8217;s Law in <a href="http://www.dorsethouse.com/books/qsm1.html" target="_blank">Quality Software Management: Vol 1. Systems Thinking</a> to demonstrate non-linear feedback systems. Combining Fig 5-1 (page 78) and Fig 6-4 (page 93) gives us:</p>
<div id="attachment_187" class="wp-caption aligncenter" style="width: 411px"><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/BrooksLaw.png"><img class="size-full wp-image-187" title="BrooksLaw" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/BrooksLaw.png" alt="Brooks' Law" width="401" height="451" /></a><p class="wp-caption-text">Brooks&#39; Law</p></div>
<p>I describe how to read Diagram of Effects <a href="http://donaldegray.com/reverse-engineering-reality-part-1-reading-causal-loop-diagrams/"><span class="wiki">here</span></a>.</p>
<p>In essence adding manpower affects the system by:</p>
<ol>
<li> Creating more communication paths. The number of communication paths is n*(n-1) where n equals the number of team members. This says increasing from 4 to 6 members increases communication paths from 12 to 30.</li>
<li> Adding new team members creates a training load on the existing team members. This in turn reduces the productive work finished.</li>
</ol>
<p>These problems get exacerbated when managers decide to add &#8220;extra&#8221; manpower just to be sure the project doesn&#8217;t slip any more.</p>
<p><strong>Communications and Sharing Information</strong></p>
<p>Tools to support software development methods have changed since Brooks&#8217; Law was introduced. We now have <a href="http://www.ayeconference.com/wiki/scribble.cgi?read=InformationRadiator" target="_blank">information radiators</a> for sharing information in parallel. By simply walking around your office it&#8217;s possible to learn information about the project. Additionally wikis, build systems, source code management are types of <a href="http://www.ayeconference.com/wiki/scribble.cgi?read=InformationMagnet" target="_blank">information magnets</a>. They hold pertinent information that can be searched, sorted and reviewed.</p>
<p>There&#8217;s a sliding window of opportunity where manpower can be added to a project and not negatively impact the schedule. This window closes when the additional productivity achieved by adding more staff isn&#8217;t enough to offset the lost production due to training them. According to Israel Gat, BMC Software staffed the two releases with 80-95 developers compared to other companies who staffed similar sized projects with 25-35 developers. This staffing level resulted in product delivery in 4.5 &#8211; 5 months instead of over a year. This rapid delivery creates problems for the downstream organizational activities such as marketing, sales, revenue recognition and the back office. BMC Software recognizes this problem and is currently working on synchronizing the activities.<strong></strong></p>
<p><strong>How to Beat Brooks&#8217; Law</strong></p>
<p>The state that invokes Brooks&#8217; Law is &#8220;late&#8221;.  To beat Brooks&#8217; Law all you have to do is avoid having late projects. What are some ways to avoid late projects?</p>
<ul>
<li><strong> Staffing</strong> &#8211; BMC Software avoided late project delivery by aggressively staffing when they started the project.</li>
<li><strong> Cross functional teams</strong> &#8211; This keeps the project delivery from being derailed when something happens to a &#8220;key&#8221; developer.</li>
<li><strong> Incremental and iterative development</strong> &#8211; Customers rarely need all the new functionality at once. Delivering the highest value functions sooner relieves the pressure for a &#8220;big bang&#8221; delivery. The customer can decide to stop the project early if/when their needs get met.</li>
<li><strong> Fast feedback</strong> &#8211; This naturally flows from incremental and iterative development. Every two to four weeks the customer provides information on how well the development is doing at meeting the customer&#8217;s needs.</li>
<li><strong> Continuous Improvement</strong> &#8211; At the end of each delivery cycle, set aside time to learn from the cycle&#8217;s activities and events. What went well? What could be improved? Select something from the &#8220;What could be improved&#8221; list and work on it the next delivery cycle. Be sure to ask at the end, &#8220;Did we implement the improvement?&#8221; Some things take more than a single delivery cycle to get right.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/beating-brooks-law/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Quick Update</title>
		<link>http://www.donaldegray.com/a-quick-update/</link>
		<comments>http://www.donaldegray.com/a-quick-update/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 12:41:39 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[AYE Conference]]></category>
		<category><![CDATA[modeling]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/a-quick-update/</guid>
		<description><![CDATA[A quick update on systems thinking items:]]></description>
			<content:encoded><![CDATA[<p>A quick update on systems thinking items:</p>
<p>1. The <a href="http://www.ayeconference.com/Schedule.html" target="_blank">AYE Conference schedule</a> contains several sessions involving systems thinking. Two sessions, <a href="http://www.ayeconference.com/wiki/scribble.cgi?read=SessionSeven010" target="_blank">Experience the Diagram of Effects</a> and <a href="http://www.ayeconference.com/wiki/scribble.cgi?read=SessionSeven037" target="_blank">General Systems Thinking</a> obviously involve systems thinking. Several other sessions will include systems thinking principles, without necessarily naming them as such.</p>
<p><span style="color: blue;"><span style="color: #000000;">You can receive emails about the conference b</span><span style="color: #000000;">y</span> <a href="http://www.ayeconference.com/signup/i" target="_blank">signing up here</a></span></p>
<p>2. I recently received an email related to <a href="http://donaldegray.com/force-ranking-force-dynamics/" target="_blank">Force Ranking</a>. It said &#8230; &#8220;I am currently working at [a company] for few yrs, and yes, I am suffering in the &#8220;forced ranking&#8221; system. After 1.5 yr from your article which talked about forced ranking,  today is 2007- 5 &#8211; 27, our team is breaking down into a mess, ppl started to protect themselves, fighting each other rather than helping each other;  poor management team  : political competitions happen anytime anyday, and kissing boss&#8217;s ass will get a better position;  The [company] stock price drops, always hear the rumour of [larger company in Redmond] will buy [our company]. Our so-called &#8220;innovations process&#8221; never reached the outstanding result as [a competing company], it is just a way for ppl to getting a better KPI (annual review), to avoid falling into the bottom 10%. Let&#8217;s see how/what [this company] will turn to be&#8230;u bet?</p>
<p>I have a pretty good idea how this is going to turn out. Maybe not soon, but if the system forces don&#8217;t change, it&#8217;s only a matter of time.</p>
<p>3. In <a href="http://donaldegray.com/multi-use-models/" target="_blank">Multi-use Models</a> I mention how the feedback control loop model can be used for personal problem solving. I used the example of losing weight. It works! I&#8217;ve lost 30 pounds since I wrote the blog entry. Another 4.5 kilos and I&#8217;ll be at my goal.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/a-quick-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Multi-use Model</title>
		<link>http://www.donaldegray.com/a-multi-use-model/</link>
		<comments>http://www.donaldegray.com/a-multi-use-model/#comments</comments>
		<pubDate>Wed, 21 Mar 2007 14:48:29 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Article]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/?p=178</guid>
		<description><![CDATA[Models are like kitchen utensils. You need a variety of them, and you should know when and how to use them. They should be useful for more than a single task. I recently started exploring the first explicit model I learned years ago.]]></description>
			<content:encoded><![CDATA[<p>© Don Gray 2007, 2010</p>
<p>Models are like kitchen utensils. You need a variety of them, and you should know when and how to use them. They should be useful for more than a single task. I recently started exploring the first explicit model I learned years ago.</p>
<p><strong>The Cybernetic Model</strong></p>
<p>One of my more interesting college classes was feedback control. The class was based on differential equations, Laplace transforms, and a single model that looked like this:</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/feedbackloop1.png"><img class="aligncenter size-full wp-image-181" title="feedbackloop" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/feedbackloop1.png" alt="" width="473" height="128" /></a></p>
<p>This model is the basis for most of the process control in the world. Basically the setpoint getscompared to the actual value. The error value goes to a controller, that then takes a corrective action. If the temperature is to hot, the corrective action might be to reduce the heat in the temperature jacket. After a while, things cool down. All processes have a time lag between the corrective action and when the change arrives at the output. I &#8220;borrowed&#8221; the &#8220;delay symbol&#8221; from Causal Loop Diagramming to show this. If it gets too cool, the controller will change the action and add more heat.</p>
<p>I didn&#8217;t realize at the time how powerful and versatile this diagram is.</p>
<p><strong>Personal Problem Solving</strong></p>
<p>With just a few word changes, the model can be used to describe how people can solve their problems.</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/feedbackperson1.png"><img class="aligncenter size-full wp-image-183" title="feedbackperson" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/feedbackperson1.png" alt="" width="473" height="128" /></a></p>
<p>A problem exists when a difference exists between what we want, and what we have. We can solve the problem by changing our actions, and seeing if the world at large responds with results that are closer to what we desire.</p>
<p>I&#8217;m trying to lose a few pounds. I can change what I eat (calories, fat, carbs, pick your favorite fad diet). I can change how often I exercise. If I continue with these changes, eventually I should lose the weight.</p>
<p><strong>Project Management</strong></p>
<p>Change a couple of more words, and now we have a project management tool.</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/feedbackmanager1.png"><img class="aligncenter size-full wp-image-182" title="feedbackmanager" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/feedbackmanager1.png" alt="" width="473" height="128" /></a></p>
<p>In this drawing, I&#8217;ve used a dash line connection between the manager (in this case synonymous with leader) and the team. I made this distinction since managers don&#8217;t have a direct linkage to the team. Managers can ask, cajole, threaten, and perhaps fire team members who don&#8217;t perform the tasks they&#8217;ve been asked to do. But the team member always has a choice.</p>
<p><strong>Loops All the Way Down</strong></p>
<p>It is possible to nest the cybernetic model. Consider the Scrum sprint cycle. The generic sprint cycle looks like:</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/cascadefeedback.png"><img class="aligncenter size-full wp-image-180" title="cascadefeedback" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/cascadefeedback.png" alt="" width="626" height="188" /></a></p>
<p>The outside loop is the sprint cycle (usually 30 days or less).  Every sprint the product owner sees new product functionality. This allows him/her to compare the current product state with the target. A subset of the remaining stories gets selected by the team and becomes the current spring backlog. Every day during the sprint, the Scrum team tracks how it’s progressing toward the sprint goal by completing the stories in the sprint backlog.</p>
<p>I’ve left some feedback loops out of this drawing:</p>
<ol>
<li>The      team assigns stories relative weight/size/difficulties to the stories.</li>
<li>The      sprint planning meeting occurs in the arrow labeled “Priority Stories”.      The team uses the information from its previous sprints to determine how      much they can accomplish in the next sprint.</li>
<li>The      many interactions that happen each day as the team works towards the      sprint goals.</li>
</ol>
<p>I chose not to include them since I’m working from an overview position. If these areas presented difficulty for the system, I’d focus on them and leave the other loops off.</p>
<p><strong>A Rose is a Rose</strong></p>
<p>In <span style="text-decoration: underline;">Quality Software Management: Systems Thinking</span> Jerry Weinberg presents the model in a slightly different picture (page 62).</p>
<p><a href="http://donaldegray.com/verifying-models/"><img class="aligncenter size-full wp-image-179" title="pattern3controller" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/pattern3controller.png" alt="" width="386" height="185" /></a></p>
<p>Jerry says, “The feedback model of a software development system requires feedback of information about the system’s performance, plus requirements for the controller to compare with that information. This is the model that distinguishes Pattern 3 from Patterns 0, 1, and 2. It is also used by Patterns 4 and 5.”</p>
<p>This presentation highlights two systems aspects:</p>
<ol>
<li>Randomness      – All systems interact with their environment. Changes in the environment      create changes in the system whether the changes are planned or not.</li>
<li>The      software development system creates “other outputs” that the controller      can use to improve the overall system performance.</li>
</ol>
<p><strong>A Good Place</strong><strong> to Start</strong></p>
<p>Like kitchen utensils, you need many different models. Here’s a list of models I’m aware I’m using.</p>
<p>I didn’t consciously start the list with the Cybernetic Model, but that’s where it belongs. Any time I start with a difference between what I want and have, I’ve already started using the Cybernetic Model.</p>
<p>Based on the domain, I may choose to use other models to help resolve the difference. If I’m involved in a conversation that doesn’t make sense, I may use the Satir Interaction model to find out why the conversation doesn’t make sense. If a co-worker’s actions don’t make sense, maybe I’ll use MBTI types to shed light on the problem.</p>
<p>But it all starts with the multi-use, handy-dandy, it’s everywhere, Cybernetic Model.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/a-multi-use-model/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Force Ranking Force Dynamics</title>
		<link>http://www.donaldegray.com/force-ranking-force-dynamics/</link>
		<comments>http://www.donaldegray.com/force-ranking-force-dynamics/#comments</comments>
		<pubDate>Mon, 14 Aug 2006 14:31:28 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CLD/DoE]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/force-ranking-force-dynamics/</guid>
		<description><![CDATA[Esther Derby recently ranted about Force Ranking. I'm not an expert on force ranking, or maybe as an independent consultant I am. I'm force ranked every time I work with a client.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.estherderby.com/weblog/archive/2006_08_01_archive.html#115445409439744660" target="_blank">Esther Derby recently ranted about Force Ranking</a>. I&#8217;m not an expert on force ranking, or maybe as an independent consultant I am. I&#8217;m force ranked every time I work with a client.</p>
<p>But as I think about what I understand involving force ranking, the logic behind it makes some sense. If I remove the lower performers (by some criteria) from my team, the overall average team performance (of that criteria) goes up. [Let me know if you'd like to see the math behind this thought.]</p>
<p>Here&#8217;s my idea of what a DoE looks like for force ranking</p>
<div id="attachment_155" class="wp-caption aligncenter" style="width: 403px"><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/forcerank.png"><img class="size-full wp-image-155" title="forcerank" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/forcerank.png" alt="Force Ranking Dyanmics" width="393" height="240" /></a><p class="wp-caption-text">Force Ranking Dyanmics</p></div>
<p>Force ranking creates competition between individuals. As competition increases, more effort will be put into increasing (at least the appearance of) individual performance. As individual performance increases, it appears that force ranking is working, and force ranking gets used more. When this goes on long enough, the people who excelled in being force ranked get promoted and force ranking becomes institutionalized. After all, it worked for them.</p>
<p>But after a while, the secondary loop starts to apply pressure to the system. The competition between individuals reduces the team&#8217;s performance. This happens since time and energy spent &#8220;improving one&#8217;s self&#8221; comes at the expense of time and energy working toward the team&#8217;s goals. It probably creates conflict and tension between the team members, and quite possibly internally in the team members (not everyone enjoys competition). Since the overall team performance has gone down, we need to do more force ranking to get the performance up to where it used to be, there by invoking _Weinberg&#8217;s First Law of Bad Management_ If what you&#8217;re doing isn&#8217;t working, doing more of it won&#8217;t help.</p>
<p><strong>But It Appears to Work!</strong></p>
<p>For a while anyway.  This happens because people will sacrifice for some period of time. This creates the delay before the secondary &#8220;team loop&#8221; starts to function. During this initial period of &#8220;working&#8221; observers notice the shiny new management technique and proceed to implement it. However &#8230;</p>
<div style="border: 1px solid black; padding: 1px;">Although it is possible to persuade purposeful members of a purposeful social system to engage in a sacrifice for a limited period of time, it is highly improbably that they will accept this condition as a way of life. &#8211; Gharajedaghi, <span style="text-decoration: underline;">Systems Thinking, Managing Chaos and Complexity</span>, pg 67</div>
<p><strong>Why does it fail?</strong></p>
<p>Force ranking fails to consider (at least) three principle systems concepts: emergence, cause-effect and optimization.</p>
<div style="border: 1px solid black; padding: 1px;">Emergent … properties are the property of the whole, not the property of the parts, and cannot be deduced from the properties of the parts. However, they are the product of the interactions, not a sum of the actions of the parts, and therefore have to be understood on their own terms. ibid pg 45</div>
<p>It&#8217;s that old-timey synergy thing: &#8220;The whole is greater than the sum of the parts.&#8221;</p>
<p>Cause-effect comes into play by separating the effect (poor team performance) from the cause (force ranking) in time. When management notices that team productivity has declined, force ranking will be institutionalized, and the primary thought will be &#8220;find the low performers and move them out.&#8221; It will take a catastrophic calamity before anyone will stop to consider that force ranking may have caused the problem.</p>
<p>Force ranking optimizes the organization at the individual level. As each individual optimizes their outcome, the larger systems (teams, departments, and organization) will be sub-optimized due to the conflicting goals between individuals. If the original reason to force rank is to improve performance, then in the long run, force ranking is dysfunctional as it returns less value to the client than the original state.</p>
<p><strong>Another way to blame?</strong></p>
<p>Without actually saying it, force ranking seems to be a blaming activity. People are identified as &#8220;not as good&#8221; and removed from the team. Here&#8217;s a DoE that shows blaming&#8217;s effects.</p>
<div id="attachment_157" class="wp-caption aligncenter" style="width: 479px"><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/02/BlameExpanded.png"><img class="size-full wp-image-157" title="BlameExpanded" src="http://www.test.donaldegray.com/wp-content/uploads/2010/02/BlameExpanded.png" alt="The Blame Game" width="469" height="517" /></a><p class="wp-caption-text">The Blame Game</p></div>
<p>What did I miss? Send me an email.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/force-ranking-force-dynamics/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>“There-Then-Them” / “Here-Now-Us”</title>
		<link>http://www.donaldegray.com/%e2%80%9cthere-then-them%e2%80%9d-%e2%80%9chere-now-us%e2%80%9d/</link>
		<comments>http://www.donaldegray.com/%e2%80%9cthere-then-them%e2%80%9d-%e2%80%9chere-now-us%e2%80%9d/#comments</comments>
		<pubDate>Tue, 06 Jun 2006 16:38:50 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/%e2%80%9cthere-then-them%e2%80%9d-%e2%80%9chere-now-us%e2%80%9d/</guid>
		<description><![CDATA[I'm catching up on some reading this week, and I just read Willem's disagreement with Jerry's thoughts. Truth be known, I agree with both Jerry and Willem.]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m catching up on some reading this week, and I just read <a href="http://me.andering.com/2006/05/15/right-here-right-now/" target="_blank">Willem&#8217;s disagreement</a> with <a href="http://secretsofconsulting.blogspot.com/2006/04/there-then-them-vs-here-now-us.html" target="_blank">Jerry&#8217;s thoughts</a>. Truth be known, I agree with both Jerry and Willem.</p>
<p><strong>Why I Can Agree</strong></p>
<p>Jerry&#8217;s example of here-now-us related to a client&#8217;s problem. Through the magic word “snow”, one person transported themselves to “there-then-them”, and applied the emotions and feelings from the “then-there-them” to the current “here-now-us”.</p>
<p>Willem&#8217;s example of “there-then-them” shows that reflecting on “there-then-them”  (“me“ in his example) provides insight that may allow him to change his behavior (if he wants to).</p>
<p>Neither example precludes or excludes the other when thinking about “there-then-them” and “here-now-us”. So what good is it?</p>
<p><strong>A Useful Tool</strong></p>
<p>The “there-then-them” / “here-now-us” tool can be used tactically or strategically. Tactically it helps problem solvers keep track of WHICH problem they&#8217;re trying to solve.  When the solving the current problem suddenly vectors off in a surprising direction, be suspicious that someone went “there-then-them”.</p>
<p>Strategically, “there-then-them” can be used to reflect on how we got here, and what we might want to change.</p>
<p>Do you have useful tool for systems thinking? Drop me a note.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/%e2%80%9cthere-then-them%e2%80%9d-%e2%80%9chere-now-us%e2%80%9d/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So What&#039;s the Problem?</title>
		<link>http://www.donaldegray.com/so-whats-the-problem/</link>
		<comments>http://www.donaldegray.com/so-whats-the-problem/#comments</comments>
		<pubDate>Sat, 13 May 2006 12:04:47 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[problem solving]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/so-whats-the-problem/</guid>
		<description><![CDATA[I would say that the root of the problem or "cause" was the pure and simple fact, that a poor decision was made to "band aid" a poorly designed system. If the correct decision was made in February of 2004 ...]]></description>
			<content:encoded><![CDATA[<p>George called this week.  The systemic solution loop in <a href="http://donaldegray.com/shifting-the-burden" target="_blank">Shifting the Burden</a> has taken over and he&#8217;s making the modifications requested by the users. Along the way, he&#8217;s read about himself, and has this to say about <a href="http://donaldegray.com/how-did-this-happen/" target="_blank">How Did This Happen?</a> and <a href="http://donaldegray.com/shifting-the-burden" target="_blank">Shifting the Burden</a>.</p>
<p><strong>The Root Problem</strong></p>
<p>I would say that the root of the problem or &#8220;cause&#8221; was the pure and simple fact, that a poor decision was made to &#8220;band aid&#8221; a poorly designed system. If the correct decision was made in February of 2004, to replace the poorly designed, inherited system, it&#8217;s unfortunate to say this but, we would not have had the opportunity to meet, as I would have had a turn key system installed. I have proven to management here, &#8230; that it was a poor decision to band aid, rather than replace. The unfortunate problem now is that the system is running just good enough that it is much harder to justify a new system. You could argue that &#8220;just good enough&#8221; means the problem is fixed, but I have showed, using our Quality data, that even though we improved from a 33 %! defect rate down to a 3% average defect rate. That 3% adds up to approx 160K per year. There is more to the equation than just coding issues, you have hardware failures that add to the defect rate, which would be eliminated with a properly designed centralized control system.</p>
<p>One thing to remember that it was one guy who made the decision, I.E. it was not a group decision. In fact I almost had the go ahead to do the upgrade until our friend jumped in and decided to &#8220;save&#8221; the company money. Our friend moved to other places after the damage was done about 2 months after the decision was made to band aid. Pretty convenient eh? Not to mention the multitude of other management changes that have taken place over the past 2 years, in effort to try to make RTM work. Over all things are better now than they were 2 years ago.</p>
<p><strong>The Sky is Falling</strong></p>
<p>I agree with George. For the last two years we&#8217;ve been adding features (complexity) and size (lines of code)  to a system that should be replaced. And now he&#8217;s adding 1/3 more functionality. The logical conclusion seems that sometime, possibly in the not to distant future, the system will implode from its heritage.</p>
<p><strong>Three Ways to Solve a Problem</strong></p>
<p>The original quality problem had three possible solutions:</p>
<ol>
<li> <strong>Solved</strong>: This solution provides the maximum possible benefit.  George would have a new system properly designed to handle the process.</li>
<li> <strong>Resolved</strong>: This is the &#8220;good enough&#8221; solution. The results are satisfactory, but not maximized.  George&#8217;s current reality.</li>
<li> <strong>Dissolved</strong>: By changing requirements (such as quality parameters), the problem could just &#8220;go away.&#8221; Not going to happen for George.</li>
</ol>
<p>With my help, George now has a system that satisfices. His new problem is getting management on board to realize a change should be made before it&#8217;s too late.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/so-whats-the-problem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>So, What is a System?</title>
		<link>http://www.donaldegray.com/so-what-is-a-system/</link>
		<comments>http://www.donaldegray.com/so-what-is-a-system/#comments</comments>
		<pubDate>Fri, 05 May 2006 23:39:30 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/so-what-is-a-system/</guid>
		<description><![CDATA[I'm working backwards. I started this entry on defining change. Then I realized change can't exist without systems. So, what is a system? I like the following (heavily inspired by Systems Thinking Basics: From Concepts to Causal Loops)]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working backwards. I started this entry on defining change. Then I realized change can&#8217;t exist without systems. So, what is a system? I like the following (heavily inspired by <strong>Systems Thinking Basics: </strong><em>From Concepts to Causal Loops</em>)</p>
<p>Systems have several essential characteristics:</p>
<ol>
<li> A system’s parts must all be present for the system to carry out its purpose optimally.  If you can take components away from something without affecting its functioning and its relationships, then you have just a collection, not a system. A pile of quarters on the table would be a collection. The company for which you work is a system.</li>
<li> A system’s parts must be arranged in a specific way for the system to carry out its purpose.  If the components of a collection can be combined in any random order, then they do not make up a system.</li>
<li> Systems have specific purposes within larger systems. To paraphrase, &#8220;It&#8217;s systems all the way down.&#8221; Your company, your department, your team, you, your various physical systems, and smaller the systems get until you reach the sub-cellular level.</li>
<li> Systems maintain their <strong>stability</strong> through fluctuations and adjustments.  Systems achieve this stability through the interactions, feedback and adjustments that continually circulate among the system parts, and between the system and its environment. If a systems doesn&#8217;t achieve stability, it generally doesn&#8217;t last long enough to get noticed.</li>
<li> Systems have feedback.  Feedback is the transmission and return of information.  The most important feature of feedback is that it provides the catalyst for a change in behavior.</li>
</ol>
<p>A system has feedback within itself.  But because all systems are part of larger systems, a system also has feedback between itself and external systems.</p>
<p>Finally, feedback is not necessarily transmitted and returned through the same system component  or even through the same system.</p>
<p>What would you add or change?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/so-what-is-a-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse Engineering Reality Part 2: Creating Causal Loop Diagrams</title>
		<link>http://www.donaldegray.com/reverse-engineering-reality-part-2-creating-causal-loop-diagrams/</link>
		<comments>http://www.donaldegray.com/reverse-engineering-reality-part-2-creating-causal-loop-diagrams/#comments</comments>
		<pubDate>Wed, 03 May 2006 12:27:26 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CLD/DoE]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/reverse-engineering-reality-part-2-creating-causal-loop-diagrams/</guid>
		<description><![CDATA[Causal Loop Diagrams (CLDs) share several things with books: they both tell stories, they can be fact or fiction, and they&#8217;re both easier to read than write. Keep reading to learn how to write CLDs. The Buddy System The first step in creating CLDs: find a buddy, friend or coworker with whom to share the diagram. When I started working with CLDs, I didn&#8217;t pay attention to this. It&#8217;s come to my attention lately that I add something to every diagram that comes my way,]]></description>
			<content:encoded><![CDATA[<p>Causal Loop Diagrams (CLDs) share several things with books: they both tell stories, they can be fact or fiction, and they&#8217;re both easier to read than write.  Keep reading to learn how to write CLDs.</p>
<p><strong>The Buddy System</strong></p>
<p>The first step in creating CLDs: find a buddy, friend or coworker with whom to share the diagram.  When I started working with CLDs, I didn&#8217;t pay attention to this. It&#8217;s come to my attention lately that I add something to every diagram that comes my way, and every diagram I send out comes back with meaningful corrections or contributions.  This happens because everyone&#8217;s world view is slightly different. Most world views overlap enough that we can understand each other, but are different enough that other people will think of things you don&#8217;t. If you&#8217;d like, you can send me your drawings for review and comment.</p>
<p>If one is necessary, two may be better. At some point adding people will create more &#8220;drag&#8221; on progress than contributing &#8220;thrust&#8221; towards completeness. In a work environment completeness counts more than speed, so make sure all view points get considered. For independent work, I prefer &#8220;mostly complete&#8221; and quickness.</p>
<p>When sharing with your buddy, consider how you&#8217;re going to present the CLD. I worked with a friend on the phone on time and tried to draw the CLD as he described his drawing. Unless you enjoy lessons in miscommunication, skip this and at least send some sort of a drawing (JPEG, GIF, PNG) they can view, print and mark up. I&#8217;ve found sending the actual drawing works best. For Windows users, I typically use Visio. I have a template for CLDs using <a href="http://www.geraldmweinberg.com" target="_blank">Jerry Weinberg&#8217;s</a> notation that my friend Brian Pioreck created. When I&#8217;m working with Mac users, I use Canvas to create the CLDs. In both cases, we can change the CLD and share the results via email.</p>
<p>Creating a CLD usually follows these steps:</p>
<ol>
<li> Find some puzzling question.</li>
<li> Think about the question.</li>
<li> List some variables related to the question.</li>
<li> Connect the variables showing how one influences others.</li>
<li> Check the CLD by reading the story.</li>
<li> Repeat steps 2 &#8211; 5 as necessary and appropriate.</li>
</ol>
<p><strong>What was that?</strong></p>
<p>This question usually starts my systems thinking mode. I recently read an email by an author who stated &#8220;I never sign a contract for a book until the book is written.&#8221;  Why not?  What&#8217;s bad about some &#8220;up front cash&#8221;?  What might be true for him to feel that way?</p>
<p><strong>Thinking</strong></p>
<p>Sometimes when I think, things instantly pop into my mind.  Sometimes I commit the problem to my subconscious and do something else.  I have favorite activities that involve my body, but leave my mind free (like bush hogging).  Other activities (like Aikido, hitting golf balls) occupy all of me. In the contract situation, I received the email late in the evening. I fired off a &#8220;let me think about this&#8221; email and went to bed.</p>
<p>Thinking about question the hopefully leads to a deeper understanding of the situation. If it doesn&#8217;t perhaps the question is too small or too big. Perhaps the question isn&#8217;t clearly stated.  Try changing the question and see how it changes your thinking.</p>
<p>As I thought about the question, I eventually centered on writing&#8217;s financial and personal affects.</p>
<p><strong>Variables</strong></p>
<p>Now it&#8217;s time to list the variables you&#8217;ve discovered in your thinking. Choose things that can change.  I use a laptop and word processor when I write. This doesn&#8217;t change, and doesn&#8217;t influence anything else.  &#8220;Writing Time&#8221; changes and does influence other variables. I like to use variable names that work with &#8220;As &#8216;insert name&#8217; goes up (or down), then &#8216;downstream name&#8217; goes down (or up).&#8221; This verifies some constant doesn&#8217;t slip in, and starts the next step.  For this example I chose the following variables:</p>
<ul>
<li> Writing Goal</li>
<li> Pressure to write (added on second pass)</li>
<li> Writing Completed</li>
<li> Work Time</li>
<li> Money for bills</li>
<li> Writing Time</li>
<li> Personal &#8220;pot&#8221; (how I feel about myself).</li>
</ul>
<p>Getting all the variables in the first pass doesn&#8217;t happen often.  The point here involves looking for hidden structures that create the observed dynamics.  As the drawing takes shape, new variables appear, and old variables may not be needed.  It depends on your point of view.</p>
<p><strong>Which Comes First?</strong></p>
<p>Since all the variables are related, and you can start reading a CLD at any point, it doesn&#8217;t matter which variable gets put in the drawing first.  Pick one and get started telling the story. Once in a great while I do a hand sketch.  Generally I head straight to the drawing package where I can cut, paste, drag and drop.  When I finished, this is what my CLD for &#8220;Why not sign a publishing contract for an un-written book?&#8221; looks like:</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/01/writingpressure.png"><img class="aligncenter size-full wp-image-103" title="Writing Pressue DoE" src="http://www.test.donaldegray.com/wp-content/uploads/2010/01/writingpressure.png" alt="Writing Pressue DoE" width="455" height="321" /></a></p>
<p><strong>And Back Through</strong></p>
<p>As I draw the CLD, I find myself rethinking assumptions and conclusions.  This restarts me iterating through the steps. Don&#8217;t be surprised if it takes several iterations to become comfortable witht the CLD. Eventually, I declare &#8220;Good enough&#8221; and quit.</p>
<p><strong>The Never Ending Cycle</strong></p>
<p>If you take the same variables and create a CLD you probably won&#8217;t get exactly the same drawing. That&#8217;s OK.  I see where I can make a couple of changes.  But at this time, this drawing closely represents what I think about the question.</p>
<p>Causal Loop Diagrams give us a method for revealing hidden system structure.  Being able to read and create CLDs provides another path for sharing our current understanding.</p>
<p><strong>Update 2010.1.28</strong></p>
<p>I still create Diagram of Effects when I find sticky issues, those things that hang around, even when I try to fix them.</p>
<p>I now use Inkscape to create my diagrams. I have a template I&#8217;ll share if you ask. I still have the Visio template too.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/reverse-engineering-reality-part-2-creating-causal-loop-diagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reverse Engineering Reality Part 1: Reading Causal Loop Diagrams</title>
		<link>http://www.donaldegray.com/reverse-engineering-reality-part-1-reading-causal-loop-diagrams/</link>
		<comments>http://www.donaldegray.com/reverse-engineering-reality-part-1-reading-causal-loop-diagrams/#comments</comments>
		<pubDate>Wed, 03 May 2006 12:14:12 +0000</pubDate>
		<dc:creator>dgrayadmin</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CLD/DoE]]></category>
		<category><![CDATA[systems]]></category>
		<category><![CDATA[systems thinking]]></category>

		<guid isPermaLink="false">http://donaldegray.com/reverse-engineering-reality-part-1-reading-causal-loop-diagrams/</guid>
		<description><![CDATA[Causal Loop Diagrams (CLDs) can help us understand complex interactions and events by revealing system structure. Unlike buildings, most systems don&#8217;t have visible structure. We notice systems by observing events. When the events form a pattern (usually over time), there&#8217;s indication that a system is working. We use CLDs to diagram the system and reveal the interactions that lead to events. In &#8220;Learning to Change&#8221;, I used Casual Loop Diagrams (CLD) to show interrelationships involved in my learning process. Causal Loop Anatomy Causal Loop Diagrams]]></description>
			<content:encoded><![CDATA[<p>Causal Loop Diagrams (CLDs) can help us understand complex interactions and events by revealing system structure.  Unlike buildings, most systems don&#8217;t have visible structure.  We notice systems by observing events.  When the events form a pattern (usually over time), there&#8217;s indication that a system is working. We use CLDs to diagram the system and reveal the interactions that lead to events.  In &#8220;Learning to Change&#8221;, I used Casual Loop Diagrams (CLD) to show interrelationships involved in my learning process.</p>
<p><strong>Causal Loop Anatomy</strong></p>
<p>Causal Loop Diagrams have four basic parts:</p>
<ul>
<li>Nodes (usually ellipses or circle) that contain values that can change</li>
<li>Lines with an arrow show influence direction</li>
<li>An inversion indicator</li>
<li>Time delay indicator</li>
</ul>
<p>These look like</p>
<div><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/01/BasicCLD.png"><img class="aligncenter size-full wp-image-99" title="BasicCLD" src="http://www.test.donaldegray.com/wp-content/uploads/2010/01/BasicCLD.png" alt="Causal Loop Elements" width="374" height="80" /></a></div>
<p>Using all the parts, we can build a simple diagram.</p>
<div><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/01/simpleDOE.png"><img class="aligncenter size-full wp-image-98" title="simpleDOE" src="http://www.test.donaldegray.com/wp-content/uploads/2010/01/simpleDOE.png" alt="Simple Diagram of Effects / Causal Loop Diagram" width="286" height="208" /></a></div>
<p><strong>Reading a Causal Loop Diagram</strong></p>
<p>You can start reading a CLD on any node. I once sent a CLD to a friend who responded, &#8220;Don, I don&#8217;t understand what you&#8217;re trying to show.&#8221;  I promptly started telling the story (via email), but noticed that I had to start at a specific node, and by the time I was 1/3 through the diagram, my explanation fell apart.  I redrew the CLD, and got my point across.</p>
<p>We read the above figure as follows:</p>
<ul>
<li> As &#8220;B&#8221; gets bigger, after a time delay &#8220;A&#8221; gets bigger.</li>
<li> As &#8220;A&#8221; gets bigger, &#8220;B&#8221; gets smaller.</li>
<li> As &#8220;B&#8221; gets smaller, after a time delay &#8220;A&#8221; gets smaller.</li>
<li> As &#8220;A&#8221; gets smaller, &#8220;B&#8221; gets larger.</li>
</ul>
<p>This forms a balancing loop.  The system may oscillate, but will stay within limits. Balancing loops provide stability in systems.</p>
<p>Suppose the influence between &#8220;A&#8221; and &#8220;B&#8221; wasn&#8217;t inverse.  As &#8220;A&#8221; goes, so goes &#8220;B&#8221;.  The above figure would then read:</p>
<ul>
<li> As &#8220;A&#8221; gets bigger, &#8220;B&#8221; gets bigger.</li>
<li> As &#8220;B&#8221; gets bigger, after a time delay &#8220;A&#8221; gets bigger.</li>
</ul>
<p>Or the in the opposite direction:</p>
<ul>
<li> As &#8220;B&#8221; gets smaller, after a time delay &#8220;A&#8221; gets smaller.</li>
<li> As &#8220;A&#8221; gets smaller, &#8220;B&#8221; gets smaller.</li>
</ul>
<p>Now we have a reinforcing loop.  Reinforcing loops create growth (positive reinforcement) or decay (negative reinforcement).  Some people refer to these as positive feedback and negative feedback loops. Since all loops in a CLD are feedback loops, I prefer the terms &#8220;balancing&#8221;, &#8220;positive reinforcement&#8221;, and &#8220;negative reinforcement&#8221;.</p>
<p>The example we&#8217;ve been using a simple diagram.  These same basic diagramming parts can build complex diagrams.  At the AYE 2004 Conference, attendees in <a href="http://www.ayeconference.com/wiki/SessionFour011" target="_blank">Session 11</a> created a CLD for credit cards. For those wondering, Causal Loop Diagram and Diagram of Effects are the same drawing type. A CLD for credit cards could resemble</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/01/CreditCard.png"><img class="aligncenter size-full wp-image-100" title="CreditCard" src="http://www.test.donaldegray.com/wp-content/uploads/2010/01/CreditCard.png" alt="Credit Card DoE" width="575" height="260" /></a></p>
<p>Balance seems to be in the middle of the drawing, so let&#8217;s &#8220;read&#8221; that part of the diagram.</p>
<ul>
<li> As Balance goes up, Fees &amp; Charges go up</li>
<li> As Fees &amp; Charges go up, Balance goes up</li>
<li> As Balance goes up, Available Credit goes down</li>
<li> As Credit Card Purchases go up, Balance goes up</li>
<li> As Payment goes up, Balance goes down</li>
</ul>
<p>Take a minute to &#8220;read&#8221; the rest of the drawing.  No wonder Albert Einstein said <strong>Compounding interest in the greatest mathematical discovery of all time.&#8221;</strong></p>
<p>Some things to remember:</p>
<ol>
<li>You can start reading a CLD at any point.</li>
<li> It would be equally valid to say the opposite of our list. (As Balance goes down, Fees &amp; Charges go down)</li>
<li>A CLD is a map and should &#8220;map to the territory&#8221;.  If the story you&#8217;re reading doesn&#8217;t match the events and patterns, the CLD needs to be changed.</li>
</ol>
<p>Different notations exist for CLDs. Some notations use &#8220;+&#8221; and &#8220;-&#8221; at the line&#8217;s arrow end to show &#8220;same&#8221; or &#8220;inverse&#8221; links.  Occasionally you&#8217;ll see a &#8220;B&#8221; or a &#8220;see-saw&#8221; in the middle of a loop indicating the loop balances.  A &#8220;snowball&#8221; or &#8220;R&#8221; indicates a reinforcing loop.  The variables may not be in an ellipse.  These minor variations don&#8217;t change how the CLD gets read. No &#8220;UML&#8221; exists for CLDs.</p>
<p><a href="http://www.geraldmweinberg.com" target="_blank">Jerry Weinberg</a> developed additional CLD notations to help understand software project management and development.  These components add some richness (by showing the human part) and are:</p>
<p><a href="http://www.test.donaldegray.com/wp-content/uploads/2010/01/GMWCld.png"><img class="aligncenter size-full wp-image-101" title="Gerald M Weinberg DoE Elements" src="http://www.test.donaldegray.com/wp-content/uploads/2010/01/GMWCld.png" alt="Gerald M Weinberg DoE Elements" width="445" height="160" /></a></p>
<p>In Jerry&#8217;s notation, these have the following meaning:</p>
<ul>
<li> A cloud indicates a subject measure. Something known and true, but unmeasurable (due to nature or expense)</li>
<li> A white box means that a human intervention is making the receiving node move the same as the originating node</li>
<li> A gray box means that a human intervention is making the receiving node move opposite from the originating node</li>
<li> A half-white/half-gray box means that the receiving node may move same or opposite from the originating node base on the intervention</li>
</ul>
<p>I recommend Jerry&#8217;s <a href="http://www.dorsethouse.com/books/qsm1.html" target="_blank">Quality Software Management: Vol. 1: Systems Thinking.</a> The book builds a systems foundation for understanding software development and uses CLDs throughout the book.</p>
<p>Causal Loop Diagrams provide a to describe what happens in the real world.  While notations differ slightly, the basics don&#8217;t change.  Understanding how to read one notation enables us to understand other notations.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.donaldegray.com/reverse-engineering-reality-part-1-reading-causal-loop-diagrams/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
