<?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>cwash into software &#187; Cedric Beust</title>
	<atom:link href="http://cwash.org/tag/cedric-beust/feed/" rel="self" type="application/rss+xml" />
	<link>http://cwash.org</link>
	<description>+= construction + craftsmanship;</description>
	<lastBuildDate>Thu, 29 Sep 2011 04:23:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.2</generator>
		<item>
		<title>Don&#8217;t Unit Test Anymore&#8230; No, Really!</title>
		<link>http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=dont-unit-test-anymore-no-really</link>
		<comments>http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 01:52:32 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[Developer Testing]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Cedric Beust]]></category>
		<category><![CDATA[developer testing]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[testng]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=133</guid>
		<description><![CDATA[Partly a response to "Your Unit Tests Lie to You," this entry explores the downstream ramifications of misuse of the term "unit testing" to refer to all automated developer testing.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><p>I just read <a href="http://agilesoftwaredevelopment.com/blog/janusz-gorycki/your-unit-tests-are-useless" target="_blank">Your Unit Tests Lie to You</a> by Janusz Gorycki and I was going to leave a comment there, but thought it was more appropriate to expand my comments off into their own thing.  For those that haven&#8217;t read the article, its basic premise is to grab hold of the nearest &#8220;test infected&#8221; reader and shake the warm and fuzzy out of them.  It paints the short sightedness of many recent &#8220;unit testing&#8221; converts as living in a dream world where unit tests should replace formal testing. It follows with many sentiments I&#8217;ve read (and written about here) for a while now.  It&#8217;s not that I disagree with what is being said in the article, or its tone for that matter; most of what is being said is spot on.  Unit testing is definitely not a silver bullet.  If you read my blog often, you no doubt get that. The article ends:</p>
<blockquote><p>So please, don&#8217;t fire your QA department just yet. Their job is still important, even if you unit test.</p></blockquote>
<p>So to Janusz, the fundamental problem here is a general ignorance of the purposes behind a unit test suite.  I agree 100% that&#8217;s the primary factor behind his problem.  What don&#8217;t we agree on?  Semantics.  But semantics are important!  How far do we have to go for a true zen-understanding of this issue?  Not far.  Indulge me &#8212; <span id="more-133"></span></p>
<h3>When is A Unit Test is not a Unit Test?</h3>
<p>Here&#8217;s my thesis: you may <em>use</em> a unit testing framework, but what you <em>write</em> are developer tests.  Even if they are technically unit tests, it is against everyone&#8217;s interest to call them this.  Picky, useless distinction, you say?  Hear me out.</p>
<p>There is a vast difference between the gamut of possible automated tests one could write and what is known colloquially as a unit test.  A number of different kinds of automated tests are written against frameworks that are built on top of unit testing frameworks.  That doesn&#8217;t make them unit tests.  It doesn&#8217;t make sense to <em>call</em> them unit tests.  A square is a rectangle, but does that make every rectangle a square?  An automated acceptance or integration test is subject to a completely different set of problems (in areas such as specification, maintenance, complexity) than a unit test.  In fact, about the only thing they share is their lifecycle and execution model, which many times has been <a href="http://www.youtube.com/watch?v=oGWbt3DSje0" target="_blank">retrofitted into the JUnit lifecycle and execution model</a>.</p>
<h3>&#8220;Unit Testing&#8221; and Linguistic Drift</h3>
<p>I&#8217;ve recently seen a number of different incarnations (<a href="http://www.satisfice.com/blog/archives/27" target="_blank">1</a>, <a href="http://www.computer.org/portal/cms_docs_software/software/content/best.pdf">2</a>, <a href="http://blog.exacttarget.com/blog/the-exacttarget-blog/0/0/your-opinion-is-not-best-practice-and-mine-isnt-either">3</a>) of the argument that we should eschew use of the term &#8220;best practice&#8221; because of the implications of its <a href="http://en.wikipedia.org/wiki/Linguistic_drift">linguistic drift</a> and general propensity of people to turn off their brains when just spoon-fed answers, not having to experience deriving the solution for themselves.  Similarly, the popularity of unit testing frameworks and the sheer frequency with which the term has been used have, in a sense, set the idea of developer testing back considerably.  <a href="http://www.youtube.com/watch?v=TtcEpryRy44" target="_blank">Cedric Beust makes the point</a> that in many cases we&#8217;ve confused [developer] testing terminology with JUnit terminology, and TestNG was in part a response to that.  Here we oversimplify the problems we choose to bite-off and the goals we strive toward.  They&#8217;re not realistic.  Is it no wonder so many people fall flat when trying to adopt &#8220;unit testing&#8221;?</p>
<p>While there may be some overlap with the goals of validation and verification, most in the know consider the true benefits of &#8220;unit testing&#8221; to be a totally different animal altogether.  We seem surprised to find the benefits of doing developer testing have little to do with what &#8220;testers&#8221; do.  This dischord causes a lot of confusion, and has sparked a lot of articles.  Some draw this conclusion, appropriately, that developer testing, while it fits a rigid definition of what testing is, shares little with what a typical &#8220;tester&#8221; is responsible for (true V&amp;V).  Quite often developers are the only ones doing any automation work, including this automated &#8220;developer&#8221; testing.  Developers tend to do it for all kinds of different reasons, too.  We&#8217;ll use a suite of automated tests to proceed without fear of integration errors.  That adds value <em>totally independent</em> of validation and verification practices.  If our suite catches regressions before we hand a single version off to testers, that saves both developers and testers time.  I could go on and on, but the term &#8220;unit testing&#8221; conveys very little of these kinds of benefits to the development lifecycle, and as it turns out, causes a great deal of confusion.</p>
<h3>The Right Usage</h3>
<p>When we&#8217;re talking pure <em>unit </em>tests, that is, black-box testing components in <em>pure</em> isolation (which <strong>requires isolated dependencies</strong>), not in concert, as developers we can certainly find merit in this practice.  But what we&#8217;ve learned is that this idea of unit testing, while quite beneficial as a development practice, shares very few goals with &#8220;testing&#8221; as we know it from a classical definition of the word (end-to-end V&amp;V).  Perhaps a few years ago this distinction was not that true, but we now know better.  We know the <a href="http://blog.thinkrelevance.com/2008/5/23/how-to-fail-with-100-test-coverage">danger in trying to bend unit tests into something they&#8217;re not</a>.</p>
<p>My point is essentially this: knowing how to use a unit testing framework, a very simplistic construct on the surface, to do all of these wonderful things is certainly not something that just &#8220;falls out&#8221; of developing a unit of code &#8211; it&#8217;s not something we should expect developers to just deliver each iteration as part of their deliverable like it&#8217;s &#8220;done.&#8221;  Effort invested to develop and maintain test code alongside the code under test is not free.</p>
<p>Only if you are persistent will you come to understand there sometimes is very little benefit in terms of &#8220;full blown&#8221;, classical validation and verification – the whole reason you set out on this crazy &#8220;unit testing&#8221; kick. You either stick with it, or write it off at this point.  If you stick with it,  well, I&#8217;ll save you the trouble of figuring this out for yourself; you learn it&#8217;s only another development practice, that needs to be balanced out with other sound practices. It&#8217;s hard work.   <a href="http://blog.jayfields.com/2009/02/thoughts-on-developer-testing.html">Really hard</a>.</p>
<p>Then why go to all the trouble?  It&#8217;s my contention, and I assume most will agree, that developer testing is useful.  It drives out better designs, code, and has the potential to thwart a caste of would-be regressions.  It can stamp out integration errors.  It can help you learn about a new framework or prototype a new feature.  But that usefulness comes with a very real cost.</p>
<p>If we truly acknowledge that the type of practice we&#8217;ve talked about has merit as a development process, it makes very little sense to continue referring to the practice as &#8220;unit testing.&#8221;  If testing modules of code, driving development with these tests, maintaining them alongside the code, and other automation activities are worthy practice <em>for developers</em>, we should consider the semantics of our vocational vocabulary.  Let&#8217;s stop confusing each other.  We&#8217;re not talking about delivering 100% code coverage, we&#8217;re not talking about replacing testers (unless you&#8217;ve got the huevos to go without them, anyway), and we&#8217;re surely not talking about writing <em>or releasing</em> bug-free software.  It&#8217;s a lot easier to cut through a lot of the hype and confusion if we can all learn to say developer testing and understand it as such.  Let&#8217;s put the term &#8220;unit test&#8221; to rest.</p>
<p>R.I.P. unit tests.  Long live &#8220;developer tests!&#8221;</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=Don%27t+Unit+Test+Anymore...+No%2C+Really%21&amp;link=http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/&amp;notes=Partly%20a%20response%20to%20%22Your%20Unit%20Tests%20Lie%20to%20You%2C%22%20this%20entry%20explores%20the%20downstream%20ramifications%20of%20misuse%20of%20the%20term%20%22unit%20testing%22%20to%20refer%20to%20all%20automated%20developer%20testing.&amp;short_link=http://bit.ly/bxvaIa&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>June 9, 2009 -- <a href="http://cwash.org/2009/06/09/mocking-with-jmockit/" title="Mocking with JMockit">Mocking with JMockit</a> (5)</li><li>January 31, 2009 -- <a href="http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/" title="In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel ">In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel </a> (3)</li><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>June 3, 2009 -- <a href="http://cwash.org/2009/06/03/what-is-hamcrest/" title="What is Hamcrest?">What is Hamcrest?</a> (0)</li><li>March 13, 2008 -- <a href="http://cwash.org/2008/03/13/continuous-integration-dissected/" title="Continuous Integration Dissected">Continuous Integration Dissected</a> (0)</li><li>March 11, 2008 -- <a href="http://cwash.org/2008/03/11/bugs-detectives-and-test-automation/" title="Bugs, Detectives, and Test Automation">Bugs, Detectives, and Test Automation</a> (2)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>In response to Stackoverflow #38/&#8221;Quality Doesn&#8217;t Matter That Much&#8221; &#8212; Jeff and Joel</title>
		<link>http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/?utm_source=rss&amp;utm_medium=rss&amp;utm_campaign=in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel</link>
		<comments>http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/#comments</comments>
		<pubDate>Sun, 01 Feb 2009 01:16:05 +0000</pubDate>
		<dc:creator>Chris Wash</dc:creator>
				<category><![CDATA[Meta/Blog]]></category>
		<category><![CDATA[Software Engineering]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[blog fight]]></category>
		<category><![CDATA[Bob Martin]]></category>
		<category><![CDATA[Cal Henderson]]></category>
		<category><![CDATA[Cedric Beust]]></category>
		<category><![CDATA[Clean Code]]></category>
		<category><![CDATA[creativity]]></category>
		<category><![CDATA[development practices]]></category>
		<category><![CDATA[Gavin King]]></category>
		<category><![CDATA[Hanselminutes]]></category>
		<category><![CDATA[Jared Richardson]]></category>
		<category><![CDATA[Jeff Atwood]]></category>
		<category><![CDATA[Jim Coplien]]></category>
		<category><![CDATA[opinion]]></category>
		<category><![CDATA[pragmatic]]></category>
		<category><![CDATA[quality]]></category>
		<category><![CDATA[software development]]></category>
		<category><![CDATA[stackoverflow]]></category>
		<category><![CDATA[technical debt]]></category>
		<category><![CDATA[testng]]></category>
		<category><![CDATA[unit testing]]></category>

		<guid isPermaLink="false">http://cwash.org/?p=107</guid>
		<description><![CDATA[Weighing in on the recent ideological classes between Stackoverflow's recent podcast with Jeff Atwood and Joel Spolsky in which they call out Robert "UncleBob" Martin on his views of Unit Testing and his SOLID principles.]]></description>
			<content:encoded><![CDATA[<script type="text/javascript">dzone_url = "http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/";</script><script language="javascript" src="http://widgets.dzone.com/widgets/zoneit.js"></script><div class="content">
<p><strong>Update:</strong> Robert Martin is scheduled to appear on the Feb 10 episode of the SO Podcast.  Should be interesting to see where things go.  Also, Jay Fields has <a href="http://blog.jayfields.com/2009/02/thoughts-on-developer-testing.html">weighed in on the topic</a>.</p>
<p><strong>Update #2:</strong> Listened to the new SO podcast and am working on a short followup post.  I just met another local boy and kindred spirit in <a href="http://www.codethinked.com/">Justin Etheredge who has also had a few things to say</a> about this whole debacle.</p>
<p>I wanted to add my two cents to this philosophical, in my view very important, but not very pragmatic debate. For the uninitiated, the argument begins with the <a href="http://blog.stackoverflow.com/2009/01/podcast-38/">Stackoverflow Podcast Episode #38</a> which is a discussion between Joel Spolsky and Jeff Atwood.  They discussed, among many other topics, some of &#8220;UncleBob&#8221; Martin&#8217;s recent material found in his book <em><a href="http://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882">Clean Code</a></em>, (actually, Spolsky cited Martin&#8217;s appearance on <a href="http://www.hanselminutes.com/default.aspx?showID=163">Hanselminutes</a> as the spark to his comments), which Martin responded to with a number of tweets and a <a href="http://blog.objectmentor.com/articles/2009/01/31/quality-doesnt-matter-that-much-jeff-and-joel">blog post</a>.<span id="more-107"></span></p>
<p><a href="http://agileartisans.com/main">Jared Richardson</a> introduced me to the idea of <strong>technical debt</strong>, (term was coined, like so many other terms, by Ward Cunningham) which I think is a pragmatic way to cut through the philosophical differences in this argument.  But in the interest of carrying on the debate, and because it&#8217;s the weekend, I&#8217;ve decided to (perhaps) add some fuel to the fire.  Please don&#8217;t read this at work.</p>
<p>The gist of the argument is about how much emphasis you should focus on robustness/code hygiene/maintainability in your code, even if it is unclear there is much business value in doing so.  Essentially, if we consider impacts to budgets, deadlines, etc., and even in terms of its impact to your code (see Antipattern: &#8220;Yet Another Useless Layer&#8221;) &#8212; is it worth it?  It&#8217;s very much a discussion of what software quality is and why is it important, which raises questions like:</p>
<ul>
<li>Are robustness and business value mutually exclusive?</li>
<li>Does quality require rigor and conceptual cleanliness?</li>
<li>Is code hygiene a purely academic pursuit, or is there intrinsic value in it?</li>
</ul>
<p>These are interesting questions.  Atwood and Spolsky take what they feel is a more pragmatic position; Atwood explaining quality in terms of a Frank Zappa quote [paraphrasing] &#8220;Nobody gives a crap if we&#8217;re great musicians,&#8221; meaning that what matters is ultimately what is delivered to the customer. He explains further that &#8220;Quality is just another axis&#8221; &#8212; another set of competing concerns for your development time and interest.  Spolsky&#8217;s comments constitute a self-professed rant that there is a thread of zealotry in the OO community around TDD.  It reminded me a lot of what <a href="http://beust.com/weblog/archives/000477.html">Cedric Beust has argued</a> in reference to what <a href="http://www.infoq.com/interviews/coplien-martin-tdd">Jim Coplien has debated with Martin himself</a>.  While Spolksy could be playing devil&#8217;s advocate, or could have been looking to start a &#8220;blog fight&#8221; (already popping up in comment threads) I think he could have gone about it in a more pragmatic way.  While Beust does paint Martin as a zealot as well, at least his main point didn&#8217;t portray unit testing as just short of completely useless; rather, he is one of the creators of the popular <a href="http://testng.org/doc/">TestNG </a>framework:</p>
<blockquote><p>&#8220;Tests first&#8221; or &#8220;tests last&#8221; is unimportant as long as there are tests.</p></blockquote>
<p>I might be wrong, but I even remember reading a section of <em>Clean Code</em> in Borders last week and essentially reading Beust&#8217;s point in Martin&#8217;s book.  It stuck out in my mind after watching his debate with Coplian.  But I digress.</p>
<p>Before going further, I wanted to point out how much this debate reminds me of <a href="http://www.plasticbag.org/archives/2004/03/from_pirate_dwarves_to_ninja_elves/">From pirate dwarves to ninja elves&#8230;</a>, which I believe is a great way to classify personality types &#8212; especially those of people writing code.  We know for sure that UncleBob falls into the Ninja-Elf quadrant.  He thinks practicing TDD is a professional responsibilty and lays out his own definition for TDD in <em>Clean Code</em>.  I think this is the very definition of a Ninja-Elf.  My personal leanings are toward that quadrant as well. When you are innundated with Dijsktra, the ulitmate Ninja-Elf, in school, the following quote really sticks with you:</p>
<blockquote><p>I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself &#8220;Dijkstra would not have liked this&#8221;, well, that would be enough immortality for me.</p></blockquote>
<p>But there are people whose opinions I respect with Dwarf-Pirate leanings, too.  Obviously Atwood and Spolsky lean in this direction (though they may not fall directly into that quadrant).  I’ve heard some others that I respect espouse the same opinion as Spolsky; Gavin King, for example, I’ve heard him say, “The types of bugs that I introduce usually aren’t caught by a <strong>unit</strong> test.”  He wasn’t as over the top in his argument, he simply explained that he prefers integration tests.  And I don&#8217;t think you&#8217;d hear any of the people mentioned in this post say that they never write any tests.  For a great argument from the ultimate Pirate-Dwarf see Cal Henderson&#8217;s <a href="http://www.ludicorp.com/flickr/flickr_php_final.zip">normalized data is for sissies</a> (slide #27); it is pretty entertaining and compelling when scalability is of utmost concern.</p>
<p>I think Atwood’s argument ultimately came down to championing the idea of <a href="http://www.infoq.com/news/2008/02/continuous-production">continuous production</a>; that being able to respond to change or bugs found and having a quick no-brainer deployment process is the Zen-like state you&#8217;d like to get to.  But the idea of getting there is that it comes out of some notion of continuous integration, which is predicated on the idea of testing.  Henderson himself makes this very argument (I believe in this <a href="http://cdn4.libsyn.com/carsonsystems/Cal_Henderson.mp3?nvb=20090201003132&amp;nva=20090202004132&amp;t=0cab6219613db05c73c82">talk</a>, but perhaps in another). You need to trust your team enough to get changes and fixes out to address problems quickly, and be smart about what you spend time on. Testing is great and if you can find people that can test their code well and be productive, that’s awesome. But Henderson’s point is those people are extremely hard to find and retain.</p>
<p>All this goes back to the old question, is producing code an artistic or engineering practice?  (Interesting that Atwood supported his comment with a Frank Zappa quote about art.)  Obviously you need a talented and cohesive team to be able to make it work either way. I think the answer is it <strong>has to be</strong> a little bit of both.  You&#8217;ll need some measure of creativity, some degree of engineering aptitude, also strong analytical skills, and to succeed in a business environment, some acumen in decision making and managing (at the very least your own time).</p>
<p>The fact is, though, that we’ve come leaps and bounds in terms of being able to efficiently produce these tests, and balance their production and maintenance out with constraints, business expectations, budgets and deadlines.  And <a href="http://rubyconf.org/talks/24">it can fuel your creative side</a>, too.</p>
<p>As for professional responsibilities, I definitely wouldn’t recommend trying to write code without at least <em>some</em> tests if you expect anyone else to have to maintain your code. If you&#8217;ve got a close knit team and an overwhelmingly urgent need to deliver untested code (and are of the Pirate-Dwarf persuasion) then go for it.  But that being said, I’d say I agree with Martin and Jared Richardson that argue it’s a professional responsibility to <strong>not take on the technical debt of untested code</strong>. Of course, if tests mean you can get maintainability (and other -ilities) along the way then I think that you&#8217;re well on your way to a quality product.</p>
<p>One final way to look at this: would you say it&#8217;s better for your team to take the view that code is innocent until proven guilty, or guilty until proven innocent?  In the interest of skepticism, considering the teams that most developers &#8220;in the trenches&#8221; have to work on, and how far we&#8217;ve come in making testing easier and more efficient, I&#8217;d need a very strong team to make the assumption that all they code they write is innocent.  We all make mistakes.  I believe this is also brought up in <em>Clean Code</em>.</p>
<p>Ultimately the message Atwood and Spolsky send in their Stackoverflow podcast is that unit testing and efforts to support it are not a silver bullet.  Personal slights aside (&#8220;I don&#8217;t think these people write very much code.&#8221;) they have a point &#8212; and Martin agrees in his blog post.  But I think it took them a long time to make that point which is certainly no great revelation.  In the end, I did not feel they explained a whole lot about what the <em>right approach to quality</em> is, but communicated their distaste for an attempt (especially if accepted dogmatically) that aims to do so.  I can relate to this, and agree you must treat what you read, hear and are taught with a healthy dose of skepticism.  Martin&#8217;s ideas may seem dogmatic on the surface but I don&#8217;t think it&#8217;s fair to paint him in that light.  If you really read what he writes, I think he realizes that he is a voice many people are listening to, and works hard to say what he thinks is the right.  Martin defends a style of development that favors more rigor and discipline than many others feel is necessary, but in an industry that can be categorized by its lack of discipline, I can&#8217;t do much but respect him for that.</div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=2&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-digg">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=3&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Digg this!">Digg this!</a>
		</li>
		<li class="shr-diigo">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=24&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post this on Diigo">Post this on Diigo</a>
		</li>
		<li class="shr-dzone">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=102&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to DZone">Add this to DZone</a>
		</li>
		<li class="shr-gmail">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=52&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Email this via Gmail">Email this via Gmail</a>
		</li>
		<li class="shr-googlebookmarks">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=74&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Bookmarks">Add this to Google Bookmarks</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=257&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-googlereader">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=207&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Google Reader">Add this to Google Reader</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=88&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-misterwong">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=6&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Add this to Mister Wong">Add this to Mister Wong</a>
		</li>
		<li class="shr-mixx">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=4&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Mixx">Share this on Mixx</a>
		</li>
		<li class="shr-reddit">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=40&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Reddit">Share this on Reddit</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=38&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-technorati">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=&amp;service=10&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Share this on Technorati">Share this on Technorati</a>
		</li>
		<li class="shr-twitter">
			<a href="http://www.shareaholic.com/api/share/?title=In+response+to+Stackoverflow+%2338%2F%22Quality+Doesn%27t+Matter+That+Much%22+--+Jeff+and+Joel+&amp;link=http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/&amp;notes=Weighing%20in%20on%20the%20recent%20ideological%20classes%20between%20Stackoverflow%27s%20recent%20podcast%20with%20Jeff%20Atwood%20and%20Joel%20Spolsky%20in%20which%20they%20call%20out%20Robert%20%22UncleBob%22%20Martin%20on%20his%20views%20of%20Unit%20Testing%20and%20his%20SOLID%20principles.&amp;short_link=http://bit.ly/a3OkUe&amp;v=1&amp;apitype=1&amp;apikey=&amp;source=Shareaholic&amp;template=%24%7Btitle%7D+-+%24%7Bshort_link%7D&amp;service=7&amp;tags=&amp;ctype=" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul><div style="clear: both;"></div></div>

<h3  class="related_post_title">More Related Content</h3><ul class="related_post"><li>November 28, 2008 -- <a href="http://cwash.org/2008/11/28/must-havesreferences-for-modern-java-ee-developers/" title="Must Haves/References For Modern Java EE Developers">Must Haves/References For Modern Java EE Developers</a> (1)</li><li>February 17, 2009 -- <a href="http://cwash.org/2009/02/17/dont-unit-test-anymore-no-really/" title="Don&#8217;t Unit Test Anymore&#8230; No, Really!">Don&#8217;t Unit Test Anymore&#8230; No, Really!</a> (6)</li><li>January 13, 2009 -- <a href="http://cwash.org/2009/01/13/on-software-quality/" title="On Software Quality">On Software Quality</a> (8)</li><li>March 13, 2008 -- <a href="http://cwash.org/2008/03/13/continuous-integration-dissected/" title="Continuous Integration Dissected">Continuous Integration Dissected</a> (0)</li><li>March 11, 2008 -- <a href="http://cwash.org/2008/03/11/bugs-detectives-and-test-automation/" title="Bugs, Detectives, and Test Automation">Bugs, Detectives, and Test Automation</a> (2)</li><li>June 9, 2009 -- <a href="http://cwash.org/2009/06/09/mocking-with-jmockit/" title="Mocking with JMockit">Mocking with JMockit</a> (5)</li><li>August 2, 2008 -- <a href="http://cwash.org/2008/08/02/how-i-escape-the-reuse-trap/" title="How I Escape the &#8220;Reuse Trap&#8221;">How I Escape the &#8220;Reuse Trap&#8221;</a> (0)</li><li>July 8, 2010 -- <a href="http://cwash.org/2010/07/08/transactions-part-1/" title="Transactions, Part 1">Transactions, Part 1</a> (0)</li><li>January 7, 2010 -- <a href="http://cwash.org/2010/01/07/eliminate-branching-if-statements-to-produce-better-code/" title="Eliminate Branching (IF Statements) to Produce Better Code">Eliminate Branching (IF Statements) to Produce Better Code</a> (0)</li><li>July 24, 2009 -- <a href="http://cwash.org/2009/07/24/the-elements-of-reusable-code/" title="The Elements of Reusable Code">The Elements of Reusable Code</a> (0)</li></ul>]]></content:encoded>
			<wfw:commentRss>http://cwash.org/2009/01/31/in-response-to-stackoverflow-38quality-doesnt-matter-that-much-jeff-and-joel/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
<enclosure url="http://cdn4.libsyn.com/carsonsystems/Cal_Henderson.mp3?nvb=20090201003132&amp;amp" length="46243558" type="audio/mpeg" />
		</item>
	</channel>
</rss>

