<?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>Social Complexity and Agility</title>
	<atom:link href="http://www.metaprog.com/blogs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.metaprog.com/blogs</link>
	<description>Joseph Pelrine&#039;s weblog</description>
	<lastBuildDate>Sat, 28 Jan 2012 09:29:02 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Reading up for CALM-Alpha</title>
		<link>http://www.metaprog.com/blogs/2012/01/reading-up-for-calm-alpha/</link>
		<comments>http://www.metaprog.com/blogs/2012/01/reading-up-for-calm-alpha/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 10:02:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Social Complexity]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=138</guid>
		<description><![CDATA[I&#8217;m really looking forward to the CALM-Alpha event next month. In preparation for it, I&#8217;m going through our tentative reading list. The faculty members suggest that attendees read the following books as preparation for the event:

Mark Haddon, The Curious Incident of the Dog in the Night-time
Ursula leGuin, The Dispossessed
Dava Sobel, Longitude

In addition, it would be [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really looking forward to the CALM-Alpha event next month. In preparation for it, I&#8217;m going through our tentative reading list. The faculty members suggest that attendees read the following books as preparation for the event:</p>
<ul>
<li>Mark Haddon, <a href="http://www.amazon.co.uk/Curious-Incident-Dog-Night-time/dp/0099450259 " target="_blank">The Curious Incident of the Dog in the Night-time</a></li>
<li>Ursula leGuin, <a href="http://www.amazon.co.uk/Dispossessed-Ursula-K-Guin/dp/0380440571 " target="_blank">The Dispossessed</a></li>
<li>Dava Sobel, <a href="http://www.amazon.co.uk/Longitude-Genius-Greatest-Scientific-Problem/dp/0007214227 " target="_blank">Longitude</a></li>
</ul>
<p>In addition, it would be a good idea to view at least this excerpt from the Star Trek Next Generation episode <a href="http://www.youtube.com/watch?v=BXJBtVXhQuc" target="_blank">Darmok</a>.</p>
<p><strong>Scientific Papers</strong></p>
<p>If you&#8217;re attending CALM-Alpha, you&#8217;ve probably read the relevant papers already.  If not, this would be my personal list of papers to read to start out:</p>
<ul>
<li>Cynthia Kurtz and Dave Snowden, <a href="http://www.cognitive-edge.com/articledetails.php?articleid=14" target="_blank">The new dynamics of strategy: Sense-making in a complex and complicated world</a></li>
<li>Dave Snowden and Peter Stanbridge, <a href="http://www.cognitive-edge.com/articledetails.php?articleid=31" target="_blank">The Landscape of Management</a></li>
<li>Dave Snowden, <a href="http://www.cognitive-edge.com/articledetails.php?articleid=40" target="_blank">Multi-ontology sense making; a new simplicity in decision making</a></li>
<li>Joseph Pelrine, <a href="http://www.metaprog.com/downloads/ECO.pdf" target="_blank">On Understanding Software Agility— A Social Complexity Point Of View</a></li>
</ul>
<p>The <a href="http://www.cognitive-edge.com" target="_blank">Cognitive Edge</a> site has many other papers worth reading.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2012/01/reading-up-for-calm-alpha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thoughts on priority poker</title>
		<link>http://www.metaprog.com/blogs/2010/11/thoughts-on-priority-poker/</link>
		<comments>http://www.metaprog.com/blogs/2010/11/thoughts-on-priority-poker/#comments</comments>
		<pubDate>Sat, 27 Nov 2010 17:22:44 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile Adages]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=115</guid>
		<description><![CDATA[Many years ago, I took part in one of the first Certified Scrum Product Owner courses ever held by Ken Schwaber and Mike Cohn. One of my favourite exercises from that course, and one I&#8217;ve often used since, was priority poker. Priority poker is a method for assigning relative priority, or weight, to items, and [...]]]></description>
			<content:encoded><![CDATA[<p>Many years ago, I took part in one of the first Certified Scrum Product Owner courses ever held by Ken Schwaber and Mike Cohn. One of my favourite exercises from that course, and one I&#8217;ve often used since, was priority poker. Priority poker is a method for assigning relative priority, or weight, to items, and is based on methods recommended in multi-attribute utility analysis literature[1]. In this exercise, you spread your user story cards out on a table, and allocate a number of poker chips to each story in order of their importance. Priority poker is a great learning tool. It&#8217;s easy to learn, it&#8217;s tactile, and it&#8217;s fun. For me, the most important learning experience of this exercise is the &#8220;aha&#8221; effect that comes from realising that the number of resources is finite, and that prioritising a particular story higher comes at the cost of prioritising another story lower.</p>
<p style="text-align: center;">
<p><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/pokerchips.png" alt="Priority poker" width="578" height="391" /></p>
<p style="text-align: center;">Figure 1: Priority poker</p>
<p>A question popped up recently in one of my product owner courses which made me re-think a few premises about priority poker. Two groups came up with a different number of stories for an exercise we were doing, but I gave them both the same number of poker chips. Looking at the results of the group&#8217;s prioritisation exercise, I realised that there must be some connection between the number of stories and the number of chips. What would be the optimum relationship/proportion between chips and possible stories to ensure the best possible prioritisation? With too few chips, there&#8217;s not enough flexibility in choosing. With too many chips, things can become equally important, and one loses the nuances of such an exercise [2]. Is there a mathematical formula to calculate this? Empirical data? Rules of thumb?</p>
<p>I&#8217;m lucky to have many friends who are a lot smarter than I am, and who don&#8217;t mind me asking them questions like these. In this case, my victim was my friend Dr. Natasha Zharanova, who works in the finance department at eBay in Amsterdam, and who did her PhD in economics at Princeton. Natasha once attended a product owner training I did while working at eBay where we did priority poker, and she mentioned to me that she had done her master&#8217;s research on a similar topic, <a href="http://en.wikipedia.org/wiki/Cumulative_voting">cumulative voting</a>. Her answers to my questions caused me a thoughtful and sleepless night, tossing and turning in bed thinking about this question, until I finally gave up and started hacking Smalltalk at 3:30 AM to run some simulations.</p>
<p>Natasha pointed out that one of the goals of cumulative voting is to ensure adequate minority representation. Indeed, when we did the exercise together, we had given various stakeholders a few chips, and their strategic placement of chips influenced the final prioritisation in interesting and unexpected ways. (Note: you probably know cumulative voting as &#8220;dot voting&#8221;, where each member of a working group gets 3 dots to place on their e.g. favourite topics to be discussed).</p>
<p>Some points which Natasha pointed out to me:</p>
<p>- the total number of votes allotted to a voter is equal to the number of winning candidates.</p>
<p>- This works when all voters are seen as equal. When it comes to shareholders, usually the number of votes one gets is also proportional to his/her number of shares (I.e., a shareholder with 10\% of shares gets 9 times less than one with 90\% of shares), but the total sum is still related to the number of winning candidates.</p>
<p>- Of course, in most examples where this is used (I.e., board of directors elections), the number of open positions is fixed. In my example, though, the number of stories selected is not known in advance; but perhaps this is where another assumption / rule of thumb could be introduced? Something along the lines of &#8220;there is no way that more than 5 stories can be top priority simultaneously&#8221;? Then everybody gets 5 chips&#8230;</p>
<p>With a product owner (in a strict sense), the number of voters is 1. This simplifies things a bit, as it forces the focus onto the relationship between votes (chips) and options (user stories). Natasha&#8217;s question of &#8220;how many projects can be top priority simultaneously?&#8221; got me thinking, and I ended up reversing it, asking &#8220;how many projects or stories can we afford to ignore?&#8221;</p>
<p>I think the optimum number of votes would be the minimum number that ensures that each option can receive a unique, non-zero number of votes. For 1 item, it would be 1 chip. For 2 items, it would be 2+1, or 3, chips, for 3 items 3+2+1, or 6 chips, etc. The number of votes would be a number in the sequence 1, 3, 6, 10, 15, 21, 28 &#8230; or essentially, for n items:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/poker1.png" alt="" width="354" height="36" /></p>
<p>or simply</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/poker2.png" alt="" width="122" height="63" /></p>
<p>This would be the smallest number of chips that would allow all options to be represented, while still forcing an increase in value of one option at the cost of another.</p>
<p>Looking at the first formula, the last (n &#8211; 1) becomes interesting. This is our lower bound, normally 1, but what it represents is the number of options we can afford to ignore, right? If we substitute this number with a higher bound, thus saying that we can afford to ignore more items, then the number of votes necessary to ensure prioritisation decreases. For me, this lower bound would be the number of stories that we can allow to have 0 chips.</p>
<p>I couldn&#8217;t get that number sequence 1, 3, 6, 10, 15, 21, 28 &#8230; out of my head. I was sure I&#8217;d seen it somewhere before, but couldn&#8217;t remember the name. Factorial? Sort of, but adding, not multiplying. Fibonacci? Sort of, but summing up all previous numbers, not just the last two.</p>
<p>In cases like these, I normally call on my math wizards, Tatiana Pastukhova and Wiggert Loonstra. They both gave me the answer: <a href="http://en.wikipedia.org/wiki/Triangular_number">triangular numbers</a>. Think billiard balls here.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/triangle.png" alt="" width="567" height="204" /></p>
<p style="text-align: center;">Figure 2: Triangle numbers</p>
<p>A triangular number is the number of balls in an equilateral triangle completely filled with balls. Looking at the Wikipedia page on triangular numbers, I found the most efficient way to calculate them:</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/poker3.png" alt="" width="318" height="42" /></p>
<p>So, to figure out the number of chips you need for prioritising your backlog using priority poker, first figure out how many stories you can afford to do without (this is a good reality check in any case). Then let</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/poker4.png" alt="" width="331" height="41" /></p>
<p>and the number of chips needed will be</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.metaprog.com/blogs/wp-content/images/poker5.png" alt="" width="149" height="45" /></p>
<p>Simple, right?</p>
<p style="text-align: left;">Notes:</p>
<p>1. See Emil J. Posavac and Raymond G. Carey,  Program Evaluation:   Methods and Case Studies, Prentice-Hall, 1989; W. Edwards and J.R. Newman, &#8220;Multiattribute Evaluation&#8221;, in H.R. Arkes and K.R. Hammond (eds.), Judgment and Decision Making, Cambridge University Press, Cambridge, England, 1986, 13-37; and C. Kirkwood, Strategic Decision Making: Multiobjective Decision Analysis with Spreadsheets, Duxbury Press, 1997, 53-61.<br />
2. See Barry Schwartz, The Paradox of Choice, Harper Collins, 2005.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2010/11/thoughts-on-priority-poker/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>1st International Workshop on Complexity and Real-World Applications, Day 1</title>
		<link>http://www.metaprog.com/blogs/2010/07/1st-international-workshop-on-complexity-and-real-world-applications-day-1/</link>
		<comments>http://www.metaprog.com/blogs/2010/07/1st-international-workshop-on-complexity-and-real-world-applications-day-1/#comments</comments>
		<pubDate>Thu, 22 Jul 2010 07:50:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Social Complexity]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=112</guid>
		<description><![CDATA[Yesterday was the first day of the 1st International Workshop on Complexity and Real-World Applications , an invitation-only event held in Southampton. Set in a scenic venue, the conference was organised in a loveably sloppy way by Andrew Tait and Kurt Richardson. The two of them are doing an admirable job, but the scenic venue [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday was the first day of the <a href="http://www.complexityapplications.com">1st International Workshop on Complexity and Real-World Applications</a> , an invitation-only event held in Southampton. Set in a scenic venue, the conference was organised in a loveably sloppy way by Andrew Tait and Kurt Richardson. The two of them are doing an admirable job, but the scenic venue is tending to be the biggest problem. As a hotel that probably caters mainly to weddings on weekends, it is woefully inadequate as a conference venue. You can follow the conference on Twitter (hashtag #cxapps), but the bad internet connectivity means that the back-channel communication I&#8217;m accustomed to from geek conferences isn&#8217;t happening. Also, being stuffed in a room with tables arranged in a U-form introduced an environment that was more conducive to presenting than to discussing, but at least we could break out into other parts of the scenic venue for conversations – and we did that a lot.</p>
<p>The workshop started with Kurt explaining the motivation behind organising it, after which followed the round of what Mark McKergow called &#8220;creeping-death&#8221; introductions. Although I also dislike such introduction rounds, it was fascinating to hear what diversity and depth of experience the attendees brought with them, and it was comforting to hear that they understood the same thing that I do for terms such as complexity and self-organisation.</p>
<p>After the introductions, we enjoyed the first part of a talk by <a href="http://www.rzevski.net/" target="_blank">George Rzevski</a>, professor emeritus for complexity science at the Open University. I won&#8217;t go into the talk in detail; the slides are available on the workshop <a href="http://www.complexityapplications.com" target="_blank">website</a>. One slide, though, was very thought- and discussion-provoking. There is still no generally agreed-on definition of complexity, and dozens of attempts exist. George presented his 7 criteria for complexity, which we found that (although there were differing points of view that could be discussed) seemed to all of us to be ok, good enough, a good first step towards a common definition.</p>
<p><strong>George Rzevski&#8217;s Seven Criteria for Complexity</strong></p>
<ol>
<li> INTERACTION &#8211; A complex system consists of a large number of diverse components (Agents) engaged in rich interaction</li>
<li>AUTONOMY &#8211;  Agents are largely autonomous but subject to certain laws, rules or norms;  there is no central control but agent behaviour is not random</li>
<li>EMERGENCE &#8211; Global behaviour of a complex system “emerges” from the interaction of agents and is therefore unpredictable</li>
<li>FAR FROM EQUILIBRIUM – Complex systems are “far from equilibrium” because frequent occurrences of disruptive events do not allow the system to return to the equilibrium</li>
<li>NONLINEARITY &#8211; Nonlinearity occasionally causes an insignificant input to be amplified into an extreme event (butterfly effect)</li>
<li>SELF-ORGANISATION &#8211; Complex systems are capable of self-organisation in response to disruptive events</li>
<li>CO-EVOLUTION &#8211; Complex systems irreversibly co-evolve with their environments</li>
</ol>
<p>After lunch, we held an extended poster session. Having never done a poster session before, I simply drew one using visualisation techniques (thanks to Martin Haussmann for teaching me!), and was surpised at the positive responses I got. My topic is the bi-directional insights of using the Cynefin method to understand why Agile works, and using Scrum as a framework for managing work in the complex domain. I&#8217;ll be presenting my paper on this later this morning, and am looking forward to the feedback and discussions that will come. During the poster session, I also had interesting talks with <a href="http://www.sfwork.com" target="_blank">Mark McKergow</a> on solution-focused therapy and complexity, and with Ed Olson on his CDE model and the Cynefin ABIDE model, which I use quite heavily in my work on self-organising teams.</p>
<p>When the poster session was done, there was still some time until the evening barbeque, and George Rzevski presented the second part of his talk. He&#8217;s done fascinating and world-class work, I highly recommend checking out his slides.</p>
<p>Dinner, drinks and conversation followed, and by the time I got to bed, I was suffering from information overload, and was too tired to write this blog post, which is why I&#8217;m doing it now.</p>
<p>More later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2010/07/1st-international-workshop-on-complexity-and-real-world-applications-day-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On understanding Agility&#8230;</title>
		<link>http://www.metaprog.com/blogs/2010/04/on-understanding-agility/</link>
		<comments>http://www.metaprog.com/blogs/2010/04/on-understanding-agility/#comments</comments>
		<pubDate>Sun, 25 Apr 2010 14:20:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=104</guid>
		<description><![CDATA[An email popped into my inbox yesterday that made me very happy. My paper on applying the Cynefin model to Agile software development was accepted to the 1st international workshop on complexity and real-world applications.
I was pleased because this acceptance is recognition of the research and work I&#8217;ve been doing for almost 15 years on [...]]]></description>
			<content:encoded><![CDATA[<p>An email popped into my inbox yesterday that made me very happy. My paper on applying the Cynefin model to Agile software development was accepted to the 1<sup>st</sup> international workshop on complexity and real-world applications.</p>
<p>I was pleased because this acceptance is recognition of the research and work I&#8217;ve been doing for almost 15 years on understanding why Agile processes work. Even more, I was happy because my session on this topic, as well as my session on coaching self-organising teams, were both rejected for the Agile 2010 conference, although both sessions had been presented there twice in the past (as well as at many other conferences), and had received excellent reviews each time.</p>
<p>I&#8217;m starting to think that the average Agile practitioner&#8217;s position with regards to complexity science etc. can best be described as &#8220;a little knowledge is a dangerous thing&#8221;. Terms such as complexity, self-organisation, emergence, and so on, are bandied about in a way that they&#8217;ve become as content-free as the term &#8220;Agile&#8221; itself. People also seem to be content to accept such idiotic statements as &#8220;Architecture self-organizes around working code&#8221;. I don&#8217;t know about you, but the last time I saw architecture self-organising was last Friday night, when a re-run of Terminator 2 came on late-night television.</p>
<p>In any case, that&#8217;s enough for this little rant. I&#8217;m going to get back to my research and writing, and hope that some of you will be as interested as I am in finding out why this Agile stuff really works. More (including the finished paper) later.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2010/04/on-understanding-agility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8220;Coaching self-organising teams&#8221; at the Orlando Scrum Gathering</title>
		<link>http://www.metaprog.com/blogs/2010/03/coaching-self-organising-teams-at-the-orlando-scrum-gathering/</link>
		<comments>http://www.metaprog.com/blogs/2010/03/coaching-self-organising-teams-at-the-orlando-scrum-gathering/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 10:24:59 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Presentations]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=101</guid>
		<description><![CDATA[I&#8217;m really looking forward to doing yet another run of my &#8220;coaching self-organising teams&#8221; session at next week&#8217;s Scrum Gathering in Orlando. A number of people have asked if the session is worth attending. I think it&#8217;s pretty good &#8211; I&#8217;ll be attending it &#8211; but I&#8217;m not really objective. If you&#8217;re also wondering, you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m really looking forward to doing yet another run of my &#8220;coaching self-organising teams&#8221; session at next week&#8217;s Scrum Gathering in Orlando. A number of people have asked if the session is worth attending. I think it&#8217;s pretty good &#8211; I&#8217;ll be attending it &#8211; but I&#8217;m not really objective. If you&#8217;re also wondering, you might want to check out what others have written about it:</p>
<p><a href="http://www.cio.com/article/447712/_Agile_Leadership_Lessons_for_the_Suits">http://www.cio.com/article/447712/_Agile_Leadership_Lessons_for_the_Suits</a><br />
<a href="http://www.agilitrix.com/2009/12/coaching-self-organizing-teams/">http://www.agilitrix.com/2009/12/coaching-self-organizing-teams/</a><br />
<a href="http://www.infoq.com/presentations/coaching-self-org-teams">http://www.infoq.com/presentations/coaching-self-org-teams</a><br />
<a href="http://www.infoq.com/news/2008/08/coaching_teams">http://www.infoq.com/news/2008/08/coaching_teams</a><br />
<a href="http://agilepainrelief.com/notesfromatooluser/2008/08/coaching-self-organizing-teams.html">http://agilepainrelief.com/notesfromatooluser/2008/08/coaching-self-organizing-teams.html</a><br />
<a href="http://chcrudy.wordpress.com/2009/08/30/joseph-pelrine-self-organizing-teams-and-turning-up-the-heat/">http://chcrudy.wordpress.com/2009/08/30/joseph-pelrine-self-organizing-teams-and-turning-up-the-heat/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2010/03/coaching-self-organising-teams-at-the-orlando-scrum-gathering/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Now that&#8217;s customer service!</title>
		<link>http://www.metaprog.com/blogs/2010/02/now-thats-customer-service/</link>
		<comments>http://www.metaprog.com/blogs/2010/02/now-thats-customer-service/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 07:59:11 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Diverse]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=99</guid>
		<description><![CDATA[A recent Swiss flight I took to Berlin was delayed for an hour because of snow, and when we got on board, the purser announced that there would be a further delay. What happened next was amazing. The captain himself came out of the cockpit, grabbed the microphone, and explained to us what was happening. [...]]]></description>
			<content:encoded><![CDATA[<p>A recent Swiss flight I took to Berlin was delayed for an hour because of snow, and when we got on board, the purser announced that there would be a further delay. What happened next was amazing. The captain himself came out of the cockpit, grabbed the microphone, and explained to us what was happening. Because of the delay getting into Zürich, we lost our slot for the flight, and the next one was in 45 minutes. He said that if we lucked out and were given an earlier slot, and were still standing outside, the time we needed to board would have caused us to miss that slot too. For that reason, he decided to board us, and was now able to complain to flight control that he had a full plane that was waiting for an earlier slot. It worked! We got a slot after 25 minutes.</p>
<p>Now that&#8217;s what I call customer service! Thanks, Captain Martin Simon!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2010/02/now-thats-customer-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>On retrospective coherence &#8211; Part 1</title>
		<link>http://www.metaprog.com/blogs/2009/10/on-retrospective-coherence-part-1/</link>
		<comments>http://www.metaprog.com/blogs/2009/10/on-retrospective-coherence-part-1/#comments</comments>
		<pubDate>Tue, 27 Oct 2009 17:39:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=78</guid>
		<description><![CDATA[I met up with my friend Michael last night. Michael&#8217;s a great guy, an expert in many fields, but one thing he really does well is throw a party. I have many happy (and sometimes drunken) memories of bashes held at his place.
One of the reasons I met up with him was because I&#8217;m planning [...]]]></description>
			<content:encoded><![CDATA[<p>I met up with my friend Michael last night. Michael&#8217;s a great guy, an expert in many fields, but one thing he really does well is throw a party. I have many happy (and sometimes drunken) memories of bashes held at his place.</p>
<p>One of the reasons I met up with him was because I&#8217;m planning a small surprise party for another close friend, and I wanted to benefit from his experience and advice. What made Michael&#8217;s parties so good? During our chat, we realized that it was it the people attending, and their conversations. Not only that, it was also the music. Of course, we couldn&#8217;t forget the food and drink.</p>
<p>In the end, I decided to ask Michael to help me organize the party. He knew exactly what needed to be done for a party to be a success, and I was convinced that, if we just did the same things he always did, my party would turn out great. So, what was the first thing he said?</p>
<p>&#8220;Joseph, if you want to have a great party, you have to invite all of my friends.&#8221;</p>
<p>I thought I didn&#8217;t hear right. I wanted to invite my own friends, but on the other hand, I knew that with his friends, the party would be a smash, like his parties. Sensing my disappointment, he tried to cheer me up by saying that he could save me a lot of money. I wouldn&#8217;t need a DJ, he said, because he noted all the songs his DJ played, and he could just give me a playlist for my iPod. I&#8217;d have to lock the iPod away, so that no one could manipulate the song order, but he was sure that with these specific songs, played exactly in this order, the party would be a success. Also, it seems he videotaped his last party, and noted what everyone ate and drank. He&#8217;d provide me with scripts for all the guests, with precise timings, so that everybody ate and drank the proper things at the proper time. Of course, all conversation and interaction would also be scripted.</p>
<p>So, just imagine you plan to have a party, and it must be as good as the last one you held. You invite the same people, and just to make sure you’ve covered everything, you tell them to wear the same things, and speak only to the same people as last time. You’ve got the same music playlist, the same food, drinks and layout. Will this be a good party? Does something seem wrong with this story?</p>
<p>The answers to these last questions seem logical, although you can&#8217;t easily explain why. There is a reason, though, and this reason is key to understanding the basic issues surrounding complex problems and agile methods.</p>
<p>It&#8217;s called retrospective coherence.</p>
<p>One thing that makes complex systems complex is their causality. In an ordered system, if you do something, you expect a specific result. Do it again, expect the same result. It&#8217;s that simple. In a complex system, though, the causality emerges as the system emerges. As the party goes on, the reasons for its success become established, not before. After it&#8217;s over, you can say that a party was a success, and that these people were there, this music was played, and this much beer was downed  – but you cannot say that the party was a success <em><strong>because</strong></em> these people were there, this music was played, and this much beer was downed!</p>
<p>In a complex system, causality emerges as the system itself emerges, so that at the end, you can say how you got to where you are, but you can&#8217;t guarantee that by doing exactly the same things, you&#8217;ll get to the same place again – and you probably won&#8217;t. In complex systems, we say the causality is retrospectively coherent.</p>
<p>So let&#8217;s take a closer look, and consider what it actually was that made Michael&#8217;s party so good. It wasn’t any one factor, but how they interacted. It wasn’t the components, but the emergent complex system, that was a success. An interesting thing to note here is that the things that people often interpret as being the causes of a success aren&#8217;t that, they&#8217;re the symptoms. For instance, was it the people that made the party a good one? The music that was played? His choice of fine food and drink? Well, yes and no. Michael played a significant part because he&#8217;s a great host. He&#8217;s constantly walking around, looking, questioning. Is anyone standing all alone? Introduce them to a group! Does everyone have a drink? If not, get some more beer! Are people dancing? Trying to talk? Put on upbeat or down-tempo music as appropriate! All the time, the good host is surveying the scene and making small adjustments.</p>
<p>As a good host, Michael drew some boundaries. His bedroom was off-limits. His single-malt collection locked away. And, he set up a few things that people would be attracted to: a wide-screen television, a keg of beer, some games maybe. Every party needs attractors. Did you ever wonder why so many people congregate in the kitchen at a party, even if it&#8217;s the smallest room?<br />
One thing he didn&#8217;t do is to define success, prescribe or proscribe behaviour (could you imagine saying that a party would only be a success if someone danced on the table with a lampshade on their head?). He let the party evolve, observed which patterns emerged, gently supported the good patterns, disrupted the bad patterns as soon as he noticed them, but generally let the party run itself.</p>
<p>Now shift the focus to a project. We tend to make the mistakes above when it comes to project planning. What worked last time? Why? Well, it must have been the people, the methodology, the meeting schedule – let’s do it the exact same way again. Like the repeat party, a project planned on this basis is likely to be a flop.</p>
<p>Contrary to Einstein’s definition, in a socially complex system, insanity is doing the same thing over and over again and expecting the <em><strong>same</strong></em> result!</p>
<p>(n.b. Dave Snowden has a classic story on organizing a child&#8217;s birthday party, and his story served as an inspiration for my version. You can find the story <a href="http://tr.im/DjQR" target="_blank">here</a>. Thanks, Dave!)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2009/10/on-retrospective-coherence-part-1/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Turning up the heat &#8211; the levels</title>
		<link>http://www.metaprog.com/blogs/2009/07/turning-up-the-heat-the-levels/</link>
		<comments>http://www.metaprog.com/blogs/2009/07/turning-up-the-heat-the-levels/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 11:57:24 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=74</guid>
		<description><![CDATA[(n.b. This section is still a work in progress. I&#8217;ve been finding it easier to explain the different levels by giving examples, i.e. symptoms, than by giving a long description).
Level 5: Burning
(results in team burnout and death marching)
At the burning level, the heat is too high. The stress level results in chaos, aggression, and a [...]]]></description>
			<content:encoded><![CDATA[<p><em>(n.b. This section is still a work in progress. I&#8217;ve been finding it easier to explain the different levels by giving examples, i.e. symptoms, than by giving a long description).</em></p>
<p><strong>Level 5: Burning</strong><br />
(results in team burnout and death marching)<br />
At the burning level, the heat is too high. The stress level results in chaos, aggression, and a regression to primitive behaviour patterns. This is a dangerous level, since the high pressure increases the friction between the team members, increasing the heat even more.</p>
<p>Characteristic behaviour patterns for this level<br />
•    Countless overtime hours leading to no result<br />
•    Stress<br />
•    Disagreements, fights<br />
•    Sickness<br />
•    Lack of communication<br />
•    Inefficiency<br />
•    Hectic<br />
•    Blame<br />
•    Restlessness<br />
•    Self-preservation<br />
•    Paralysis<br />
•    Panic<br />
•    Fear of attack<br />
<strong><br />
Level 4: Cooking</strong><br />
(ideal temperature for continuous improvement)<br />
This is the optimal temperature for mixing up and forming teams. At this level, the heat is high enough to force disruption of behaviour patterns, but not so high that team members regress into pre-conventional mode.</p>
<p>Characteristic behaviour patterns for this level<br />
•    Differences are resolved constructively<br />
•    Continuous improvement<br />
•    Enthusiasm<br />
•    Work is fun<br />
•    High productivity<br />
•    Constructive discussions<br />
•    Consensus<br />
•    Joy<br />
•    &#8220;We&#8221; – feeling<br />
•    Self-reflection<br />
•    Open discussions<br />
•    Progress<br />
•    Results<br />
•    Creativity<br />
•    Fun<br />
•    High performance<br />
•    Organised chaos<br />
•    Good communication</p>
<p><strong>Level 3: Cooling (Stagnation)</strong><br />
(discipline is lost and bad behaviour begins to fester)<br />
If not enough heat is applied, or when things cool down after a while (entropy), a team enters the cooling or stagnating stage. In the kitchen, this is where what was once a fine-tasting soup has become a substrate for fungus and bacteria growth. Most health departments even have laws requiring cooked foods to be cooled down within a certain short period of time, as to pass through this stage as quickly as possible.</p>
<p>Characteristic behaviour patterns for this level<br />
•    Slacking off<br />
•    Work becomes routine<br />
•    Loss of discipline<br />
•    Monotony<br />
•    Indifference<br />
•    9 to 5<br />
•    Too much discussion<br />
•    Minimal communication<br />
<strong><br />
Level 2: Congealing</strong><br />
(team gets too comfortable to achieve and bad habits become the norm)<br />
Increasing pressure to adhere to &#8220;norms“ &#8211; &#8220;that&#8217;s the way we do things here&#8221;</p>
<p>Characteristic behaviour patterns for this level<br />
•    Change becomes difficult<br />
•    Many meetings<br />
•    Multiple implementation of work<br />
•    Problems become difficult to solve, because everything&#8217;s a mass/mess<br />
•    Boredom<br />
•    Much talk, no action<br />
•    Consensus becomes difficult<br />
•    Resignation<br />
•    Splitting of the teams into cliques<br />
•    Everyone works for themselves<br />
•    Minimalism<br />
•    Defensive stance<br />
•    Hiding behind procedures and rules</p>
<p><strong>Level 1: Solid/frozen</strong><br />
(control takes over and change is no longer possible)<br />
Inflexible, rigid burocracy &#8211; &#8220;that&#8217;s the way things are done!&#8221;</p>
<p>Characteristic behaviour patterns for this level<br />
•    No interest or excitement<br />
•    No initiative<br />
•    No exchange or communication<br />
•    No motivation<br />
•    Standing still<br />
•    CYA<br />
•    Feeling of Powerlessness<br />
•    Retreating to and hiding behind rules<br />
•    Avoiding work<br />
•    Lack of motivation</p>
<p><strong>A topological observation of the heat model</strong></p>
<p>An interesting observation, and one which may help explain the entropy analogy, is the fact that the characteristic behaviour patterns seen when the system cools down to the solidifying level and similar to the ones seen at the burning level. The system seems to wrap around topologically (spiral?), similar to the bottom section of the Cynefin butterfly model.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2009/07/turning-up-the-heat-the-levels/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Turning up the heat &#8211; the basic model</title>
		<link>http://www.metaprog.com/blogs/2009/06/turning-up-the-heat-the-basic-model/</link>
		<comments>http://www.metaprog.com/blogs/2009/06/turning-up-the-heat-the-basic-model/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 14:39:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Writing]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=65</guid>
		<description><![CDATA[In my first book excerpt, I described the idea behind the heat model. Here&#8217;s the model itself.
In the &#8220;turning up the heat&#8221; model, we differentiate between 5 different levels of heat: burning, cooking, cooling, congealing, and solidifying. It takes effort and energy to maintain any level of heat. The dissipation of heat in teams can [...]]]></description>
			<content:encoded><![CDATA[<p>In my <a href="http://www.metaprog.com/blogs/?p=49" target="_blank">first book excerpt</a>, I described the idea behind the heat model. Here&#8217;s the model itself.</p>
<p>In the &#8220;turning up the heat&#8221; model, we differentiate between 5 different levels of heat: burning, cooking, cooling, congealing, and solidifying. It takes effort and energy to maintain any level of heat. The dissipation of heat in teams can be thought of as ‘social entropy’.  The natural forces of entropy as described in the Second Law of Thermodynamics apply as much to social organizations and interpersonal relationships as they do to molecules or galaxies.</p>
<p>Why do teams, even ones that are experiencing problems, not want to change? My thesis is that most of the time people and teams are in stasis and so resistant to change. To make change occur we have to raise the heat just enough people no longer feel comfortable in their current environment. I believe that when we see teams that stop doing TDD or other practices that it&#8217;s often because the heat has been turned off. Working in a rigorous fashion I recommend that we only make one change at a time in response to problems we want to improve. This allows us time to observe the system for retrospective coherence and adapt accordingly. It also reflects the fact that changes happen with a delay, and helps us to avoid over-correction (see Dörner&#8217;s example, later in this chapter).</p>
<p>The use of heat has analogy in cooking – most people on turn heat on or off but as coaches we need to understand the five levels. To connect the analogy:</p>
<p>Burning – food tastes burnt, teams fall apart.<br />
Cooking – flavours in food are well integrated, teams adapt to new ideas<br />
Cooling – bacteria grows in food, teams stagnate and start to stop using tools<br />
Congealing – teams are starting to lose their flexibility and lock in their habits<br />
Solid/Frozen – bureaucracy has set in, there are forms to fill out and sign offs</p>
<p>A coach needs to recognise the characteristics of a team in each of the stages. Most often, a team will be moving between levels, unless they’ve got to the state of complete burnout or complete stasis.</p>
<p>In the next book excerpt, we&#8217;ll look at the individual levels in more detail. It&#8217;s challenging for me to explain them, and I find that they&#8217;re most easily defined by example.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2009/06/turning-up-the-heat-the-basic-model/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>The relationship between XP and Scrum project variables</title>
		<link>http://www.metaprog.com/blogs/2009/06/the-relationship-between-xp-and-scrum-project-variables/</link>
		<comments>http://www.metaprog.com/blogs/2009/06/the-relationship-between-xp-and-scrum-project-variables/#comments</comments>
		<pubDate>Tue, 09 Jun 2009 18:01:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile Adages]]></category>

		<guid isPermaLink="false">http://www.metaprog.com/blogs/?p=58</guid>
		<description><![CDATA[I&#8217;m on the road right now, and don&#8217;t have time to write a long post, but I don&#8217;t want to withhold this interesting insight from you.
Last week, I attended the first Swiss Lean/Agile/Scrum conference. As usual, the Swiss take a long time to catch up with new ideas and technology, but when there&#8217;s money to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m on the road right now, and don&#8217;t have time to write a long post, but I don&#8217;t want to withhold this interesting insight from you.</p>
<p>Last week, I attended the first Swiss Lean/Agile/Scrum conference. As usual, the Swiss take a long time to catch up with new ideas and technology, but when there&#8217;s money to be had, they&#8217;re right up at the front of the line. Anyway, Ken Schwaber gave a very interesting presentation on the concept of &#8220;Done&#8221;. He showed the canonical burndown chart, and then took the individual vectors apart.</p>
<p style="text-align: center;"><a href="http://www.metaprog.com/blogs/wp-content/uploads/2009/06/scrumvariables.png"><img class="size-medium wp-image-59 aligncenter" title="scrumvariables" src="http://www.metaprog.com/blogs/wp-content/uploads/2009/06/scrumvariables-300x102.png" alt="" width="300" height="102" /></a></p>
<p>Seeing the variables separated like that got me to thinking, and I had the chance to run my thoughts past <a href="http://availagility.wordpress.com/" target="_blank">Karl Scotland</a> and <a href="http://peripateticaxiom.blogspot.com" target="_blank">Keith Braithwaite</a>, both of whom went out for a beer with me afterwards.</p>
<p>Back in the early days of XP, we defined a set of project variables:</p>
<p style="text-align: center;"><a href="http://www.metaprog.com/blogs/wp-content/uploads/2009/06/xpvariables.png"><img class="size-medium wp-image-60 aligncenter" title="xpvariables" src="http://www.metaprog.com/blogs/wp-content/uploads/2009/06/xpvariables-300x168.png" alt="" width="300" height="168" /></a></p>
<p>The rule went, &#8220;Time, Resources, Quality, Scope &#8211; choose three&#8221;. Whichever three you chosse, the fourth variable would be a function of the other three. Which three were actually chosen was the customer&#8217;s decision. Some customers (and managers) don&#8217;t understand this rule, and try to grab control of all 4 variables. By doing that, the first variable that&#8217;s dropped is quality, followed by time.</p>
<p>So, how do these sets of variables map to each other? The first two are easy:</p>
<ul>
<li>time = time</li>
<li>backlog = scope</li>
</ul>
<p>The other 2 are a bit more difficult:</p>
<ul>
<li>V = f(R)</li>
</ul>
<p>Velocity (burndown rate) is a function of the available resources. Regardless of what you have to do, having more resources will normally allow you to go faster. This function is non-simple and non-linear, unfortunately: as <a href="http://en.wikipedia.org/wiki/Brooks%27_law" target="_blank">Fred Brooks rightly says</a>, &#8220;adding manpower to a late software project makes it later&#8221;, but the simple case is a more or less linear function.</p>
<p>Quality is even more complicated:</p>
<ul>
<li>q = ∂<em>V</em>/∂<em>t</em></li>
</ul>
<p>As <a href="http://www.danube.com/blog/danrawsthorne" target="_blank">Dan Rawsthorne</a> says, &#8220;Quality is the first derivative of the burndown&#8221;. The quality of a product is directly related to the development velocity/burndown rate.</p>
<p>So, so much for that thought. Keith spun the thought even further, proposing in his <a href="http://peripateticaxiom.blogspot.com/2009/06/quality-of-non-declining-velocity.html" target="_blank">recent blog post</a> that you can increase velocity by increasing quality. I agree with him, and I recommend you read the post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.metaprog.com/blogs/2009/06/the-relationship-between-xp-and-scrum-project-variables/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

