<?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>Situated Geekery &#187; Situated Geekery</title>
	<atom:link href="http://anarchycreek.com/category/situated-geekery/feed/" rel="self" type="application/rss+xml" />
	<link>http://anarchycreek.com</link>
	<description>Towards a Way of Excellence</description>
	<lastBuildDate>Wed, 28 Apr 2010 21:41:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Coaching Against TDD Inhibitors</title>
		<link>http://anarchycreek.com/2010/04/28/coaching-against-tdd-inhibitors/</link>
		<comments>http://anarchycreek.com/2010/04/28/coaching-against-tdd-inhibitors/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 18:44:10 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1560</guid>
		<description><![CDATA[We&#8217;ve spoken already of the test driven development (TDD) mental game. Now it&#8217;s time to consider the situation on the ground. The main TDD disabler we&#8217;ve already met: a broken or too-slow build/run/result flow. If your team has that issue, throw all your weight at it, and do not try to launch TDD itself. It&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;ve spoken already of the test driven development (TDD) <a href="http://anarchycreek.com/2010/04/16/coaching-the-tdd-inner-game/">mental game.</a> Now it&#8217;s time to consider the situation on the ground.</p>
<p>The main TDD disabler we&#8217;ve already met: a broken or too-slow build/run/result flow. If your team has that issue, throw all your weight at it, and<strong><em> do not try to launch TDD itself.</em></strong></p>
<p>It&#8217;s very important that the team&#8217;s initial experiences with TDD are not blocked by externalities. Whether its easy or hard to roll the first few microtests, the difficulty needs to be focused on the<em> pre-TDD code, </em>not the process itself.</p>
<p>If you have a disabler, your coaching story is clear: we can&#8217;t do TDD until we fix it. Once the disabler(s) are cleared, we need to turn to the various factors that don&#8217;t quite stop the show: the inhibitors.</p>
<h3 style="text-align: center;"><em><strong><span style="color: #0000ff;">Inhibitors</span></strong></em></h3>
<p>An inhibitor doesn&#8217;t <em>block </em>TDD, it just makes it harder to apply.</p>
<p>(Don&#8217;t relax: if you pile a few of them on, you&#8217;ll long for a good old-fashioned disabler, because it would at least have kept you off the TDD road until  you tackled it.)</p>
<p>Inhibitors are usually about technique.</p>
<p>(And still don&#8217;t relax: you can&#8217;t simultaneously introduce 82 slightly different variants of technical solutions.)</p>
<p>Let&#8217;s take one detailed example, then sketch a few others with their related solutions.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>The Promiscuous Database</em></span></h3>
<p>The promiscuous database is an inhibitor I&#8217;ve found very common, especially in IT shops. It&#8217;s easy to spot: just grep the source for &#8220;SELECT&#8221; and inspect the results. In a typical nightmare, virtually every source file will contain explicit SQL.</p>
<p>(Sometimes there is some awful framework in place, that makes the grep not look so bad, because the actual SQL is in some bizarre xml file. Same problem, different grep.)</p>
<p>The promiscuous database does its damage by forcing all microtests to rig up the database and then connect to it. How do you spell heartache?</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>Moving The Database Out</em></span></h3>
<p>The solution is straightforward: extract each SQL statement, or each hardwired database statement, into a separate class named for the intention of its calls. Now we can easily use a hand-rolled or automagic fake.</p>
<p>Some details:</p>
<ul>
<li>Name the class for its intention, e.g. GetOutstandingLoans, not ComplexSQLCmdWithThreeParameters.</li>
<li>Pass the parameters in the constructor.</li>
<li><span style="font-size: 13.1944px;">Return typed containers.</span></li>
<li>Discover, don&#8217;t pre-implement, shared code to pull up.</li>
<li>Consider a hierarchy based on command return-type rather than &#8216;tables touched&#8217;</li>
<li>You may want to use a factory approach for getting the actual command.</li>
<li>You certainly want some way easy way to slip a fake in. This can be done at the caller&#8217;s constructor, or just use a factory method that can be overridden.</li>
<li>Wonderful side-effect, it often shows you more dup than you thought was present.</li>
</ul>
<p>I hope this solution isn&#8217;t too telegraphic. If so, holler at me in the comments. The real point here is that we&#8217;re talking about learning and using programming technique to solve most inhibitors.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Readily != Painlessly</span></em></h3>
<p>It is readily possible to solve the promiscuous database using coding technique. But <em>readily</em> doesn&#8217;t mean <em>painlessly in the beginning</em>.</p>
<p>Everyone who&#8217;s got work in the caller-class has to be able and willing to do these extractions. It <em>can </em>be done, but until a few tries are under a noob&#8217;s belt, it will feel like a useless formalism.</p>
<p>This is the general tenor of working against TDD inhibitors.</p>
<p>Let&#8217;s sketch a few more inhibitors and their solutions.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>The Very Large GUI Of The World</em></span></h3>
<p>GUI classes that do frighteningly complex work are the bane of any team working legacy TDD.</p>
<p>The problem here is tremendous and obvious: you can&#8217;t test the functionality without launching the GUI itself. Say goodbye to rapid feedback.</p>
<p>The answer is easy, or easy-esque: create a class whose lifetime is exactly coterminous with the GUI class, then rework your GUI class so that all non-graphical work is done by the shadow class. Turn the GUI class into a specialist who removes GUI-isms before passing on to worker, then puts GUI-isms back in on the way out.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">The Hardware Distraction Layer</span></em></h3>
<p>Direct calls into the hardware are everywhere. This is a hallmark of the embedded scene. Look for globals.</p>
<p>Solution: You need an adapter that fronts <em>just </em>the calls that this particular client needs. Work to make that adapter really hide the underlying dependencies. Once done, you can readily fake the adapter as needed.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">The In-House Framework Of Universal Despair</span></em></h3>
<p>The colossal ass-hattery known as &#8220;our in-house framework&#8221; is often an inhibitor par excellence.</p>
<p>The framework provides needed services, such as a database connection, that we don&#8217;t know how to get access to without launching the framework.</p>
<p>In this case, usually we&#8217;re seeing significant work done in a class that derives off of something from the framework. The trick here is just another variation on the theme of &#8216;take away frameworkisms on the way in, and put them back on the way out&#8217;.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Coaching On Inhibitors</span></em></h3>
<p>The meta-pattern for inhibitors is simple.</p>
<p>Coach two or three teammates through the process of working around a given inhibitor.</p>
<p>This will give you two key advantages: the ability to show multiple instances of &#8216;problem-solved&#8217;, and the support of the teammates who actually lived through the solution.</p>
<p>So? Use lottery learning, or some other meeting, to introduce the problem and its solution. Show them the two or three. (Without the show you&#8217;re just being an abstract chatterer.)</p>
<p>In early days, just make the team aware you want to be tripling any time that problem comes up.</p>
<p>Ultimately, early days pass, and you can say with some confidence that your whole team knows how to finesse the solved problem.</p>
<p>After that time, and only after it, the team can raise their standard of excellence to say &#8220;files like this are hereby declared TDD&#8217;able&#8221;.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Inhibitors Are Crushed By Experiences</span></em></h3>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Go To It</span></em></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/28/coaching-against-tdd-inhibitors/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Go Do A Code Retreat, You&#8217;ll Thank Me</title>
		<link>http://anarchycreek.com/2010/04/26/go-do-a-code-retreat-youll-thank-me/</link>
		<comments>http://anarchycreek.com/2010/04/26/go-do-a-code-retreat-youll-thank-me/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 16:21:43 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1605</guid>
		<description><![CDATA[I just did a code retreat in lovely Floyd, Virginia. You should. For those who haven&#8217;t yet, a code retreat is a long day of programming, constrained in such a way as to create an open-ended opportunity to learn. The formula is simple: we do six sessions of paired TDD. Each one is on the [...]]]></description>
			<content:encoded><![CDATA[<p>I just did a <a href="http://coderetreat.com">code retreat</a> in lovely Floyd, Virginia.</p>
<p><em><strong>You should.</strong></em></p>
<p>For those who haven&#8217;t yet, a code retreat is a long day of programming, constrained in such a way as to create an open-ended opportunity to learn.</p>
<p>The formula is simple: we do six sessions of paired TDD. Each one is on the same problem, but with a different partner. The code is destroyed at the end of each session. That is, each session starts entirely from scratch.</p>
<p>That&#8217;s all there is to it, or so I thought going in.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Getting Hooked</span></em></h3>
<p>The remarkable effect of the constraints is to focus a very high intensity onto the problem domain and its potential solutions.</p>
<p><strong>You <em>care</em>.</strong></p>
<p>The problem itself is readily understandable, but its potential solutions are really not. They are just one hair too complex to hold in your head all at one time, which is brilliant.</p>
<p>A toy challenge would not work nearly as well.</p>
<p>On the other hand, if the challenge were harder, you wouldn&#8217;t, or at least I wouldn&#8217;t, approach it with the easy certainty that you know the solution already. The experience wouldn&#8217;t be nearly as valuable without the scorched arrogance.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Test First vs Test Driven</span></em></h3>
<p>The certainty of solution starts boiling off in the first round, and somewhere in the third it runs out altogether.</p>
<p>This is good, partly because the smell of burning ego is good for the soul, but also because it makes it much easier to open one&#8217;s heart and mind to learning.</p>
<p>Once I got opened, I learned many things, some small and some not-so-small.</p>
<p>After the sessions, we talked about what, if any, lessons were learned. Perhaps the single most common statement was that the participant learned that having a pre-formed solution in mind could cause lots of pain.</p>
<p><a href="http://www.coreyhaines.com/">Corey Haines</a> calls this &#8216;pre-conceived solution&#8217; thing &#8216;test first&#8217;, as opposed to &#8216;test <em>driven&#8217;</em>. It&#8217;s an excellent distinction.</p>
<p>The idea is that in test first you solve the problem in your head, then write a test to force that solution, then type it in. Truly driving by tests, on the other hand, means typing in the test with beginner&#8217;s mind, and starting to solve it only after you&#8217;ve written it.</p>
<p>That&#8217;s exactly how it should be in our daily work.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Old Friends and New</span></em></h3>
<p>It was fun to see some old friends, my pal <a href="http://blog.gdinwiddie.com/">George Dinwiddie</a>, and my until-now-twitter-only-friend John Stoneham. I knew Corey Haines from the scene, but mostly also on twitter, and it was a blast to get so much good time with him.</p>
<p>But it wasn&#8217;t just my old friends. Many of the folks there came from one or more of the sponsors. The local hosts, Gustin Prudner&#8217;s <a href="http://www.entryway.net/">Entryway</a>, did an amazing job. They procured and prepared two excellent venues for our sessions, and everything went off without any hitch.</p>
<p>I won&#8217;t list the new friends I made, but I was delighted to hang with so many people who clearly care about excellence in software development.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Geek Joy &#8212; *Shared*</span></em></h3>
<p>The most important lesson was one I re-learned rather than encountering for the first time: to share geek joy is delightful, intense, and absolutely revitalizing.</p>
<p>I feel like I need to rush right out and do good geek work today.</p>
<p>I&#8217;m already on record for saying that what the industry needs most is to learn how to intertwine geek joy with business value. But to be reminded so forcefully is just terrific.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Go <a href="http://www.coderetreat.com">Sign Up</a> Now</span></em></h3>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">It&#8217;s Cheap And Amazing!</span></em></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/26/go-do-a-code-retreat-youll-thank-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Shhh. We&#8217;re Hunting Yabbits</title>
		<link>http://anarchycreek.com/2010/04/21/yabbits-and-the-marathon-principle/</link>
		<comments>http://anarchycreek.com/2010/04/21/yabbits-and-the-marathon-principle/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 18:49:48 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1573</guid>
		<description><![CDATA[Ever get the yabbits when introducing a new idea? Oh, wait, maybe I better define my terms first. Yabbitting is when people go through a sequence of resistance statements, where each statement begins with the words, &#8220;Yeah, but&#8230;&#8221;. Like this: &#8220;Yabbit, our shop does shrinkwrap, so what works for some web app isn&#8217;t gonna work [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1596" class="wp-caption aligncenter" style="width: 233px"><img class="size-full wp-image-1596" title="Be Vewy Vewy Qwiet" src="http://anarchycreek.com/wp-content/uploads/2010/04/elmer_fudd_a_wild_hare.jpg" alt="" width="223" height="250" /><p class="wp-caption-text">Me, Hunting For Yabbits</p></div>
<p>Ever get the yabbits when introducing a new idea?</p>
<p>Oh, wait, maybe I better define my terms first.</p>
<p><em>Yabbitting</em> is when people go through a sequence of resistance statements, where each statement begins with the words, &#8220;Yeah, but&#8230;&#8221;.</p>
<p>Like this: &#8220;Yabbit, our shop does shrinkwrap, so what works for some web app isn&#8217;t gonna work here.&#8221; or &#8220;Yabbit, we all work 80 hours a week, so we don&#8217;t need slack.&#8221; or &#8220;Yabbit, if you write tests + code, that&#8217;s more code than if you just write code&#8221;.</p>
<p>Let&#8217;s try again: Ever get the yabbits when introducing a new idea?</p>
<p>Yes, I thought so.</p>
<h3 style="text-align: center;"><em><span style="color: #3366ff;">Aren&#8217;t Yabbits Annoying?</span></em></h3>
<p>Yabbits can get a person down.</p>
<p>Worse, if the person has GeePaw-ish tendencies, yabbits can really bring out the sarcastic asshole:</p>
<p>&#8220;Wow, you&#8217;re right. No one ever mentioned that to me before. I should probably leave, now. Thank you. Thanks, thank you. You&#8217;ve saved me a lot of wasted time. Uhh, bye.&#8221;</p>
<p>But responding to yabbits like this is a grave error. (Trust me on this.)</p>
<p>A noob coach usually sees yabbits as a huge annoyance at best, and a wall of resistance at worst,<em><strong> but this is a big mistake.</strong></em></p>
<p>Getting yabbits should please you. They <em>sound </em>like they represent resistance, but they actually indicate just the opposite.</p>
<h3 style="text-align: center;"><em><span style="color: #3366ff;">The Economics Of  Thinking</span></em></h3>
<p>How many times a day do humans choose one thing over another? Certainly hundreds, if not thousands or tens of thousands. Which socks? Left or right? Coke or Pepsi? and on and on.</p>
<p>Many of these choices are somewhat automagic: the answers to them have typically been made way in the past, and are not really &#8216;re-chosen&#8217; every time the question comes up.</p>
<p>Others, on the contrary, are the result of full and thorough efforts to consider variant choices, project their results, and decide how we feel about them.</p>
<p><span style="font-size: 13.1944px;">So some choices are virtually free, and others are quite expensive.</span></p>
<p>So what&#8217;s the most frequent choice made by a human?</p>
<p>It&#8217;s the meta-choice, of course. <em><strong>Whether you make a cheap choice or a pricey one is itself a choice.</strong></em> Cheap or expensive?</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Yabbits Are A Heuristic</span></em></h3>
<p>Yabbits are actually a tool for making the meta-choice. It works like this:</p>
<p style="margin-left: 2em; margin-right: 2em; padding-top: 2px; padding-right: 6px; padding-bottom: 4px; color: #a000a0; padding-left: 36px;"><strong><em>If an idea can&#8217;t defend itself against simple one- and two-sentence arguments, then it certainly can&#8217;t handle any serious ones, so I don&#8217;t need to investigate in depth.</em></strong></p>
<p>Yabbits don&#8217;t always, or even usually, represent real resistance to change. On the contrary, they are probes, whose intent is to test an idea&#8217;s <a href="http://en.wikipedia.org/wiki/Prima_facie">prima facie</a> validity.</p>
<p><span style="font-size: 13.1944px;">A person who offers you yabbits is typically more open to an idea than a person who says nothing at all. </span></p>
<h3 style="text-align: center;"><em><span style="color: #3366ff;">Responding To Yabbits</span></em></h3>
<p>The most obvious aspect of your response is just to note that, since yabbits are a good thing rather than a bad, you should prolly refrain from indicating displeasure.</p>
<p>Now, I can&#8217;t say you should smile when you get a yabbit, because that can easily look like smugness. But you <em>can </em>respond positively. Never hack at a yabbit. Instead, relax, and calmly show exactly how your idea doesn&#8217;t suffer from any trivial  flaws.</p>
<p>The rest of this page is just a set of common yabbits, pulled from various practices in the agile toolkit.</p>
<p>Notice that each one is just a few lines long. That&#8217;s on purpose: don&#8217;t overload a yabbit with a long response. That&#8217;s using big guns on small quail.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Yabbit, We Want 100% Load</span></em></h3>
<p><span style="font-size: 13.1944px;">Actually, no you don&#8217;t. </span></p>
<p><span style="font-size: 13.1944px;">100% load means full stop for most of the team. </span><span style="font-size: 13.1944px;">Don&#8217;t believe me? Think about the last traffic jam you were in. The optimal load of cars for a highway is far less than 100%. More cars != more throughput.</span></p>
<p><span style="font-size: 13.1944px;">What you really want is <em>optimal load, </em>which is the highest load for which actual throughput continues to rise. </span></p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Yabbit, It&#8217;s Just Until The Release</span></em></h3>
<p><span style="font-size: 13.1944px;">I always ask teams about their <em>last release.</em> </span></p>
<p><span style="font-size: 13.1944px;">So what happened? You shipped the release, then everyone took two or three weeks off to catch up with their families, or take care of their mental or physical health? No?</span></p>
<p><span style="font-size: 13.1944px;">For some teams, shipping on Friday means coming in Monday and starting the next release. </span></p>
<p><span style="font-size: 13.1944px;">For many, maybe even most, shipping on Friday means coming in Monday and immediately jumping in to hot-patch mode.</span></p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Yabbit, No Pressure Means No Production</span></em></h3>
<p><span style="font-size: 13.1944px;">You mean, you hired a bunch of people who won&#8217;t work if you don&#8217;t constantly harass them? What a drag. Next time choose different people.</span></p>
<p>Of all the bizarre taylorisms in bad management practice, this one is the least connected to reality. <span style="font-size: 13.1944px;">We are called geeks <em>precisely </em>because we take so much joy from our work.</span></p>
<p>You don&#8217;t have to force geeks to do geek work, you have to get out of their way.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Yabbit, How Can We Assess Merit?</span></em></h3>
<p>This one tickles me, too. The idea is that the marathon and village principles seem to work against the easy assignment of rewards to individuals. If we pair all the time, rotate pairs all the time, and all sit together and work, then how can management tell who to reward and who to punish?</p>
<p><span style="font-size: 13.1944px;">You can assess merit by a) working with the individual, or b) watching the individual when she is at work, or c) asking the people she works with.</span></p>
<p>It is trivially the case that everyone on a team has a complete ordering of merit for everyone else on that team. Gather the orderings (not the votes, the <em>orderings)</em> anonymously, and you will certainly see a pattern. Use that pattern as the basis for your assessment.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>Yabbits Are Your Friends</em></span></h3>
<p>It is easy to think of yabbits as temporary distractions from the real game of changing behavioral patterns, but that&#8217;s a mistake. Answering yabbits won&#8217;t change anyone&#8217;s mind, but it <em>will build confidence and support for your ideas.</em></p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Yabbits Are On The Road To Success</span></em></h3>
<p><em><br />
</em></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/21/yabbits-and-the-marathon-principle/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Coaching The TDD Inner Game</title>
		<link>http://anarchycreek.com/2010/04/16/coaching-the-tdd-inner-game/</link>
		<comments>http://anarchycreek.com/2010/04/16/coaching-the-tdd-inner-game/#comments</comments>
		<pubDate>Fri, 16 Apr 2010 05:59:34 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1556</guid>
		<description><![CDATA[In the early days of a transition, we gird our loins and take up the lance, however unlikely our ultimate victory, and set ourselves to oppose the biggest TDD inhibitor, the minds of our developers. Use all of the coaching pillars to help instill the message: Situate by teaching and explaining the beliefs. Model by [...]]]></description>
			<content:encoded><![CDATA[<p>In the early days of a transition, we gird our loins and take up the lance, however unlikely our ultimate victory, and set ourselves to oppose the biggest TDD inhibitor, the minds of our developers.</p>
<p>Use all of the <a href="http://anarchycreek.com/2010/03/24/meet-the-coaching-pillars/">coaching pillars</a> to help instill the message:</p>
<ul>
<li>Situate by teaching and explaining the beliefs.</li>
<li>Model by living them publicly.</li>
<li>Invite by having fun writing microtests.</li>
<li>Sort by leaving time for skill development.</li>
<li>Release by letting them manage the &#8216;must-test&#8217; list.</li>
</ul>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Required Understandings</span></em></h3>
<p>Each of the sections below is a statement of belief we want all of our developers to be conversant and comfortable with.</p>
<p>Imagine your teammates talking to members of a non-TDD team. If they can spontaneously explain and defend their behaviors using these beliefs, we&#8217;ll have won most of the battle.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">We&#8217;re In This For Productivity</span></em></h3>
<p>You know my rant on this one. <a href="http://anarchycreek.com/2009/05/26/how-tdd-and-pairing-increase-production/">TDD is not about quality, it&#8217;s about speed.</a></p>
<p>I often use the comical fact of &#8216;night-coding&#8217;, i.e. programming for your own amusement.</p>
<p>When I&#8217;m night-coding, I rarely write storytests. Storytesting is expensive on code not built for it, and besides, storytests are really a collaborative tool. I <em>already</em> collaborate well with me, so I skip storytesting. (Some agilists are disappointed with me about this. I tell them to go to the back of the complaints line.)</p>
<p>On the other hand, I <em>always </em>use <a href="http://anarchycreek.com/2009/09/16/coaching-four-categories-of-most-important-story/">microtests</a>, even for night-code. Driving development by microtesting is a productivity tool. Even when I&#8217;m in the privacy of my own back porch, I want productivity. Everybody wants productivity.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">There&#8217;s No Free Lunch</span></em></h3>
<p>But don&#8217;t kid yourself. TDD is not free.</p>
<p>Some ideas are simple facts, really. Once a C++ programmer learns why she should default to ++i rather than i++, it&#8217;s pretty easy to just always do it without much thought. Simple facts deliver their value instantly.</p>
<p>TDD is not a simple fact, it&#8217;s a whole <em>way of programming.</em></p>
<p>Ask people how long it took for them to learn programming in the first place. The good news is that it will take much less time to learn TDD, because they already know the syntax, the tools, and the problem domain. This time they just have to understand a loose cluster of a couple dozen techniques.</p>
<p>But it ain&#8217;t free. Your team is going to have to practice practice practice. Make them &#8212; and their managers &#8212; completely relaxed about this.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">We&#8217;ll Adopt TDD Sanely</span></em></h3>
<p>Remember the <a href="http://">sit-in-your-own-lap transition</a>? How can we get TDD all-at-once-a-little-at-a-time?</p>
<p>We make a list of classes called the &#8216;must-test list&#8217;. If a developer is going to touch a must-test class, she has to use full-on TDD: microtests written before changes, the ol&#8217; red-green-refactor-integrate cycle, the whole kit and caboodle.</p>
<p>Over time, we grow the must-test list in two ways.</p>
<p>First, we grow it by turning more and more classes into &#8216;must-tests&#8217;. We do that by fixing awkward dependencies, either at the class doing the calling, or the class being called.</p>
<p>Second, we grow it by learning the patterns of refactoring that can make a non-testable become a readily-testable. Each time we get the whole team to perform a new refactoring, we can add classes that would be testable if only we knew that refactoring.</p>
<p>Let&#8217;s do an example: many teams have yet to recover from the singleton pattern, so they have classes that depend heavily on global data. Using alternate constructors is a simple  pattern that can solve this problem. An hour of study and one successful attempt, and you&#8217;re good to go. Once the team has that pattern, we can add to our must-test list classes that would be readily testable <em>except for their use of globals.</em></p>
<p>The must-test list starts life as a list you control. Think in terms of adding two classes a week in the beginning. Make the changes in the must-test list at the iteration break, say, during the planning. As the team builds their experience and excitement about TDD, you can gradually hand over management directly to the team.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Coach The Inner Game<br />
Give Their Minds The Right Stance</span></em></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/16/coaching-the-tdd-inner-game/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The Projector Rule: A Moving Target Code Standard</title>
		<link>http://anarchycreek.com/2010/04/14/the-projector-rule-a-moving-target-code-standard/</link>
		<comments>http://anarchycreek.com/2010/04/14/the-projector-rule-a-moving-target-code-standard/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 16:59:39 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1546</guid>
		<description><![CDATA[My favorite part is the refactoring. Sometimes I do it by itself, as in the DoubleDawg. Mostly, though, I do it inline as part of the TDD discipline. I love it either way, and I can&#8217;t explain why. Loving refactoring so openly is good good good when I&#8217;m coaching: other people can&#8217;t help but watch [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite part is the refactoring.</p>
<p>Sometimes I do it by itself, as in the DoubleDawg. Mostly, though, I do it inline as part of the TDD discipline. I love it either way, and I can&#8217;t explain why.</p>
<p>Loving refactoring so openly is good good good when I&#8217;m coaching: other people can&#8217;t help but watch what I&#8217;m doing and then try to see if it&#8217;s really as fun as all that. (It is.)</p>
<p>But once a team jumps into the act itself, there&#8217;s a question that just has to pop into some minds, especially the ones who feel it&#8217;s very important to, you know, <em>ship:</em></p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">How Do I Know When I&#8217;m Done Refactoring?</span></em></h3>
<p>&#8220;You&#8217;re done refactoring when the code meets our current standard of coding excellence.&#8221;</p>
<p>I&#8217;m always surprised when someone just nods their head to this and turns away, as if I&#8217;ve actually given an answer. I guess questions can sometimes be pro forma gestures, too.</p>
<p>Anyway, that&#8217;s a terrible answer, but on good days it leads right to the next question: <span style="font-size: 13.3333px;">What&#8217;s our current standard of coding excellence?</span></p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">The Challenges Of Standard-Setting</span></em></h3>
<p>Setting standards seems to cry out for the clarity and detail of a perfectly written set of rules. Ya know? If we just sat down and carefully listed all the things you can do, and all the things you can&#8217;t do, using maximum simplicity and maximum clarity, we&#8217;d have a perfect standard.</p>
<p>Then there are those of us who have either studied law, or babysat a truculent nine-year-old, or both.</p>
<ol>
<li>We want our rules to cover everything, but only a small handful of situations can really be described that way.</li>
<li>We want our rules to be stable, but time and experience make mockery of our earlier attempts, time and again.</li>
<li><span style="font-size: 13.3333px;">We want our rules to be axiomatic, but as Kurt Godel demonstrated, any such that are sufficiently powerful to be of interest are also suffiicently powerful to contain undecidable propositions.</span></li>
<li><span style="font-size: 13.3333px;">We want our rules to be simple and no-nonsense, but as any handy nine-year-old can demonstrate, when it comes to misinterpretation, where there&#8217;s a will there&#8217;s a way.</span></li>
</ol>
<p>So? What to do?</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>The Simplest Thing That Could Possibly Work</em></span></h3>
<p>When I first studied the XP process, I was struck by Kent Beck&#8217;s ability to construct rules that were as perfectly detailed as they could be, but no further.</p>
<p>&#8220;Do The Simplest Thing That Could Possibly Work&#8221; is a wonderful example of this.</p>
<p><span style="font-size: 13.3333px;">Without a rigorous definition of simplest, possibly, and work, a computer would find this rule absolutely empty. </span><span style="font-size: 13.3333px;">All the important words in the rule are left to individual human judgment. Defining them would take years and years and would still fail. (Read the XP list some time.)</span></p>
<p>But the rule works in spite of the uncertainty, because it contains an implicit &#8216;you&#8217; for each of the ambiguous words. <em>Simplest</em> means <em>simplest-to-<strong>you</strong></em>, and <em>possibly</em> means <em>possibly-to-<strong>you</strong></em>, and <em>work</em> means <em>work-the-way-<strong>you</strong>-want</em>.</p>
<p>Notice that this kind of rule completely evades the problems list from above. Clever.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>My Rule For Refactoring</em></span></h3>
<p style="margin-left: 5em; margin-right: 5em; padding-top: 2px; padding-right: 6px; padding-bottom: 4px; color: #000000; background-color: #a0a0f0; padding-left: 36px; border: 2px solid #dddddd;"><strong><em>You are done refactoring when you&#8217;re ready to project the code onto the wall for the whole team to see.</em></strong></p>
<p>This rule works just like the XP ones: it is full of opinion, judgment, and <em>you-ness.</em></p>
<p>This rule works best when its coupled with <em>actual code projection, </em>along the lines of a lottery learning session.</p>
<p>I like that we simultaneously release the team, empowering them to decide for themselves what&#8217;s enough, and also situate them, showing them that their coding standard is going to be super-local, theirs and theirs alone.</p>
<p>I also love that I get to watch the actual meaning of that rule change. Every actual projected code session makes changes to the underlying meaning, and so do most pairing sessions between a junior and a senior.</p>
<h3>
<p style="text-align: center;"><span style="color: #0000ff;"><em>Use The Projector Rule</em></span></p>
<p style="text-align: center;"><span style="color: #0000ff;"><em>To Identify The Moving Target Code Standard</em></span></p>
</h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/14/the-projector-rule-a-moving-target-code-standard/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Coaching The Automation Principle</title>
		<link>http://anarchycreek.com/2010/04/12/coaching-the-automation-principle/</link>
		<comments>http://anarchycreek.com/2010/04/12/coaching-the-automation-principle/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 18:16:59 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1515</guid>
		<description><![CDATA[Because the human mind is the most expensive resource, don’t spend it where you don&#8217;t have to. The automation principle is  one sentence long, but it points a dozen directions at once. Teams are usually all-or-nothing in automation. Once a team realizes how lovely it is to not-think on no-thinking-required tasks, they jump right in [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-left: 5em; margin-right: 5em; padding-top: 2px; padding-right: 6px; padding-bottom: 4px; color: #000000; background-color: #60a560; padding-left: 36px; border: 2px solid #dddddd;"><strong>Because the human mind is the most expensive resource, don’t spend it where you don&#8217;t have to.</strong></p>
<p>The automation principle is  one sentence long, but it points a dozen directions at once.</p>
<p>Teams are usually all-or-nothing in automation. Once a team realizes how lovely it is to not-think on no-thinking-required tasks, they jump right in and build or tune all their tools for maximum advantage.</p>
<p>Don&#8217;t you worry, I&#8217;m just <em>sure</em> your team will be one of those easy ones. If that&#8217;s the case, you can just skip this article and make a cash donation to the charity of your choice.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Urgency + Automation</span></em></h3>
<p>Ahhh, yes, not one of the lucky ones, eh?</p>
<p>Your first challenge is just to decide what your first challenge is. The sheer number of possible automation stories is daunting: it&#8217;s one of the biggest reasons I advocate the <a href="http://anarchycreek.com/2010/03/09/half-and-half-in-agile-transition/">half-and-half</a> transition. A sizable portion of your energy can then be given just to tackling automation stories.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">The Inner Cycle</span></em></h3>
<p>The inner TDD cycle is <em>always </em>the most urgent target for automation.</p>
<p>We need a single-step for &#8220;save my changes, compile/link/copy, and if there are no errors, launch the microtests-of-interest&#8221;.</p>
<ul>
<li><strong><em>Save my changes:</em><span style="font-weight: normal;"> Many almost-ready automation sequences shortchange this step, but it&#8217;s important. You <em>never</em> want to run your microtests against the code <em>before your changes.</em></span></strong></li>
<li><strong><em>Compile/Link/Copy: </em><span style="font-weight: normal;">The two most important issues are the 100% problem (for optimal builds), and for some teams, the need to take binaries and put them in the &#8216;right&#8217; place for running.</span></strong></li>
<li><em><strong>Run Microtests-Of-Interest:<span style="font-style: normal;"> <span style="font-weight: normal;">some teams stumble here. The final step of the inner cycle is to run and examine the microtest results. Starting the actual program running is not a necessity.</span></span></strong></em></li>
</ul>
<p>It&#8217;s important to understand that we are not looking for three separate gestures here. We want all of the above action to happen with a single gesture.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Integrate It!</span></em></h3>
<p>Next after the inner cycle is integration. This time, it&#8217;s not a single gesture:</p>
<ul>
<li><strong><em>Show Me Everything I Changed<span style="font-weight: normal;">: <span style="font-style: normal;">The output should be in the identical tree shape of the source. If you made some changes you don&#8217;t want, revert them here.</span></span></em></strong></li>
<li><span style="font-weight: normal;"><span style="font-style: normal;"><strong><em>Merge Out:</em><span style="font-weight: normal;"> Bring me everyone else&#8217;s changes, with a merge system for each collision between my changes and theirs.</span></strong></span></span></li>
<li><span style="font-weight: normal;"><span style="font-style: normal;"><strong><span style="font-weight: normal;"><em><strong>Run Inner Cycle:</strong></em> We&#8217;re not done merging out until the microtests run green.</span></strong></span></span></li>
<li><strong><em>Commit Everything I Changed: </em><span style="font-weight: normal;">Usually there&#8217;s another round of show-me here, followed by the actual commit.</span></strong></li>
</ul>
<p>When we can do all four of these actions with simple and thoughtless gestures, we&#8217;re in good shape.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>The Trap Trio</em></span></h3>
<p>The integration automation is a good place to consider the three most likely coaching difficulties, as they each can be found there. These are all noob problems: an experienced automater sees these situations all the time, but doesn&#8217;t fall for them.</p>
<p><strong>All-Or-Nothing-At-All</strong>: Engineers, yo. They get trapped here because they can&#8217;t think of an automated solution that solves every conceivable variant. This is an easy one to resolve: teach them how to implement their scripts and macros as fail-fast. If our scripts can establish that it&#8217;s a situation they can&#8217;t handle, then they can fail right out. Sometimes 91.5% is just fine.</p>
<p><strong>Mind-In-The-Middle:</strong> Automation can&#8217;t work because there are some sub-steps that absolutely require human intervention. No, that&#8217;s not quite it. It&#8217;s because there are a bunch of mind-needed sub-steps, spread throughout the process. This problem might fall as in all-or-nothing: automate what you can, don&#8217;t sweat what you can&#8217;t. But more likely, a clever person can smoosh the sub-steps in time, so that the mindful parts are all in the same place. Then we just leave that single hole in our automation and have everything else mechanical as can be.</p>
<p><strong>More Controls = More Control:</strong> This one&#8217;s endemic. Folks who couldn&#8217;t code a fucking for-loop sitting in front of the jet cockpit of a universally-mandated fabulously-expensive entirely-wasted version control system like they have some clue what they&#8217;re doing. These systems justify their wretched excess on the theory that they give you every conceivable control over your integrations. Agilists in particular should not buy this theory. The resolution? It&#8217;s a combination of the two that just came: rearrange mindful steps, and settle for less than perfect solutions. In particular, don&#8217;t be afraid to write front-end scripts that quietly drive the VCS for the most typical variant.</p>
<p style="text-align: center;">
<div id="attachment_1539" class="wp-caption aligncenter" style="width: 370px"><a href="http://steampunkworkshop.com/visit-steampunked-home"><img class="size-full wp-image-1539 " title="Click To See This Beast Up Close" src="http://anarchycreek.com/wp-content/uploads/2010/04/Steampunk-organ-cockpit-desk-15.jpg" alt="" width="360" height="455" /></a><p class="wp-caption-text">A Radically Simplified VCS</p></div>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>Leading Automation Efforts Is </em></span></h3>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>Perfect Releasing!</em></span></h3>
<p><span style="font-size: 13.3333px;"><br />
</span></p>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/12/coaching-the-automation-principle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coaching The Urgency Principle</title>
		<link>http://anarchycreek.com/2010/04/08/coaching-the-urgency-principle/</link>
		<comments>http://anarchycreek.com/2010/04/08/coaching-the-urgency-principle/#comments</comments>
		<pubDate>Thu, 08 Apr 2010 17:19:13 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1500</guid>
		<description><![CDATA[Give most of your effort to the most important story, a little to less important stories, and none at all to unimportant stories. To me, the most amazing thing about the urgency principle is how I ever managed to live without it. As an individual, it reminds me to stop screwing around doing stuff that [...]]]></description>
			<content:encoded><![CDATA[<p style="margin-left: 5em; margin-right: 5em; padding-top: 2px; padding-right: 6px; padding-bottom: 4px; color: #000000; background-color: #60a560; padding-left: 36px; border: 2px solid #dddddd;"><strong>Give <em>most</em> of your effort to the most important story, a <em>little </em>to less important stories, and <em>none at all </em>to unimportant stories.</strong></p>
<p>To me, the most amazing thing about the urgency principle is how I ever managed to live without it.</p>
<p>As an individual, it reminds me to stop screwing around doing stuff that is anything less than the most important thing. This works for me whether I am coaching, coding, writing, blogging, or doing home repair.</p>
<p>The quantity of empirical data that says multi-tasking is inefficient staggers a researcher’s mind. <em>No one </em>advocates doing two things at the same time. It follows, then, that if I’m not doing two things at once, I have to choose which one of those two is most important and do that one.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">As For The Team</span></em></h3>
<p>As a team, the urgency premise is all about sorting user stories – software development for the business – into a <em>literal</em> stack, where the most important story is at the top and the least important at the bottom, and every story between is more important than the one below it and less important than the one above it.</p>
<p>Many companies bucketize their work. They pick some small integer, usually 4, and divide all their stories into those buckets. They’re usually called “Must-Have”, “Should-Have”, “Like-To-Have”, and “Optional”. This technique has <em><strong>the rather remarkable property that it does not work in any way</strong></em>. Every customer voice in such an organization knows that the only way to get something actually done is to get it into Must-Have, and even that isn’t always enough to guarantee its inclusion. Optional is always empty, and Like-To-Have has one or two token stories.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>Coaching Urgency</em></span></h3>
<p>The key to coaching urgency successfully is to help the team understand why story-size is so important. Granularity is key, here. We want them to understand why we shrink the granularity of stories as small as we possibly can.</p>
<p>Take a look at these features (large stories) sorted by importance:</p>
<p><img class="aligncenter size-full wp-image-1503" title="Stories That Are Really Features" src="http://anarchycreek.com/wp-content/uploads/2010/04/granularity-large.jpg" alt="" width="515" height="284" /></p>
<p>It’s pretty easy here to say that we should do our work 1-2-3-4, yes?</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Same Order, Smaller Stories</span></em></h3>
<p><span style="font-size: 13.3333px;">But what if we take those same four features, but this time broken into smaller stories. </span><span style="font-size: 13.3333px;">Everything in the figure below that isn’t in light blue is lost value. If we follow the 1-2-3-4 strategy, we’re going to implement B and C before we implement D, and that’s clearly sub-optimal.</span></p>
<p style="text-align: center;"><span style="font-size: 13.3333px;"><img class="aligncenter size-full wp-image-1504" title="Features Are Made Of Stories" src="http://anarchycreek.com/images/granularity-both.jpg" alt="" width="515" height="279" /><br />
</span></p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">The Actual Optimal Order</span></em></h3>
<p>The final figure below shows the same work as before, this time sorted absolutely by value. Do you see that by splitting and re-sorting we have dramatically changed our implementation order? So will your customer team.</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1505" title="Smaller Stories Deliver More Value" src="http://anarchycreek.com/images/granularity-small.jpg" alt="" width="515" height="279" /></p>
<p>The shape here is called the <em>diminishing value curve</em>. Producing stories A-D-B-G-E-H-F-J-C-I-K-L is far better suited as a strategy. If that&#8217;s not obvious, let&#8217;s take the same diagram and add a shipping date:</p>
<p style="text-align: center;"><img class="aligncenter size-full wp-image-1507" title="granularity-with-ship-day" src="http://anarchycreek.com/images/granularity-with-ship-day.jpg" alt="" /></p>
<p>There&#8217;s room here for another whole conversation about the <em>shape </em>of a user-story. Soon, soon. For now, this will do:</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Choose One Story, Hammer It. Repeat</span></em></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/08/coaching-the-urgency-principle/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stand And Deliver!</title>
		<link>http://anarchycreek.com/2010/04/07/stand-and-deliver/</link>
		<comments>http://anarchycreek.com/2010/04/07/stand-and-deliver/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 16:25:32 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1492</guid>
		<description><![CDATA[If I asked you a question about our process, would you be ready to stand up and pronounce, right on the spot? Talking in front of groups is so obviously part of coaching that it&#8217;s easy to underestimate its importance. If you&#8217;re going to be a great coach, you&#8217;re going to have to be a [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_1496" class="wp-caption aligncenter" style="width: 310px"><a href="http://en.wikipedia.org/wiki/The_Death_of_Socrates"><img class="size-medium wp-image-1496" title="The Death of Socrates, Jacque-Louis David, 1787" src="http://anarchycreek.com/wp-content/uploads/2010/04/800px-David_-_The_Death_of_Socrates-300x195.jpg" alt="" width="300" height="195" /></a><p class="wp-caption-text">Me, Talking While Someone Hands Me A Beer</p></div>
<p>If I asked you a question about our process, would you be ready to stand up and pronounce, right on the spot?</p>
<p>Talking in front of groups is so obviously part of coaching that it&#8217;s easy to underestimate its importance. If you&#8217;re going to be a great coach, you&#8217;re going to have to be a good off-the-cuff speaker.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">The Basics: Practice Practice Practice</span></em></h3>
<p>No matter what style of coach you are, there are a handful of basics that always apply:</p>
<ul>
<li>Speak to everyone, one person at a time: make eye contact, one by one, with everyone you&#8217;re speaking to. Practice this until you do it without thinking.</li>
<li>Learn to pause without sound. <em>Uhhs, ya knows, likes, </em>and so on feel like they&#8217;re helping, but they&#8217;re not. People <em>like</em> that you take time to formulate your words, even before you say anything at all.</li>
<li>Punch the message. All of my worst speaking experiences have been when I lost my message, then dribbled off into pathetic uselessness. Outside the NBA, nobody likes a dribbler.</li>
<li>Master saying <em>I don&#8217;t know.</em> There are several different good ways to say this. Again, people <em>like </em>that you sometimes don&#8217;t know. It builds trust and confidence for when you do know.</li>
</ul>
<p>If you&#8217;re just getting into this bizarre gig, and you don&#8217;t feel happy when you have to stand up and give talks, it&#8217;s easy to get basic training. I strongly recommend <a href="http://www.toastmasters.org/">Toastmasters International</a>. They will help enormously.</p>
<p>In any case, keep practicing. Study doesn&#8217;t really repay much when you&#8217;re just getting started. It&#8217;s the practice that counts.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Intermediate: Only Connect!</span></em></h3>
<p><span style="font-size: 13.3333px;">When E.M. Forster wrote <em>Only connect!</em>, he was talking about humans making contact with each other.</span></p>
<p>Yes, of course, connect with your audience. Use your empathy and your experience to feel your way into subtexts, fears, and so on.</p>
<p>Excellent talking includes another kind of connecting: the kind where you tie what you&#8217;re saying now to what you have already said, or better still, what the team has already done. I use the principles of agile development <em>constantly</em> when I coach, and I try to tie every idea or judgment back to them.</p>
<p>Perhaps the last intermediate skill would be the <em>delicate demurral.</em> It is the way of things that you will be asked as a coach to publicly evaluate baseless, bizarre, bogus, and bad proposals. Let &#8216;em down easy. Kindness knows no shame.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Mastery: Watch, Study, Learn.</span></em></h3>
<p>Some suggest that masters of public speaking have no fear. I doubt it. Masters have fear, but they harness it to help them deliver intensity and passion, and that&#8217;s a wonderful thing to see. Watch the best speakers around you.</p>
<p>Eventually, you may want to study rhetoric. I find that <a href="http://humanities.byu.edu/rhetoric/Silva.htm">Silvia Rhetoricae</a> is an awesome site for discovering the figures of speech. A figure of speech is a kind of language design pattern. Fascinating stuff</p>
<p>Read speeches. For an amazing read, try Gary Wills&#8217;s <a href="http://www.amazon.com/gp/product/0743299639?ie=UTF8&amp;tag=anarcree-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0743299639">Lincoln at Gettysburg</a>. His analysis of the Gettysburg Address will make you hunger for more.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>One More Thing:</em></span></h3>
<h3 style="text-align: center;"><span style="color: #0000ff;"><strong><em>Use This Power For Good</em></strong></span></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/07/stand-and-deliver/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coaching Profluence For Motivation</title>
		<link>http://anarchycreek.com/2010/04/06/coaching-profluence-for-motivation/</link>
		<comments>http://anarchycreek.com/2010/04/06/coaching-profluence-for-motivation/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 17:28:41 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1472</guid>
		<description><![CDATA[At one time, I longed to be a writer of novels. I owned about 100 or so books on how to write fiction, and I read every one of them cover to cover. Later on, I discovered that the best way to write is to, you know, write. Among my favorite books about writing was [...]]]></description>
			<content:encoded><![CDATA[<p>At one time, I longed to be a writer of novels. I owned about 100 or so books on how to write fiction, and I read every one of them cover to cover. Later on, I discovered that the best way to write is to, you know, write.</p>
<p>Among my favorite books about writing was <a href="http://www.amazon.com/gp/product/0679734031?ie=UTF8&amp;tag=anarcree-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0679734031">The Art of Fiction: Notes on Craft for Young Writers</a> by John Gardner. It was the first time I learned about profluence.</p>
<div id="attachment_1483" class="wp-caption aligncenter" style="width: 310px"><a href="http://en.wikipedia.org/wiki/A_Rake's_Progress"><img class="size-medium wp-image-1483" title="The Rake's Progress (finale) William Hogarth, 1732-33" src="http://anarchycreek.com/wp-content/uploads/2010/04/729px-William_Hogarth_019-300x246.jpg" alt="" width="300" height="246" /></a><p class="wp-caption-text">Me, At The End Of My Profluence</p></div>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Is This Going Somewhere?</span></em></h3>
<p>Think of the most recent time you told someone a story.</p>
<p>I&#8217;m not talking here about telling a fairy tale or a novel. Most stories are just a few sentences long, and they are ubiquitous in human conversation. Take a glance back up at the first paragraph of this article. <em><strong>That paragraph consists of three sentences, and I am clearly telling a story.</strong></em></p>
<p>Not much of a story, but compare that to the next paragraph:</p>
<p style="padding-left: 30px;"><span style="font-size: 13.3333px;">Last night, we had dinner out, and Virginia was chatting with the folks sitting next to us at the bar. The music playing was Thai pop.  Thai pop is kinda icky if you ask me.</span></p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>What&#8217;s Missing?</em></span></h3>
<p><span style="font-size: 13.3333px;">What is missing is <em><a href="http://en.wiktionary.org/wiki/profluence">profluence</a>.</em></span></p>
<p><em> </em>Profluence is the sense that we are getting somewhere. It&#8217;s one of those aspects of human interaction that usually hides in plain sight. <span style="font-size: 13.3333px;">The next time you find yourself justifying some action, listen to yourself creating <em>flow. </em>Each sentence of your explanation takes the story a little further.</span></p>
<p>Human beings constantly create narratives as they go. The neurologist William Calvin once remarked that we should be called <em>homo seriatim </em>instead of <em>homo sapiens:</em> We do way more stories than we do wisdom.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em>Why Profluence Matters To A Coach</em></span></h3>
<p>Simple.</p>
<p>The Harvard Business Review offers <a href="http://hbr.org/2010/01/the-hbr-list-breakthrough-ideas-for-2010/ar/1">this key finding</a> from a multi-year study of over</p>
<blockquote><p>Having just completed a multiyear study tracking the day-to-day activities, emotions, and motivation levels of hundreds of knowledge workers in a wide variety of settings, we now know what the top motivator of performance is [...] It’s <em>progress</em>.</p></blockquote>
<p>They go on to explain that when workers have a sense they&#8217;re making headway, or when they get support that helps them overcome obstacles, thats when they are most highly motivated.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Using Profluence To Coach</span></em></h3>
<p>Knowing this tremendous power, we can jump in as coaches and create or heighten the profluence in our teams:</p>
<ul>
<li>Identify poorly motivated folk and re-frame their story as progress.</li>
<li>Use big visible charts with data that changes every other day.</li>
<li>Find victories for every standup, and make sure they rotate the credit.</li>
<li>If a whole team is off, help them create the story in which they&#8217;re profluent.</li>
</ul>
<p>Creating profluence for your team is an act of both <em><a href="http://anarchycreek.com/2009/11/24/coaching-pillar-situating/">situating</a> </em>and <em><a href="http://anarchycreek.com/2009/12/20/coaching-pillar-inviting/">inviting</a>. </em>Don&#8217;t go for a huge outpouring all at once. Instead, look for two or three events per week that you can weave into your ongoing progress.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong>Keep Your Team&#8217;s Story Moving,</strong></em></span></h3>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong>And They&#8217;ll Keep The Project Moving.</strong></em></span></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/06/coaching-profluence-for-motivation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>A Dork For All Seasons</title>
		<link>http://anarchycreek.com/2010/04/02/a-dork-for-all-seasons/</link>
		<comments>http://anarchycreek.com/2010/04/02/a-dork-for-all-seasons/#comments</comments>
		<pubDate>Fri, 02 Apr 2010 10:10:59 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=1446</guid>
		<description><![CDATA[I remember a night, back in the early &#8217;80s, when I sat up reading until around 3 or 4 am. I was reading Douglas Hofstadter&#8217;s Godel, Escher, Bach: An Eternal Golden Braid. I finished the book, set it aside, and cried for a while. After maybe 15 minutes, I opened the book and started over [...]]]></description>
			<content:encoded><![CDATA[<p>I remember a night, back in the early &#8217;80s, when I sat up reading until around 3 or 4 am. I was reading Douglas Hofstadter&#8217;s <a href="http://www.amazon.com/gp/product/0465026567?ie=UTF8&amp;tag=anarcree-20&amp;linkCode=as2&amp;camp=1789&amp;creative=390957&amp;creativeASIN=0465026567">Godel, Escher, Bach: An Eternal Golden Braid</a>.</p>
<p>I finished the book, set it aside, and cried for a while.</p>
<p>After maybe 15 minutes, I opened the book and started over at the beginning.</p>
<h3 style="text-align: center;"><em><span style="color: #0000ff;">Rebel With No Appreciable Cause</span></em></h3>
<blockquote><p><span style="font-size: 13.1944px;">The greatest tool in the hands of the oppressor is the mind of the oppressed. &#8211;<a href="http://en.wikipedia.org/wiki/Steve_Biko"> Steve Biko</a></span></p></blockquote>
<p><span style="font-size: 13.1944px;">I love that quote. It&#8217;s ludicrous of me to use it. Far from being oppressed, I am a white American male programmer born just in time to ride the great digital wave. That&#8217;s called &#8220;tall cotton&#8221; where I come from.</span></p>
<p><span style="font-size: 13.1944px;">Still, neither <em>nerd, </em>nor <em>geek, </em>nor <em>dork,</em> nor the several others, were originally intended as terms of approval. I don&#8217;t like <em>nerd</em>. The k&#8217;s in the other two ring the Anglo-Saxon bell, but <em>nerd </em>just has a snot-nosed-ness about it that I don&#8217;t find appealing.<br />
</span></p>
<p><span style="font-size: 13.1944px;">I&#8217;m actually <strong><em>multidorktual</em></strong>, myself. Computers, history, literature, music. Last year a guy in one of my classes used a particularly lovely phrase: he said I was a <em>renaissance dork.</em><br />
</span></p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong>What Is A Geek, Anyway?</strong></em></span></h3>
<p>If you surf  around a little, you&#8217;ll gather a reasonably accurate tag-cloud for these words. Mostly the focus is on &#8220;poor social skills&#8221;, or &#8220;obsessive behavior around things technical&#8221;, and so on. Gross generalizations blah-blah-blah, but yeah, I know what they&#8217;re talking about.</p>
<p><em>Geek </em>originated as a slang word to describe a &#8220;wild man&#8221; act at a carnival sideshow. The act typically climaxed when the geek tore the head off a live chicken with his teeth. I get it.</p>
<p>Anyway, they miss the point.</p>
<p>They spend a lot of energy noting how different we are from them, but they never mention the thing that stands out most clearly to me.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong>It&#8217;s The Joy, Stupid</strong></em></span></h3>
<p><span style="font-size: 13.1944px;">It <em>is </em>the joy, you know.</span></p>
<p><span style="font-size: 13.1944px;">They don&#8217;t mention it so much: <strong><em>&#8220;Oh, look, it&#8217;s those awful joy people again!&#8221;</em></strong></span></p>
<p><span style="font-size: 13.1944px;">You don&#8217;t have to be a geek to see it, you just have to look closely. Go find some dorks hanging out together, working on something, and just watch and listen. They sure do seem to be having a good time.<br />
</span></p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong><span style="text-decoration: underline;">G</span>eek Joy, <span style="text-decoration: underline;">E</span>xcellence, <span style="text-decoration: underline;">B</span>usiness Value</strong></em></span></h3>
<p><span style="font-size: 13.1944px;">If you want the heart of my coaching philosophy, there it is. I believe that if we can connect business value to geek joy, the result will be excellence.</span></p>
<p><span style="font-size: 13.1944px;">Whenever I try to help a team, the first two threads I start are:</span></p>
<ul>
<li><span style="font-size: 13.1944px;">How can we get more geek joy?</span></li>
<li><span style="font-size: 13.1944px;">How can we know what&#8217;s valuable to the business? </span></li>
</ul>
<p><span style="font-size: 13.1944px;">The rest is just tactics.</span></p>
<p><span style="font-size: 13.1944px;">Those twin tracks will consistently take you to the heart of the coaching enterprise.<br />
</span></p>
<h3 style="text-align: center;"><span style="font-size: 13.1944px;"><span style="color: #0000ff;"><em><strong>(Did You See That?)</strong></em></p>
<div id="attachment_1458" class="wp-caption alignleft" style="width: 252px"><img class="size-medium wp-image-1458" title="Douglas Hofstadter in 2002" src="http://anarchycreek.com/wp-content/uploads/2010/04/484px-Hofstadter2002-1-242x300.jpg" alt="" width="242" height="300" /><p class="wp-caption-text">A Hero Of Mine</p></div>
<p><em><strong> </strong></em></p>
<p></span> </span></h3>
<p>Heh.   I totally just did GEB back up there. Heh.</p>
<p>I&#8217;m no Hofstadter, though, so that&#8217;s prolly the last time you&#8217;ll see me  do that.</p>
<p>Douglas Hofstadter is the greatest geek of the last fifty  years. I couldn&#8217;t carry his slide rule.</p>
<p>Oh, the crying?</p>
<p>Up until that time, I thought I might be the only one of us.</p>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong>Silly Child.</strong></em></span></h3>
<h3 style="text-align: center;"><span style="color: #0000ff;"><em><strong><span style="color: #0000ff;">They&#8217;re Everywhere.</span></strong></em><em><strong><br />
</strong></em></span></h3>
<p><a class="a2a_dd addtoany_share_save" href="http://www.addtoany.com/share_save"><img src="http://anarchycreek.com/wp-content/plugins/add-to-any/share_save_171_16.png" width="171" height="16" alt="Share/Bookmark"/></a> </p>]]></content:encoded>
			<wfw:commentRss>http://anarchycreek.com/2010/04/02/a-dork-for-all-seasons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
