<?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>AgileKiwi</title>
	<atom:link href="http://www.agilekiwi.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.agilekiwi.com</link>
	<description>The neglected essentials of software development</description>
	<lastBuildDate>Fri, 03 Feb 2012 02:51:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Clarification to Paired Experts Post</title>
		<link>http://www.agilekiwi.com/other/news/clarification-to-paired-experts-post/</link>
		<comments>http://www.agilekiwi.com/other/news/clarification-to-paired-experts-post/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 06:01:16 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=723</guid>
		<description><![CDATA[<p>FYI I&#8217;ve just appended a small clarification to the end of my recent <a title="Expertise versus Pair Programming" href="http://www.agilekiwi.com/other/agile/expertise-meets-pair-programming/">Pairing and Experts pos</a>t, clarifying what&#8217;s meant by &#8220;expert&#8221;.</p>
]]></description>
			<content:encoded><![CDATA[<p>FYI I&#8217;ve just appended a small clarification to the end of my recent <a title="Expertise versus Pair Programming" href="http://www.agilekiwi.com/other/agile/expertise-meets-pair-programming/">Pairing and Experts pos</a>t, clarifying what&#8217;s meant by &#8220;expert&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/other/news/clarification-to-paired-experts-post/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Expertise versus Pair Programming</title>
		<link>http://www.agilekiwi.com/other/agile/expertise-meets-pair-programming/</link>
		<comments>http://www.agilekiwi.com/other/agile/expertise-meets-pair-programming/#comments</comments>
		<pubDate>Sat, 28 Jan 2012 19:00:04 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[Agile Software Development]]></category>
		<category><![CDATA[Understanding ourselves]]></category>
		<category><![CDATA[expertise]]></category>
		<category><![CDATA[pair programming]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=688</guid>
		<description><![CDATA[<p>Let’s start this post with a thought experiment.  Not in software development, but in playing chess.</p>
<p>Imagine two novice chess players, working as a team. (We’ll assume their opponent is a computer, so it can’t overhear them talk.)  Our two novices will benefit greatly from their collaboration.  They’ll discuss all&#8230; <a href="http://www.agilekiwi.com/other/agile/expertise-meets-pair-programming/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>Let’s start this post with a thought experiment.  Not in software development, but in playing chess.</p>
<p>Imagine two novice chess players, working as a team. (We’ll assume their opponent is a computer, so it can’t overhear them talk.)  Our two novices will benefit greatly from their collaboration.  They’ll discuss all their thinking – everything from possible moves, to correcting each others mistakes, to “can you remind me how a knight moves?”.  Working together like this they will make fewer mistakes, and generate better moves than each would have done alone.</p>
<p>But what if we paired two chess masters?  <a href="http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/">Scientific research proves</a> that the thinking of experts is different. Much of it happens as automatic pattern recognition rather than conscious reasoning.  When a chess master looks at a chess position, (good) possible moves spring to mind immediately.  As described in my previous post, these “candidate moves” are generated directly by the brain’s underlying neural network.  Neural networks can’t explain their own reasoning, so the master doesn’t consciously know <em>why</em> those moves came to mind.  Of course, the moves are indeed based on the master’s long experience, but the mapping from prior experience to current ideas is not open to inspection by the conscious mind.</p>
<p><span id="more-688"></span></p>
<p>So how will our two chess masters collaborate?  Neither can explain to the other <em>why</em> they thought of particular moves – because the conscious, effortful part of the mind doesn’t actually <em>know</em>. So what will their conversation consist of?</p>
<ul>
<li>They <strong>can’t discuss the justification</strong> for their proposed moves, because as we just saw, they don’t <em>know</em> the justification.  (Several writers, including Nobel-winner Daniel Kahneman, point out that if you ask an expert, “Why did you suggest that?”, their effortful mind will indeed come up with a justification of the idea, but the justification is produced <em>after the fact</em>. It doesn’t necessarily match the invisible reasoning that originally <em>created</em> the idea.  In fact, I’d suggest that since the invisible reasoning consisted of pattern matching in a neural network, any attempt at a logical sequential description would be incomplete at best.)</li>
<li>Instead, imagine that they pool their sets of candidate moves, and then discuss <em>which</em> of those moves to actually play.  This approach makes sense because, as we saw in the <a href="http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/">previous post</a>, selecting <em>one</em> of the candidate moves requires effortful thought.  And effortful thoughts can be perceived and described by the thinker.  So let’s assume our two chess masters try to share these thoughts.  If they do, I believe they’ll run into another problem: <strong>verbalizing the thought process slows it down – a lot</strong>.  A master thinks through many possibilities: What would happen if I play this move?  How would my opponent probably respond?  How would I respond to that?  A master can process these “what ifs” relatively quickly.  Not nearly as quickly as the automatic thinking that produced the initial set of candidate moves, but much, much faster than the rate of human speech.   To share thoughts verbally, the master must slow down to speaking speed.  In summary, although it’s possible to verbalize these thoughts, there’s a high (performance) cost in doing so.</li>
</ul>
<h2>Pair Programming</h2>
<p>Now let’s consider the analogy to pair programming. Novice programmers don’t yet make significant used of automatic pattern recognition, instead they rely more heavily on effortful thought.   Therefore their thoughts are open to introspection and can be verbally shared.  Experts, on the other hand, make significant use of the “automatic” part of their mind.  So most of their thought processes are not open to conscious introspection, and the remainder are so fast that verbalization carries a huge performance cost.</p>
<p>I think this may explain the confusion and frustration that some experienced programmers, including myself, feel when we’re asked to pair.  We can’t see how to map our automatic thought processes into the driver/navigator model of pair programming.  Furthermore we probably can’t explain what the problem is – at least, I know I couldn’t, until I read <a href="http://www.amazon.com/Thinking-Fast-and-Slow-ebook/dp/B005MJFA2W/ref=tmm_kin_title_0?ie=UTF8&amp;m=A3QI763M62X7GQ">Kahneman’s effortful/automatic description of the brain</a>.  His book points out that because automatic thought is, well, <em>automatic</em>, we lack awareness of its role in our thinking.  Since we lack awareness, we struggle to explain the difficulty we have with pairing. I hope that greater awareness of Kahneman’s work will give us a suitable vocabulary to describe the problem.</p>
<p>I also hope to stimulate discussion.  The thought processes of an expert, which elegantly combine the automatic with the logical, are extremely efficient. I believe pairing undermines this efficiency – by leading coders to create after-the-fact justifications of their automatic intuitions, and forcing them to unpack their conscious thoughts into spoken language.  I suspect paired experts may even find themselves forced back into novice-like patterns of thought.</p>
<p>What do you think, does pairing prevent experts from performing at their best?</p>
<p><strong>Update, 31 Jan:</strong> I should clarify what I mean by &#8220;expert&#8221;.  I use the term in the sense used by Daniel Kanheman, Anders Ericsson and other researches into expertise.  But you might have seem some pair programming studies use the term “expert” in a different way, particularly those studies where all test subjects were students.  In those studies the word “expert” simply means “good performer” – a student who gets unusually good grades.  These cannot be experts in the Kahneman/Ericsson sense of term.  Developing that kind of expertise takes many years, far longer than any university degree.  Furthermore, Kahneman/Ericsson expertise is not simply about <em>possessing</em> knowledge, in the manner of an A student; instead it is about a mode of thought in which much of the knowledge is possessed <em>and processed</em> unconsciously, through <a title="Becoming an Expert" href="http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/">automatic pattern-recognition</a> honed by long experience.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/other/agile/expertise-meets-pair-programming/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>People Skills for Everyone</title>
		<link>http://www.agilekiwi.com/peopleskills/people-skills-for-everyone/</link>
		<comments>http://www.agilekiwi.com/peopleskills/people-skills-for-everyone/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 07:30:32 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[People Skills]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=683</guid>
		<description><![CDATA[<p>I was talking to my Mum recently.  I mentioned that I&#8217;m becoming even more interested in people skills, and she said, &#8220;Oh, so you&#8217;re interested in management then.&#8221;</p>
<p>Actually, no.</p>
<ol>
<li>I&#8217;m interested in people who are <em>not</em> managers improving their people skills.</li>
<li>I&#8217;m interested in busting the myth that</li></ol><p>&#8230; <a href="http://www.agilekiwi.com/peopleskills/people-skills-for-everyone/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>I was talking to my Mum recently.  I mentioned that I&#8217;m becoming even more interested in people skills, and she said, &#8220;Oh, so you&#8217;re interested in management then.&#8221;</p>
<p>Actually, no.</p>
<ol>
<li>I&#8217;m interested in people who are <em>not</em> managers improving their people skills.</li>
<li>I&#8217;m interested in busting the myth that &#8220;people skills&#8221; is a topic exclusively for managers.</li>
<li>I&#8217;m interested in busting the myth that improvements in people skills must be initiated by managers or trainers.  I want them to be initiated by   people who actually want to improve their own skills.</li>
</ol>
<p>If you&#8217;re interested in the same things, please comment below or email me (address on <a title="About" href="http://www.agilekiwi.com/about/">About</a> page).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/peopleskills/people-skills-for-everyone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Becoming an Expert</title>
		<link>http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/</link>
		<comments>http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/#comments</comments>
		<pubDate>Sat, 21 Jan 2012 05:03:38 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[Understanding ourselves]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=583</guid>
		<description><![CDATA[<p>Imagine looking at a dog.&#160; You instantly know that it is, indeed, a dog.&#160; That’s an incredible feat of pattern recognition, performed almost instantly and without any conscious effort. </p>
<p>Is it really incredible?&#160; Yes.&#160; It just seems easy because you’ve been doing it effortlessly since about age three.&#160; To&#8230; <a href="http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>Imagine looking at a dog.&#160; You instantly know that it is, indeed, a dog.&#160; That’s an incredible feat of pattern recognition, performed almost instantly and without any conscious effort. </p>
<p>Is it really incredible?&#160; Yes.&#160; It just seems easy because you’ve been doing it effortlessly since about age three.&#160; To remind yourself how difficult it actually is, imagine designing an algorithm to recognise dogs.&#160; Exactly what would be the rules for distinguishing a small small dog from a large cat?&#160; How would you define the category “dog” such that it included Chihuahuas and Great Danes,&#160; but not foxes and wolves? </p>
<p>Nobel prize winner Daniel Kahneman uses the dog example to explain the <a href="http://www.amazon.com/Thinking-Fast-and-Slow-ebook/dp/B005MJFA2W/ref=tmm_kin_title_0?ie=UTF8&amp;m=A3QI763M62X7GQ">two ways humans think</a>.&#160; One way is <strong>effortful thought </strong>– what we do when consciously thinking about something.&#160; The other doesn’t even feel like thinking it all.&#160; It’s just effortless <strong>automatic perception</strong> – like seeing a dog.&#160; Much of our brain’s activity is of the automatic kind.&#160; Kahneman gives several examples to show the difference:</p>
<table border="0" cellspacing="0" cellpadding="2" width="600">
<tbody>
<tr>
<td valign="top" width="300"><strong>Automatic</strong></td>
<td valign="top" width="300"><strong>Effortful</strong></td>
</tr>
<tr>
<td valign="top" width="300">Detect that one object is more distant than another</td>
<td valign="top" width="300">Focus on the voice of a particular person in a crowded and noisy room</td>
</tr>
<tr>
<td valign="top" width="300">Detect hostility in a voice</td>
<td valign="top" width="300">Tell someone your phone number</td>
</tr>
<tr>
<td valign="top" width="300">Answer 2 + 2 = ?</td>
<td valign="top" width="300">Answer 17 x 24 = ?</td>
</tr>
<tr>
<td valign="top" width="300">Drive a car on a empty road (unless you are just learning to drive, in which case this belongs in the “effortful” column)</td>
<td valign="top" width="300">Check the validity of a logical argument</td>
</tr>
</tbody>
</table>
<h2>Expertise</h2>
<p>What does this have to do with expertise?&#160; The answer is simply this: expertise involves significant “automatic” thought.&#160; For example, you happen to be an expert in recognising dogs.&#160; You accomplish that task with no conscious effort whatsoever. </p>
<p>The same applies to activities that we normally associate with “expertise”.&#160; Chess masters are a compelling example.&#160; When a chess master looks at a board, several strong moves immediately spring to mind.&#160; Just like you effortlessly “see” that an animal is a dog, a chess master effortlessly “sees” which moves make sense.&#160; This set of “candidate moves” is generated automatically, without conscious effort.&#160; Only <em>after</em> the moves spring to mind does the master actually start consciously thinking about them – to decide <em>which</em> of the candidate moves is <em>best</em>.</p>
<p>As Kahneman writes:</p>
<blockquote><p>[Experts’] intuitive judgements come to mind with the same immediacy as [a child’s] “doggie!&quot;</p>
</blockquote>
<h2>An Analogy</h2>
<p>It may seem hard to believe, that many of our most difficult mental tasks are performed instantly and unconsciously.&#160; As Kahneman points out, their very automatic-ness leads us to overlook their importance.&#160; </p>
<p>When I was reading his book, I found it helpful to recall the university paper I took in artificial intelligence.&#160; There we learned about artificial neural networks. Neural networks implement an approach to computation which is inspired by the structure of the human brain. They are very fast and effective “pattern recognisers” but, having recognised an input as matching a particular pattern, they are completely unable to tell you <em>why</em> it matched the pattern. I.e. they can’t explain their “reasoning”. This exactly matches Kahneman’s description of our automatic thought – it gives you an impression/hunch very quickly, but is unable to tell you why. So:</p>
<ul>
<li>I imagined the brain’s underlying hardware as a neural network – quick to recognise patterns, but unable to explain its logic.&#160; It is here that our automatic thinking takes place.&#160; So it’s easy to see why our automatic thinking is so fast – neural networks are naturally fast pattern recognisers, and ours is implemented directly in “hardware”.&#160; </li>
<li>I imagined effortful thought as a simulation running on top of the underlying hardware.&#160; Rather like a <a href="http://en.wikipedia.org/wiki/Virtual_machine">virtual machine</a>.&#160; Inside the virtual machine, thinking is sequential and logical.&#160; But, because the virtual machine is just an <em>emulation</em>, it runs slowly and has limited working memory.&#160; (Question: does this imply our effortful thoughts aren’t “real”?&#160; No. Just that they have a complicated origin, but our automatic thoughts are not subject to the same performance limitations.) </li>
</ul>
<p><a href="http://www.agilekiwi.com/wp-content/uploads/2012/01/Simulated-System2.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="Simulated System2" border="0" alt="Simulated System2" src="http://www.agilekiwi.com/wp-content/uploads/2012/01/Simulated-System2_thumb.png" width="493" height="442" /></a></p>
<p>&#160;</p>
<p>I wouldn’t dare to suggest that this model is accurate in terms of the underlying biology, but as a software engineer I found it helpful in understanding Kahneman’s work.</p>
<h2>Developing Expertise</h2>
<p>Consider two chess players, a novice and a master.&#160; The novice relies almost entirely on effortful thought.&#160; “How does a knight move?”, “Let me think what would happen if I moved my rook to here…”.&#160; But the master makes heavy use of automatic thought.&#160; The master’s automatic mind takes care of most of the details that the novice struggles with, leaving the master’s effortful mind free to add value where it is most needed.&#160; Consequently the master can produce better decisions in less time.</p>
<p>But how does the novice <em>become</em> a master?&#160; How does someone using effortful thought slowly transition to creating (good-quality) automatic thoughts?&#160; Through practice.&#160; With enough time, and enough examples, your underlying neural network trains itself to recognise the patterns.</p>
<p>Three sources have influenced my thinking about this kind of practice:</p>
<ul>
<li>James Bach’s <a href="http://www.satisfice.com/presentations/rigor.pdf">Myths of Rigour</a> presentation (which to me, could equally well have been entitled “What is learning?”).&#160; I can’t find the audio or video online, unfortunately. </li>
<li>Anders Ericsson’s work on <a href="http://www.freakonomics.com/2006/05/07/freakonomics-in-the-times-magazine-a-star-is-made/">deliberate practice</a> </li>
<li>Alistair Cockburn’s concept of <a href="http://alistair.cockburn.us/Shu+Ha+Ri">Shu-Ha-Ri</a>.&#160; To join the dot’s between Shu-Ha-Ri and Kahneman’s work, I’d suggest that the Shu-Ha-Ri progression equates to the same progression described above: from a novice who uses only effortful thought, to an expert who uses a highly efficient blend of automatic and effortful thought.&#160;&#160; </li>
</ul>
<h2>A Software Example</h2>
<p>I recently noticed how various people debug the large software solution that I’ve been working on for some years.&#160; When I need to debug it myself, I don’t get “stuck”. I might not know the cause of the problem, but I always have an idea on what to do next – something that will take me one step closer to finding the problem. Just like experienced players instantly “see” good moves in a chess game; I tend to “see” good moves in the debugging process. A series of such moves, possibly with some backtracking, eventually leads to a solution.&#160; But I’ve noticed junior developers are much more likely to get stuck – when faced with a problem they sometimes have trouble generating the “next move”.&#160;&#160; I’ve also noticed that although I generate moves more successfully than juniors, I seem to expend <em>less</em> conscious effort in doing so.</p>
<p>Of course, this is no excuse for me to take an ego trip – after about 7000 hours with this code base, and a decade’s experience on other systems before it, I darn well <em>should</em> have automatic expertise by now!&#160; Junior programmers, or senior ones with less experience of the system at hand, have no choice but to generate fewer moves automatically and fill the gaps with effortful thought.&#160; Over time, their balance will gradually shift from effortful to automatic.</p>
<h2>Implications</h2>
<p>The science of expertise has many implications for how we recruit, train and deploy software engineers.&#160; In a future post, I intend to explore the implications for pair programming.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/peopleskills/understanding-ourselves/becoming-an-expert/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Bayes&#8217; Theorem Demystified</title>
		<link>http://www.agilekiwi.com/estimationandpricing/bayes-theorem-demystified/</link>
		<comments>http://www.agilekiwi.com/estimationandpricing/bayes-theorem-demystified/#comments</comments>
		<pubDate>Fri, 30 Dec 2011 00:52:23 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[Estimation and Pricing]]></category>
		<category><![CDATA[decision making]]></category>
		<category><![CDATA[slightly off topic]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=587</guid>
		<description><![CDATA[<p><a href="http://www.codinghorror.com/blog/2007/04/an-initiate-of-the-bayesian-conspiracy.html">Bayes’ Theorem</a> is an important tool when analysing probabilities.&#160; It helps us to avoid <a href="http://en.wikipedia.org/wiki/List_of_cognitive_biases">cognitive traps</a> and make better decisions.&#160; However, it is usually presented as something difficult, or even controversial.&#160; The typical article on Bayes’ Theorem stresses how difficult it is, and then goes on to bemoan the&#8230; <a href="http://www.agilekiwi.com/estimationandpricing/bayes-theorem-demystified/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.codinghorror.com/blog/2007/04/an-initiate-of-the-bayesian-conspiracy.html">Bayes’ Theorem</a> is an important tool when analysing probabilities.&#160; It helps us to avoid <a href="http://en.wikipedia.org/wiki/List_of_cognitive_biases">cognitive traps</a> and make better decisions.&#160; However, it is usually presented as something difficult, or even controversial.&#160; The typical article on Bayes’ Theorem stresses how difficult it is, and then goes on to bemoan the fact that its not more widely used!&#160; In contrast, I argue that Bayes can be explained concisely, memorably, and intuitively.</p>
<p>Read on, and judge for yourself whether I’ve succeeded…</p>
<p><span id="more-587"></span><br />
<h2>Example</h2>
<p>Consider this example <a href="http://en.wikipedia.org/wiki/Bayes'_theorem#Frequentist_example">adapted from Wikipedia</a>: An entomologist finds a beetle with spots on its back. She thinks it might be a rare subspecies, because 98% of the rare subspecies have such spots, but only 5% of the common variety have them.&#160; The subspecies makes up only 0.1% of the population. Given the fact that the beetle in her hand is spotty, what is the probability that it is also rare?</p>
<p>The entomologist wants to know <strong>P(rare|spotty), </strong>which reads from left to right as “probability of being rare, given that it’s spotty”.</p>
<p>This is the time to use Bayes’ Theorem.&#160; She wants <strong>P(rare|spotty)</strong> but only has <strong>P(spotty|rare).</strong>&#160; The latter is 98%, but she suspects that the former may be much lower.&#160; She’s right, the spotted beetle in her hand is probably <em>not</em> rare… and Bayes’ can tell us why.</p>
<h2>Memorable</h2>
<p>I want to explain Bayes’ Theorem in a way that is easy to remember.&#160; To begin, let’s start from scratch and think about the probability that one randomly-selected beetle is both rare <em>and</em> spotty.&#160; There are two mathematically-correct ways to express that probability.&#160; One is to write:</p>
<p>P(rare <u><em>and</em> </u>spotty) = P(spotty|rare) P(rare)&#160;&#160;&#160;&#160;&#160;&#160;&#160; <br />= “(the probability of it being spotty, given that it <em><u>is</u></em> rare)<em> times (</em>the probability of it being rare in the first place)</p>
<p>The other is:</p>
<p>P(rare <em><u>and</u></em> spotty) = P(rare|spotty) P(spotty)&#160;&#160; <br />=&#160; “(the probability of it being rare, given that it <em><u>is</u></em> spotty) <em>times</em> (the probability of it being spotty in the first place)”</p>
<p>We’ve just written down two different ways to compute the same thing.&#160; So they must be equal to each other. I.e.:</p>
<p>P(spotty|rare) P(rare)&#160; = P(rare|spotty) P(spotty)</p>
<p>If we re-express this in a general-purpose notation, we get</p>
<p><strong><font size="4">P(A|B) P(B) = P(B|A) P(A)</font></strong></p>
<p>That is the formula you need to remember.&#160; To recall its left-hand side, remember this intuitive fact: the probability of two events <em>both</em> happening is the (<a href="http://en.wikipedia.org/wiki/Conditional_probability">conditional</a>) probability of one happening given that the other already <em>has</em> happened, times the (un-conditional) probability of the other.&#160;&#160;&#160;&#160; The right-hand side is just the same thing round the other way.</p>
<p>That’s all you need to remember.&#160; Start with the above formula, then use basic algebra to re-arrange it into the form you want.&#160; For instance, if you want to compute P(A|B), just divide both sides by P(B).&#160; (You’ll end up with the usual form of the Bayes’ equation, as seen in textbooks.)</p>
<h2>Intuitive</h2>
<p>Where Bayes gets interesting is when its used to assess the probability of some hypothesis, given the available evidence.&#160;&#160;&#160; Dividing both sides of our formula by P(B), and renaming&#160; A as the “hypothesis” and B as the “evidence”, we get this:</p>
<p>P(hypothesis|evidence) = P(evidence|hypothesis)&#160;&#160; P(hypothesis)    <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;     <br />&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; P(evidence)</p>
<p>Let&#8217;s consider a simple example involving a blond-haired young boy called Johnny, and an apple that’ is missing from the neighbour’s tree.&#160; The hypothesis in question is “Little Johnny stole the apple” and the evidence is “blond hair left snagged in apple tree”.&#160;&#160; The angry neighbour wants to know the probability that Johnny did indeed steal the apple, given the evidence of the hair – i.e.&#160; P(Johnny-stole-apple|blond-hair-left-at-scene).&#160; Our formula becomes</p>
<p>P(Johnny-stole-apple|blond-hair-left-at-scene) =    </p>
<p>&#160;&#160;&#160;&#160; P(blond-hair-left-at-scene|Johnny-stole-apple)&#160; P(Johnny-stole-apple)     <br />&#160;&#160;&#160;&#160; &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;&#160; <br />&#160;&#160;&#160;&#160;&#160; P(blond-hair-left-at-scene)</p>
<p>When used is this way, the formula includes three things:</p>
<ul>
<li>the left-hand-side, P(Johnny-stole-apple|blond-hair-left-at-scene), represents our degree of belief that Johnny stole the apple, <em>after</em> taking into account the evidence of the blond hair.&#160; This is called the <em>posterior</em> probability. </li>
<li>the term on the far right, P(Johnny-stole-apple), represents our degree of belief that Johnny stole the apple, <em>before</em> taking into account the evidence of the blond hair.&#160; This is called the <em>prior</em> probability.&#160; </li>
<li>The rest (i.e. middle) of the equation represents how the evidence of the blond hair influences the prior belief, by making it stronger or weaker. </li>
</ul>
<p>Let’s consider each of the RHS terms, and see how they are relevant to the outcome.&#160; Firstly, consider <strong>P(blond-hair-left-at-scene|Johnny-stole-apple).</strong>&#160; For instance, if the neighbour knew that Johnny suffered from excessive hair loss, then this probability would go up.&#160; I.e. if he was particularly likely to lose hair, then the presence of hair would be stronger evidence of his guilt (as opposed to <em>someone else’s</em> guilt).&#160; Conversely, if Johnny always wore hats, then the presence of a hair would be weaker evidence of <em>his</em> guilt.</p>
<p>Secondly, let’s consider <strong>P(blond-hair-left-at-scene).</strong>&#160; This is the overall probability of a blond hair left at the scene, regardless of who committed the crime.&#160; If this number goes up, then the hair is considered weaker evidence of guilt. For instance, if the crime occurred in a Swedish town where most boys have blond hair, then a blond hair would be relatively weak evidence against Johnny.&#160; It could have come from almost anyone.&#160; But if the crime occurred in China, the probability of a <em>blond</em> hair being left at the scene would be much lower, so the fact that one <em>was</em> found is stronger evidence against little blond Johnny.</p>
<p>Finally, let’s consider <strong>P(Johnny-stole-apple).</strong>&#160; This is the neighbour’s prior belief that Johnny stole the apple – i.e. his belief before considering <em>this particular</em> evidence.&#160; If the neighbour knows that Johnny is a caring, honest, Boy Scout with an allergy to apples, then his prior belief in Johnny’s guilt will be relatively low.&#160; To reverse that prior belief, and produce a high posterior probability of guilt, the evidence of the hair would have to be particularly compelling.&#160; (E.g. Johnny is the only blond-haired boy in a Chinese village, and he suffers from persistent hair loss).&#160;&#160; If the neighbour doesn’t know Johnny at all, then he has no option but to assign prior probability based on the population in general – e.g. if there are 10 kids in the neighbourhood, the prior probability of Johnny being the thief could be assumed to be 1/10th.</p>
<p>So we can see that all terms of the right hand side contribute to the final result in ways that are intuitively sensible.&#160; Bayes’ is not so hard.&#160; <em>It actually makes intuitive sense.</em></p>
<h2>What’s so difficult then?</h2>
<p>In practice, there can be some obstacles to applying Bayes’ successfully. Obstacles such as:</p>
<ol>
<li><em>Remembering</em> that P(hypothesis) is an <em>input</em> to computing P(hypothesis|evidence).&#160; If you use the formula, you won’t forget. But when we rely on our intuitions instead of the formula, we tend to neglect P(hypothesis).&#160; This mistake is known as <a href="http://en.wikipedia.org/wiki/Base_rate_fallacy">base rate neglect</a>.&#160; For instance, in the spotted beetle example, P(rare) is the base rate – and it’s only only 0.1%.&#160; If you neglect the base rate, you’ll intuitively over estimate the chances of a spotted beetle being rare. </li>
<li>Being <em>willing</em> to use P(hypothesis) as an input.&#160; Having to rely on P(hypothesis) may seem inconvenient because its often hard to obtain an objectively-correct value for       <br />P(hypothesis).&#160; So, out of necessity, we may end up using subjective guesses for P(hypothesis).&#160; This subjectivity is the cause of much of the controversy that dogged Bayes’ Theorem in the 20th century.&#160; The solution is that, for many kinds of problems, “probability” actually means “<a href="http://en.wikipedia.org/wiki/Bayesian_probability">measure of belief</a>” – rather than some number which is computed from repeatable trials.&#160; [Subjective evaluation of P(hypothesis) is also the cause of much of the <em>power</em> of Bayes, since the formula doesn’t <em>mind</em> if P(hypothesis) is subjective.&#160; Therefore, it’s a great way to take an initial viewpoint, which may be subjective, and adjust it as we receive new objective evidence.] </li>
<li>Computational difficulties when generalizing beyond simple yes/no hypotheses and one piece of evidence.&#160; For instance, you may want to consider several events (blond hair left at scene <em>and</em> passer-by reports glimpsing possible thief in pink tracksuit), or you may have <a href="http://en.wikipedia.org/wiki/Random_variables">random variables</a> instead of boolean events.&#160; These issues are entirely solvable, but beyond the scope of this blog post. </li>
</ol>
<p>&#160;</p>
<p>Bayes’ Theorem gives us a powerful tool for dealing with uncertainty.&#160; I hope this page will help you (and me) recall the basics ;-)</p>
<hr />
<p>Finally, for an enjoyable read on the history and uses of Bayes’ Theorem, check out <a href="http://www.amazon.com/Theory-That-Would-Not-ebook/dp/B0050QB3EQ/ref=tmm_kin_title_0?ie=UTF8&amp;m=A3QI763M62X7GQ&amp;qid=1325203926&amp;sr=8-1">this new book</a> from Sharon Bertsch McGrayne.</p>
<p><em>Postscript:</em> <a href="http://www.reddit.com/r/statistics/comments/nxa24/bayes_theorem_demystified_dont_keep_saying_its/">feedback about this post</a> included the following comment, which is worth quoting here in full: “fundamentally the idea actually <em>is</em> very simple and the interpretation and application where all the difficulty lies.”&#160;&#160; That seems like point worth noting: that the basics of Bayes are very simple, but successfully applying it to real world problems is much more difficult.&#160; I hope that this blog post has helped to convey the simplicity of the underlying idea.&#160; I wrote this post while reading the above book, since I couldn’t enjoy the book without understanding what Bayes’ Theorem really <em>is</em> :-)&#160;&#160; As for the difficult problems of devising real-world models and hypotheses, I’ll have to plead (relative) ignorance I’m afraid – since I’m a software designer not a statistician.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/estimationandpricing/bayes-theorem-demystified/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Estimation Summary for Agile Projects &#8211; Nov 2011</title>
		<link>http://www.agilekiwi.com/estimationandpricing/estimation-summary-for-agile-projects-nov-2011/</link>
		<comments>http://www.agilekiwi.com/estimationandpricing/estimation-summary-for-agile-projects-nov-2011/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 22:29:00 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[Estimation and Pricing]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=573</guid>
		<description><![CDATA[<p>It’s over 7 years since my first post on contracts for agile projects.&#160; During the years since I’ve worked almost exclusively on agile projects with fixed scope, learning some real-life lessons along the way.</p>
<p>So here are some of the key points that now I keep in mind when considering&#8230; <a href="http://www.agilekiwi.com/estimationandpricing/estimation-summary-for-agile-projects-nov-2011/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>It’s over 7 years since my first post on contracts for agile projects.&#160; During the years since I’ve worked almost exclusively on agile projects with fixed scope, learning some real-life lessons along the way.</p>
<p>So here are some of the key points that now I keep in mind when considering estimation, pricing and contracts for agile projects.&#160; These points are particularly relevant when customers have asked for fixed price <em>and</em> fixed scope.</p>
<p><span id="more-573"></span>
<p>&#160;</p>
<h2>1. It’s a valid thing to ask for…</h2>
<p>It’s perfectly natural for customers to want some up-front insight into likely cost and scope.&#160; In the spirit of <a href="http://www.agilekiwi.com/peopleskills/the-power-of-negotiation/">good negotiation</a>, we should take their concerns seriously.</p>
<p>&#160;</p>
<h2>2. … but many agile teams successfully dodge the issue.</h2>
<p>I asked someone recently what they were doing about this, and their reply was that they don’t really find themselves doing many contracts with fixed price and fixed scope.&#160; That certainly solves the problem ;-)&#160; I suspect it depends on the kind of company you work for.&#160; If you’re an in-house IT shop (i.e. customer and supplier are the same organisation) then I would imagine that there is little call to fix both scope and budget.&#160; However if you work as I do, in a company that undertakes development projects for other organisations, then you’re more likely to be asked to fix both price and scope.&#160; It also depends on the “purchasing culture” in the city where you work.&#160; For instance I work in Wellington, where government procurement processes heavily influence the way people expect contracts to be framed.&#160; But in Auckland, which is only an 8 hour drive away, there’s a very different procurement culture that’s dominated by private companies.</p>
<p>&#160;</p>
<h2>3. There are lots of different kinds of contracts which you might consider</h2>
<p>Alistair Cockburn has a big list of suitable contract types <a href="http://alistair.cockburn.us/Agile+contracts">here</a>. </p>
<p>&#160;</p>
<h2>4. Flexible pricing is probably good</h2>
<p>Rather than absolutely fixing both price and scope, it makes the project run better if you can allow at least one of them to “flex” in a controlled way.&#160; This still gives the customer early insight into commitments and benefits,&#160; but avoids the harsher downsides of absolutely fixing both.&#160; <a href="http://www.agilekiwi.com/estimationandpricing/target-cost-contracts/">Here’s</a> an approach that I’ve tried and liked.&#160; It’s not for everyone, but in cases where it’s understood and embraced by both parties, I do believe its better than fixing everything.</p>
<p>&#160;</p>
<h2>5. Here are my favourite “ingredients for success”:</h2>
<ul>
<li>Use a “discovery phase”.&#160; This is a timeboxed phase at the start of the project where you learn more about what the customer needs, and prepare an itemized breakdown of functionality.&#160; That itemized breakdown is the scope that you then&#160; commit to.&#160; A discovery phase is good for both parties, because it results in much better-informed scoping than projects which attempt to fix the scope without such a phase.&#160; The discovery phase should be paid, rather than delivered for free – both because the customer gets value out of it, and because adequate discovery is too big to do for free.&#160; In terms of sizing the discovery phase, the Feature Driven Development community uses a rule of thumb that this phase should last for 2 weeks for every 6 months of development (IIRC).&#160; I think that’s about right.&#160; For example, I used 3 weeks for a 6 month project once, but during those 3 weeks we also built a prototype. </li>
<li>The bigger the project, the more coarse-grained your discovery phase must be. (Within a realistic timeframe, you simply can’t drill down into as much detail as you might in the discovery phase for a smaller project.&#160;&#160; And if you do, it turns into BDUF, which is counter-productive for all the well-known reasons.&#160; So I’d suggest making do with a coarse-grained breakdown on large projects.) </li>
<li>The itemized breakdown of scope should be tabular rather than prose (i.e. a table rather than a document). This is a lesson I learned the hard way – the document was too ambiguous.&#160; One good way to organise the tabular breakdown is with a <a href="http://www.agileproductdesign.com/blog/the_new_backlog.html">story map</a>. </li>
<li>Ideally, that itemized breakdown of scope will actually serve three purposes: it will define the scope, it will form the basis of your estimate, and it will be what you track your progress against as you work through the project.&#160; IMHO, if you’re not using the <em>same</em> list for all three purposes, you’re risking trouble. </li>
<li>Typically, your cost estimate will be based on summing up points for every feature that’s in scope.&#160; Make sure you add a “buffer” of additional budget over and above that.&#160; There are two reasons why you might need such a buffer: (a) the inherent uncertainty in estimation and (ii) the need to allow time for for <a href="http://www.stickyminds.com/sitewide.asp?Function=edetail&amp;ObjectType=COL&amp;ObjectId=13498&amp;tth=DYN&amp;tt=siteemail&amp;iDyn=2">Validation</a> (i.e. ensuring fitness for purpose, rather than merely <a href="http://www.agilekiwi.com/other/agile/compliance-to-spec-considered-unprofessional/">compliance to spec</a>).&#160; </li>
<li>Adding this buffer will typically produce an estimate which feels too high. So my rule of thumb is as follows, “if your estimate feels about right, its probably not.” ;-)&#160; Add the buffer! </li>
<li>A buffer that adequately accommodates both estimation uncertainty and validation effort tends to unfeasibly large. (Unfeasible in the sense that some manager somewhere won’t accept it ;-)&#160; So I prefer to use a <a href="http://www.agilekiwi.com/estimationandpricing/target-cost-contracts/">target cost contract</a>.&#160; Some of the necessary buffering is built into the <em>target</em> in the target cost contract, but the rest is provided by the (controlled) <em>flexibility</em>. </li>
<li>Know how you’ll draw the line between “this is an addition to scope, and therefore requires a budget increase”, versus “this is something we should just do, and therefore requires no change in budget”.&#160;&#160; You always need at least some of the latter, certainly for Validation and probably also for convenience (its too much paperwork for formally increase the budget for every tiny change).&#160; I’ve outlined one suggestion for drawing this line, part way down the <a href="http://www.agilekiwi.com/estimationandpricing/target-cost-contracts/">target cost</a> page. </li>
<li>It’s not enough for <em>you</em>&#160; to know how you’ll draw that line.&#160; Your <em>customer</em> must understand too.&#160; And <em>agree</em>.&#160; This applies to both management and subject matter experts, to both ‘gold owners’ and ‘goal donors’.&#160; All must understand what kinds of changes will affect the budget and what will not. </li>
<li>Use a project tracking and management tool that gives you a “whole of scope” view.&#160; If your tool only shows the current iteration or release, but your commitments are for the whole-of-scope, then you’re flying blind. </li>
</ul>
<p>&#160;</p>
<h2>6. “If I do all that, will it work?”</h2>
<p>Maybe. Maybe not ;-)&#160;&#160; Fixing price and scope of agile projects is fiendishly difficult.&#160;&#160; But there is a genuine business need for it so we, as agile practitioners, owe it to our customers to continue trying (and learning).</p>
<p>&#160;</p>
<h2>7. Understand Estimation</h2>
<p>When I finally started studying estimation, I was shocked to discover how little I, and my colleagues, really knew about it.&#160; We’d been getting by for years with little more than a grab-bag of misconceptions.&#160; And we didn’t even realise.&#160; So read Steve McConnell’s <a href="http://www.stevemcconnell.com/est.htm">Software Estimation: Demystifying the Black Art</a>.&#160; I haven’t found any other book that combines all the necessary material into one readable volume.&#160; </p>
<p>&#160;</p>
<h2>8. Understand the bit that Steve omitted from his book</h2>
<p>If you’re bidding for work, in a competitive situation, then you’ve got to read <a href="http://blogs.construx.com/blogs/stevemcc/archive/2007/06/06/estimating-in-an-outsourcing-context.aspx">this post from Steve McConnell</a> (including the comments) and my follow up <a href="http://www.agilekiwi.com/estimationandpricing/estimation-in-a-competitive-context/">here</a>.&#160; It’s not entirely comforting, in that it describes a problem which software vendors can’t easily solve on their own. (The obvious solutions require engagement from purchasers.)&#160; On a more positive note, the US engineering profession <a href="http://www.agilekiwi.com/estimationandpricing/beware-the-lowest-price/">did successfully solve</a> this problem.&#160; </p>
<p>I hope to eventually blog more about this in years to come, particularly some thoughts on what we can do in the absence of a purchaser-side solution.</p>
<p>&#160;</p>
<h2>9. See what others are doing.</h2>
<p>A great example is Atomic Object in Michigan.&#160; <a href="http://spin.atomicobject.com/2011/04/27/fixed-budget-fixed-scope-high-quality-custom-software/">Here’s a post</a> on their corporate blog to get you started.&#160; (You’ll notice they also like to introduce controlled flexibility. In Atomic’s case, they flex the scope rather than the price.)&#160; You should also check out their&#160; <a href="http://spin.atomicobject.com/2008/11/26/making-better-estimates/">whole series</a> on estimation. </p>
<p>&#160;</p>
<p>Good luck.</p>
<hr />
<p>PS. Is there a tool that can help?&#160; </p>
<p>Mostly its not about tools, but since you asked ;-) ….&#160; I think several things help: taking a whole-of-scope view; using story mapping; using the same artefacts as the basis for scoping, estimating and tracking; and keeping the user story/feature descriptions concise in order to prevent BDUF.&#160; I don’t know of any one single tool that meets all those criteria – <a href="http://www.tactyle.net/docs/how-is-tactyle-different/">so I started writing one</a>.&#160; It’s not finished yet, but with a little creativity there are many other ways to get by without an integrated tool.&#160; </p>
<p>All in all, this is not really in tools problem.&#160; Its really about understanding, attitude, negotiation and communication.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/estimationandpricing/estimation-summary-for-agile-projects-nov-2011/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Ambiguity</title>
		<link>http://www.agilekiwi.com/other/news/ambiguity/</link>
		<comments>http://www.agilekiwi.com/other/news/ambiguity/#comments</comments>
		<pubDate>Sat, 29 Oct 2011 02:47:47 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/other/news/ambiguity/</guid>
		<description><![CDATA[<p>Alistair Cockburn <a href="http://alistair.cockburn.us/Interview+with+Alistair+2011+for+Nicolas+Lochet">wrote</a></p>
<blockquote><p>Agile development calls for a certain amount of ambiguity and flux in the project. Not everyone enjoys ambiguity and flux. I would suggest that most people don’t.</p>
</blockquote>
<p>A very good point.&#160; I think this affects some agile implementations – causing them to back away from&#8230; <a href="http://www.agilekiwi.com/other/news/ambiguity/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>Alistair Cockburn <a href="http://alistair.cockburn.us/Interview+with+Alistair+2011+for+Nicolas+Lochet">wrote</a></p>
<blockquote><p>Agile development calls for a certain amount of ambiguity and flux in the project. Not everyone enjoys ambiguity and flux. I would suggest that most people don’t.</p>
</blockquote>
<p>A very good point.&#160; I think this affects some agile implementations – causing them to back away from being really agile, into a no-man’s-land between agile and waterfall.&#160; </p>
<p>Personally, I prefer the honest ambiguity of agile to the Clayton’s certainty of waterfall.&#160; Software development <em>is</em> risky.&#160; Customers and suppliers <em>do</em> learn during the project.&#160; Users <em>do</em> give better feedback from trying software than reading documents. To pretend otherwise may feel safer in the short term, but it disappoints in the long run.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/other/news/ambiguity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Enjoying Meetings, part 1</title>
		<link>http://www.agilekiwi.com/peopleskills/enjoying-meetings-part-1/</link>
		<comments>http://www.agilekiwi.com/peopleskills/enjoying-meetings-part-1/#comments</comments>
		<pubDate>Wed, 12 Oct 2011 08:29:25 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[People Skills]]></category>
		<category><![CDATA[collaboration]]></category>
		<category><![CDATA[meetings]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/peopleskills/enjoying-meetings-part-1/</guid>
		<description><![CDATA[<p>I’m reading the book “<a href="http://www.amazon.com/Crucial-Conversations-Talking-Stakes-ebook/dp/B005K0AYH4">Crucial Conversations: Tools for Talking when the Stakes are High</a>”.&#160; It’s absolutely excellent.&#160; And not just for conversations when the stakes are high – but also when the stakes are rather more mundane, such as your typical day-to-day business meeting.&#160; I’ve been consciously trying to&#8230; <a href="http://www.agilekiwi.com/peopleskills/enjoying-meetings-part-1/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>I’m reading the book “<a href="http://www.amazon.com/Crucial-Conversations-Talking-Stakes-ebook/dp/B005K0AYH4">Crucial Conversations: Tools for Talking when the Stakes are High</a>”.&#160; It’s absolutely excellent.&#160; And not just for conversations when the stakes are high – but also when the stakes are rather more mundane, such as your typical day-to-day business meeting.&#160; I’ve been consciously trying to apply the principles from the book for a while now, and I’ve found that meetings seem much more enjoyable.</p>
<p>The key principle of the book is that conversations work best when everyone is able to “add their meaning to the pool”.&#160; I.e. to share what’s on their mind.&#160; Conversely, conversations work <em>poorly </em>when people withhold information and viewpoints:</p>
<blockquote><p>When people purposefully withhold meaning from one another, individually <em>smart</em> people can do collectively <em>stupid</em> things.</p>
</blockquote>
<p>Therefore, successful dialog depends on two <a href="http://www.agilekiwi.com/peopleskills/people-skills-for-nerds-a-summary-video/">learnable</a> skills: (a) helping other people to share what’s on <em>their</em> mind, and (b) being able to share what’s on <em>your</em> mind even in difficult situations.&#160; I’d like to share a recent example of the latter…</p>
<p>Our (excellent) manager was describing a change to our processes.&#160; I hated the idea. It seemed bureaucratic, time-consuming and just plain wrong.&#160; As he said how much “we need to do it”, I found myself giving up.&#160; My instinct was to withdraw from the conversation.&#160; If he was <em>so</em> sure, what point was there in discussing it?&#160; He wasn’t actually <em>asking</em> for our opinions.&#160; And besides, everyone else seemed to agree.&#160; At least, they were sitting there nodding.&#160; </p>
<p>But just in that moment of giving up, I caught myself. Sharing meaning is good, right?&#160; Yes!&#160; And even fun?&#160; Yes, as I have discovered. So in that moment I decided to take the enjoyable, productive route, instead of the grumpy silent one. I said something like this:</p>
<blockquote><p>I feel a bit concerned about the cost of doing this.&#160; On &lt;project X&gt; we deliberately avoided gathering this data, and it was fine.&#160; We used high-level figures, instead of the detailed breakdown we’re talking about here, and …”&#160; <em> I went on to briefly expand on our experience on &lt;project X&gt;.</em></p>
</blockquote>
<p>Instead of giving up, I had managed to share “my meaning” with the group.&#160; It wasn’t so hard.&#160; It didn’t seem like I’d offended anybody, and I felt much better within myself for having shared.&#160; </p>
<p>(Incidentally, talking along the lines of “I feel concerned about…” is a useful collaboration technique that I’ve picked up along the way.&#160; It works much better, and is more honest and more informative, than bluntly saying “I don’t like that”.&#160;&#160;&#160; Another handy technique is to talk in terms of concrete stories, as I did about &lt;project X&gt;.&#160; Both these techniques deserve blog posts of their own one day…)</p>
<p>So did it work?&#160; Did adding my meaning to the pool actually advance the discussion?&#160; Yes it did.&#160; The boss replied with a clarification of his underlying goals.&#160; Which was great, because then we were able to think about <em>all</em> possible ways to meet that goal – instead of just debating between his original plan and my suggested alternative.&#160; We haven’t finalised the decision yet, but it looks like we’re going to end up with something better than either of us had imagined. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/peopleskills/enjoying-meetings-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Email Subscriptions</title>
		<link>http://www.agilekiwi.com/other/news/email-subscriptions/</link>
		<comments>http://www.agilekiwi.com/other/news/email-subscriptions/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 07:42:10 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[News]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/?p=557</guid>
		<description><![CDATA[<p>You can now subscribe to email updates from this blog.  This should be handy if you prefer email to RSS.  Just go to the new Subscribe page on the menu bar.</p>
<p>PS If you spot any problems with the email subscription, please let me know.  I&#8217;ve never used this particular&#8230; <a href="http://www.agilekiwi.com/other/news/email-subscriptions/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>You can now subscribe to email updates from this blog.  This should be handy if you prefer email to RSS.  Just go to the new Subscribe page on the menu bar.</p>
<p>PS If you spot any problems with the email subscription, please let me know.  I&#8217;ve never used this particular email plug-in before, so I don&#8217;t know how it will work out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/other/news/email-subscriptions/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Million, Billion, Trillion</title>
		<link>http://www.agilekiwi.com/estimationandpricing/million-billion-trillion/</link>
		<comments>http://www.agilekiwi.com/estimationandpricing/million-billion-trillion/#comments</comments>
		<pubDate>Sun, 11 Sep 2011 09:35:32 +0000</pubDate>
		<dc:creator>John Rusk</dc:creator>
				<category><![CDATA[Estimation and Pricing]]></category>

		<guid isPermaLink="false">http://www.agilekiwi.com/estimationandpricing/million-billion-trillion/</guid>
		<description><![CDATA[<p>Humans are bad at understanding large numbers.&#160;&#160; Our education system successfully <a href="http://johnhawks.net/weblog/reviews/brain/culture/math/dehaene-2008-number-logarithmic-space.html">trains us to understand</a> the relative magnitudes of small numbers,&#160; but for larger numbers we tend to fall back on <a href="http://www.jasoncollins.org/2011/01/does-mathematical-training-increase-our-risk-tolerance/">an intuitive logarithmic scale</a>.&#160; So we underestimate the real difference between, say, a million and a billion.&#8230; <a href="http://www.agilekiwi.com/estimationandpricing/million-billion-trillion/" class="read_more">Read more</a></p>]]></description>
			<content:encoded><![CDATA[<p>Humans are bad at understanding large numbers.&#160;&#160; Our education system successfully <a href="http://johnhawks.net/weblog/reviews/brain/culture/math/dehaene-2008-number-logarithmic-space.html">trains us to understand</a> the relative magnitudes of small numbers,&#160; but for larger numbers we tend to fall back on <a href="http://www.jasoncollins.org/2011/01/does-mathematical-training-increase-our-risk-tolerance/">an intuitive logarithmic scale</a>.&#160; So we underestimate the real difference between, say, a million and a billion.</p>
<p>Here’s a wee table I put together, to help with visualising large numbers.&#160; The table is based on the thickness of a New Zealand $1 coin.</p>
<ul>
<li>We start with just one, which is 2.74mm thick (about twice as thick as a US quarter). </li>
<li>Then, imagine we make a stack of 1000 coins.&#160; It would be about the height of a person (a tall person, with their arms up-stretched). </li>
<li>For a million coins, we would have to lie the stack on its side.&#160; It would form a “sausage” of coins about the length of an airport runway. </li>
<li>For a <a href="http://en.wikipedia.org/wiki/1000000000_(number)">billion</a> coins, the sausage would be as long as a country (specifically, India). </li>
<li>For a trillion coins, we’d end up way out in space (almost 8 times as far away as the moon).&#160; That’s hard to visualise, because there’s nothing there.&#160; So how about we try $14 trillion instead (the size of the US public debt)?&#160; If we had the US public debt in $1 coins, the stack would reach all the way to Venus. </li>
</ul>
<table border="0" cellspacing="0" cellpadding="2" width="600">
<tbody>
<tr>
<td valign="top" width="116"><strong><span style="text-decoration: underline">Number</span></strong></td>
<td valign="top" width="70">&#160;</td>
<td valign="top" width="412"><strong><span style="text-decoration: underline">Length</span></strong></td>
</tr>
<tr>
<td valign="top" width="116">$1k</td>
<td valign="top" width="70">10^3</td>
<td valign="top" width="412"><strong>person</strong></td>
</tr>
<tr>
<td valign="top" width="116">$1 million</td>
<td valign="top" width="70">10^6</td>
<td valign="top" width="412"><strong>airport runway</strong></td>
</tr>
<tr>
<td valign="top" width="116">$1 billion</td>
<td valign="top" width="70">10^9</td>
<td valign="top" width="412"><strong>India</strong></td>
</tr>
<tr>
<td valign="top" width="116">$1 trillion</td>
<td valign="top" width="70">10^12</td>
<td valign="top" width="412"><strong>Moon * 8</strong></td>
</tr>
</tbody>
</table>
<p>So to visualise the difference between a thousand, a million and a billion, you can say: “person, runaway, India”.</p>
<p>&#160;</p>
<p>Footnotes Nov 2011:</p>
<p>1. <a href="http://xkcd.com/980/huge/#x=-6432&amp;y=-8480&amp;z=2">Here’s</a> an amazing visualisation of dollar values at various scales</p>
<p>2. Further to the billion-coins-in-India example: what if we lined up a billion people, instead of a billion coins?&#160; That’s approximately the actual population of India.&#160;&#160; To get a line the same length as the&#160; billion coins, we’d have to ask the people to stand about 500-abreast.&#160; I.e. the population of India could stretch from the north to the south of the country, if they formed a long, skinny <a href="http://en.wikipedia.org/wiki/Jacobs_Method#Jacobs_method_for_crowd_size_estimation">loosely-packed</a> crowd approximately 500m wide. </p>
<p>3. A similar crowd in New Zealand, with the entire population of 4 million stretching the full length of the country, would be only 2 or 3 people wide – in part because the country is sparsely populated, and in part because it’s a long skinny country.</p>
<p>Jan 2012:</p>
<p>4. The number of stars in the observable universe is <a href="http://edition.cnn.com/2003/TECH/space/07/22/stars.survey/">estimated</a> at 7 x 10<sup>22</sup>.&#160;&#160; Given the world population, that’s 10 trillion stars <em>per person –</em> which equates to one stack of coins, reaching most of the way to Venus, for <em>every person alive today</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.agilekiwi.com/estimationandpricing/million-billion-trillion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

