<?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; Favorite</title>
	<atom:link href="http://anarchycreek.com/category/favorite/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>The Double Dawg Dare</title>
		<link>http://anarchycreek.com/2009/06/02/the-double-dawg-dare/</link>
		<comments>http://anarchycreek.com/2009/06/02/the-double-dawg-dare/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 07:47:46 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Favorite]]></category>
		<category><![CDATA[Situated Geekery]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=21</guid>
		<description><![CDATA[My favorite part of coaching?  There&#8217;s no doubt:  it&#8217;s the Double Dawg Dare. Picture two kids in the south of the US.  One of them urges the other to commit some sort of dangerous and cool crime, like, say, getting to the top of the barn and jumping into that big pile of hay down [...]]]></description>
			<content:encoded><![CDATA[<p>My favorite part of coaching?  There&#8217;s no doubt:  it&#8217;s the Double Dawg Dare.</p>
<p>Picture two kids in the south of the US.  One of them urges the other to commit some sort of dangerous and cool crime, like, say, getting to the top of the barn and jumping into that big pile of hay down on the ground.  The other demurs, &#8220;I&#8217;m not gonna do that!&#8221;.  The one must now invoke the potent magical energy of a double-dog dare:<br />
<img class="alignleft size-full wp-image-118" title="Tom Sawyer was a Darer!" src="http://anarchycreek.com/wp-content/uploads/2009/05/ts3.gif" alt="Tom Sawyer was a Darer!" width="206" height="306" /></p>
<h3><span style="color: #ff0000;">&#8220;I dare ya.&#8221; </span></h3>
<h3><span style="color: #0000ff;">&#8220;Nawwww.&#8221;</span></h3>
<h3><span style="color: #ff0000;">&#8220;I <em>double </em>dare ya.&#8221;</span></h3>
<h3><span style="color: #ff0000;"> <span style="color: #0000ff;"> &#8220;Nope.&#8221;</span></span></h3>
<h3><span style="color: #ff0000;">&#8220;I double <em>dog </em>dare ya.&#8221; </span></h3>
<h3><span style="color: #0000ff;">&#8220;Welllllll, alright.&#8221;</span></h3>
<p><span style="color: #ff0000;"><br />
</span></p>
<p>See, I travel around coaching teams in transition, which means I am ever and always &#8216;the new codeslinger in town&#8217;.  Extreme programming has a number of practices that are specifically aimed at the act of coding, which means it&#8217;s up to me to work with developers while they get the basics.  A lot of what I do is just code along with them, showing <strong>how the XP way of working is more pleasant and productive</strong> than theirs.</p>
<p>And here&#8217;s the rub: no geek wants to invest in the new codeslinger until it&#8217;s been proven that she&#8217;s not a <span style="text-decoration: line-through;">bullsh</span> snake oil salesman.  Oh, come on.  I know you&#8217;ve done it.  Some so-called expert shows up, and the first thing you have to do is decide whether she knows as much as you.</p>
<p>So what happens? I&#8217;ll be working with a bunch of developers, and getting no traction at all. Everyone just nods politely at me, then goes about doing whatever they would normally do.  Then, all of a sudden, everybody hangs on my every word.  What changed? Easy.  I did something technical that they thought qualified me as <strong>good enough at geeking </strong>to show them something.</p>
<p>Now, my motto is &#8220;Fool me once, shame on you.  <strong>Fool me 387 consecutive times, shame on me.&#8221;</strong> Which is to say, I gradually realized that I was going to have to demonstrate a gift for geekery for every team, every time.  Once I started looking for it, sure enough, the double dawg dare was obvious at every site.  Some sites have some very advanced standards, others have embarrassingly low standards, but they all have <em>some</em> standard.  I finally just started walking in and saying: &#8220;<strong>Please take me to the worst class in the system that actually does real work.</strong>&#8220;  I wanted to get the double-dawg out of my way.</p>
<p>So anyway, I bring this all up for a reason:  I&#8217;ve decided I want to offer you a preemptive double-dawg-dare reverse challenge.</p>
<p>Got a java class that is</p>
<ol>
<li><em><strong>unbearable</strong>,</em> and</li>
<li><strong><em>untested</em></strong>, and</li>
<li> <strong><em>legal </em></strong>to show the world (anonymously if need be)?</li>
</ol>
<p>Because that&#8217;s what I want<strong>. </strong>I will wrestle with it, in public, until I have brought it under <a href="http://anarchycreek.com/2009/05/20/theyre-called-microtests/">microtest</a>.</p>
<p>Remember, for this one I&#8217;m specifically asking for <strong>java only</strong>.  (I&#8217;m a sucker for Eclipse, and of course, it&#8217;s at its best with Java.)  After I get a few entries, I&#8217;ll choose one and get started.  Note:<em> I do not need its dependencies, just the source code of the class itself.</em></p>
<h3 style="text-align: center;"><span style="color: #008080;"><strong>I double-dawg dare you to send <a href="mailto:GeePawHill@AnarchyCreek.com">me</a> a double-dawg dare java file.</strong></span></h3>
<p style="text-align: center;"><strong><span style="color: #008080;">(Or are you just a big sissy?)</span><br />
</strong></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/2009/06/02/the-double-dawg-dare/feed/</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>They&#8217;re Called Microtests</title>
		<link>http://anarchycreek.com/2009/05/20/theyre-called-microtests/</link>
		<comments>http://anarchycreek.com/2009/05/20/theyre-called-microtests/#comments</comments>
		<pubDate>Wed, 20 May 2009 16:47:06 +0000</pubDate>
		<dc:creator>GeePawHill</dc:creator>
				<category><![CDATA[Favorite]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[microtesting]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://anarchycreek.com/?p=68</guid>
		<description><![CDATA[I would like to offer the agile and XP communities a new word for an old idea:  Microtest instead of Unit Test. My rationale for this suggestion is straightforward. Unit test already has a meaning out there in the development world, and that meaning doesn&#8217;t match the agile/XP meaning.  There are several aspects of an [...]]]></description>
			<content:encoded><![CDATA[<p>I would like to offer the agile and XP communities a new word for an old idea:  <strong><em>Microtest </em></strong>instead of <strong><em>Unit Test.</em></strong></p>
<p>My rationale for this suggestion is straightforward. <em>Unit test </em>already has a meaning out there in the development world, and that meaning doesn&#8217;t match the agile/XP meaning.  There are several aspects of an ordinary microtest that can be entirely absent from a normal unit test.  Traveling around as I do, I get to work with an enormous number of teams, and I can tell you from extensive experience, teaching people about XP style testing is notably easier when we don&#8217;t have to repurpose a word that&#8217;s already in play.</p>
<p>A microtest has the following properties:</p>
<ul id="qjk71">
<li id="qjk72">It is short, typically under a dozen lines of code.</li>
<li id="nc:r"> It is always automated.</li>
<li id="nc:r0"> It does not test the object inside the running app, but instead in a purpose-built testing application.</li>
<li id="nc:r1"> It invokes only a tiny portion of the code, most usually a single branch of a single function.</li>
<li id="nc:r2">It is written gray-box, i.e. it reads as if it were black-box, but sometimes takes advantage of white-box knowledge.  (Typically a critical factor in avoiding combinatoric issues.)</li>
<li id="nc:r3">It is coded to the same standard as shipping code, i.e. the team&#8217;s best current understanding of coding excellence.  <br id="ljsh" /></li>
<li id="nc:r4">It is vault-committed source, with a lifetime co-terminous with the functionality it tests.</li>
<li id="nc:r5">In combination with all other microtests of an app, it serves as a &#8216;gateway-to-commit&#8217;.  That is, a developer is encouraged to commit anytime all microtests run green, and discouraged (strongly, even nastily) to commit otherwise.</li>
<li id="nc:r6">It takes complete control of the object-under-test and is therefore self-contained, i.e. running with no dependencies on anything other than the testing code and its dependency graph.</li>
<li id="nc:r7">It runs in an extremely short time, milliseconds per test.<br id="ljsh0" /></li>
<li id="nc:r8">It provides precise feedback on any errors that it encounters.</li>
<li id="nc:r9">It usually (not always) runs entirely inside a single computer.</li>
<li id="nc:r10">It usually (not always) runs entirely inside a single process, i.e. with few extra-process runtime dependencies.</li>
<li id="nc:r11">It is part of a collection all or any subset of which is invokable with a single programmer gesture.</li>
<li id="nc:r12">It is written before the code-change it is meant to test.</li>
<li id="nc:r13">It avoids most or all usage of &#8216;awkward&#8217; collaborators via a variety of slip-and-fake techniques.</li>
<li id="nc:r14">It rarely involves construction of more than a few classes of object, often one or two, usually under five.</li>
</ul>
<p>Over the years I&#8217;ve had some pretty comedic conversations with people.  One fellow was quite irate and insisted that the list above was just the definition of a <em>good</em> unit test.  Maybe microtest just means <em>good unit test.</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/2009/05/20/theyre-called-microtests/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
	</channel>
</rss>
