<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: Echoes from the Stone Age</title>
    <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Echoes from the Stone Age</title>
      <description>&lt;p&gt;The echoes from Joel Spolsky&amp;#8217;s &lt;a href="http://www.joelonsoftware.com/items/2009/09/23.html"&gt;Duct Tape blog&lt;/a&gt; continue to bounce off the blogosphere and twitterverse.  &lt;a href="http://www.tbray.org/ongoing/When/200x/2009/09/25/On-Duct-Tape"&gt;Tim Bray&lt;/a&gt; and &lt;a href="http://gigamonkeys.com/blog/2009/10/05/coders-unit-testing.html"&gt;Peter Seibel&lt;/a&gt; have both written responses to Joel, me, and each other.&lt;/p&gt;


	&lt;p&gt;Here are some stray thoughts&amp;#8230;&lt;/p&gt;


	&lt;h2&gt;&lt;span class="caps"&gt;TDD&lt;/span&gt;&lt;/h2&gt;


	&lt;p&gt;Anyone who continues to think that &lt;span class="caps"&gt;TDD&lt;/span&gt; slows you down is living in the stone age.  Sorry, that&amp;#8217;s just the truth.  &lt;span class="caps"&gt;TDD&lt;/span&gt; does not slow you down, it speeds you up.&lt;/p&gt;


	&lt;p&gt;Look, &lt;span class="caps"&gt;TDD&lt;/span&gt; is not my religion, it is one of my &lt;em&gt;disciplines&lt;/em&gt;.  It&amp;#8217;s like &lt;em&gt;dual entry bookkeeping&lt;/em&gt; for accountants, or &lt;em&gt;sterile procedure&lt;/em&gt; for surgeons.  Professionals adopt such disciplines because they understand the theory behind them, and have directly experienced the benefits of using them.&lt;/p&gt;


	&lt;p&gt;I have experienced the tremendous benefit that &lt;span class="caps"&gt;TDD&lt;/span&gt; has had in my work, and I have observed it in others.  I have seen and experienced the way that &lt;span class="caps"&gt;TDD&lt;/span&gt; helps programmers conceive their designs.  I have seen and experienced the way it documents their decisions.  I have seen and experienced the decouplings imposed by the tests, and I have seen and experienced the fearlessness with which TDDers can change and clean their code.&lt;/p&gt;


	&lt;p&gt;To be fair, I don&amp;#8217;t think &lt;span class="caps"&gt;TDD&lt;/span&gt; is &lt;em&gt;always&lt;/em&gt; appropriate.  There are situations when I break the discipline and write code before tests.  I&amp;#8217;ll write about these situations in another blog.  However, these situations are few and far between.  In general, for me and many others, &lt;span class="caps"&gt;TDD&lt;/span&gt; is a way to go fast, well, and sure.&lt;/p&gt;


	&lt;p&gt;The upshot of all this is simple.  &lt;span class="caps"&gt;TDD&lt;/span&gt; is a professional discipline.  &lt;span class="caps"&gt;TDD&lt;/span&gt; works.  &lt;span class="caps"&gt;TDD&lt;/span&gt; makes you faster.  &lt;span class="caps"&gt;TDD&lt;/span&gt; is not going away.  And anyone who has not &lt;em&gt;really&lt;/em&gt; tried it, and yet claims that it would slow them down, is simply being willfully ignorant.  I don&amp;#8217;t care if your name is Don Knuth, Jamie Zawinski, Peter Seibel, or Peter Pan.  Give it a &lt;em&gt;real&lt;/em&gt; try, and &lt;em&gt;then&lt;/em&gt; you have the right to comment.&lt;/p&gt;


	&lt;p&gt;Let me put this another way.  And now I&amp;#8217;m talking directly to those who make the claim that &lt;span class="caps"&gt;TDD&lt;/span&gt; would slow them down.  Are you really such a good programmer that you don&amp;#8217;t need to thoroughly check your work?  Can you conceive of a better way to check your work than to express your intent in terms of an executable test?  And can you think of a better way to ensure that you can write that test other than to write it first?&lt;/p&gt;


	&lt;p&gt;If you can, then I want to hear all about it.  but I don&amp;#8217;t want to hear that you write a few unit tests after the fact.  I don&amp;#8217;t want to hear that you manually check your code.  I don&amp;#8217;t want to hear that you &lt;em&gt;do design&lt;/em&gt; and therefore don&amp;#8217;t need to write tests.  Those are all stone-age concepts.  I know.  I&amp;#8217;ve been there.&lt;/p&gt;


	&lt;p&gt;So there. &amp;lt;grin&amp;gt;&lt;/p&gt;


	&lt;h2&gt;The Design Pattern Religion&lt;/h2&gt;


	&lt;p&gt;Tim Bray said:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;My experience suggests that there are few surer ways to doom a big software project than via the Design Patterns religion.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;He&amp;#8217;s right of course.  The Design Patterns &lt;em&gt;religion&lt;/em&gt; is a foul bird that ravages teams and cuts down young projects in their prime.  But let&amp;#8217;s be clear about what that religion is.  The Design Patterns religion is the ardent belief that the use of design patterns is &lt;em&gt;good&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s a clue.  Design Patterns aren&amp;#8217;t good.  They also aren&amp;#8217;t bad.  They just are.  Given a particular software design situation, there may be a pattern that fits and is beneficial.  There may also be patterns that would be detrimental.  It&amp;#8217;s quite possible that none of the currently documented patterns are appropriate and that you should close the book and just solve the problem.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s another clue.  You don&amp;#8217;t &lt;em&gt;use&lt;/em&gt; patterns.  You don&amp;#8217;t &lt;em&gt;apply&lt;/em&gt; patterns.  Patterns just are.  If a particular pattern is appropriate to solve a given problem, then it will be &lt;em&gt;obvious&lt;/em&gt;.  Indeed it is often &lt;em&gt;so&lt;/em&gt; obvious that you don&amp;#8217;t realize that the pattern is in place until you are done.  You look &lt;em&gt;back&lt;/em&gt; at your code and realize: &amp;#8220;Oh, that&amp;#8217;s a Decorator!&amp;#8221;.&lt;/p&gt;


	&lt;p&gt;So am I saying that Design Patterns are useless?&lt;/p&gt;


	&lt;p&gt;NO!  I want you to read the patterns books.  I want you to know those patterns inside and out.  If I point at you and say &amp;#8220;Visitor&amp;#8221; I want you at the board drawing all the different variants of the pattern without hesitation.  I want you to get all the names and roles right.  I want you to &lt;em&gt;know&lt;/em&gt; patterns.&lt;/p&gt;


	&lt;p&gt;But I don&amp;#8217;t want you to &lt;em&gt;use&lt;/em&gt; patterns.  I don&amp;#8217;t want you to &lt;em&gt;believe&lt;/em&gt; in patterns.  I don&amp;#8217;t want you to make patterns into a religion.  Rather I want you to be able to recognize them when they appear, and to &lt;em&gt;regularize&lt;/em&gt; them in your code so that others can recognize them too.&lt;/p&gt;


	&lt;p&gt;Design Patterns have a &lt;em&gt;huge&lt;/em&gt; benefit.  They have &lt;em&gt;names&lt;/em&gt;.  If you are reading code, and you see the word &amp;#8220;Composite&amp;#8221;, and if the author took care to regularize the code to the accepted names and roles of the &amp;#8220;Composite&amp;#8221; pattern, then you will &lt;em&gt;know&lt;/em&gt; what that part of the code is doing instantly.  And &lt;em&gt;that&lt;/em&gt; is powerful!&lt;/p&gt;


	&lt;h2&gt;Minimizing Concurrency.&lt;/h2&gt;


	&lt;p&gt;In my first &lt;a href="http://blog.objectmentor.com/articles/2009/09/24/the-duct-tape-programmer"&gt;Duct Tape blog&lt;/a&gt; I made the statement:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;I found myself annoyed at Joel&amp;rsquo;s notion that most programmers aren&amp;rsquo;t smart enough to use templates, design patterns, multi-threading, &lt;span class="caps"&gt;COM&lt;/span&gt;, etc. I don&amp;rsquo;t think that&amp;rsquo;s the case. I think that any programmer that&amp;rsquo;s not smart enough to use tools like that is probably not smart enough to be a programmer period.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Tim responds with:&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;...multi-threading is part of the problem, not part of the solution; that essentially no application programmer understands threads well enough to avoid deadlocks and races and horrible non-repeatable bugs. And that &lt;span class="caps"&gt;COM&lt;/span&gt; was one of the most colossal piles of crap my profession ever foisted on itself.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Is concurrency really part of the problem?  Yes!  Concurrency is a &lt;em&gt;really big&lt;/em&gt; part of the problem.  Indeed, the first rule of concurrency is: &lt;em&gt;&lt;span class="caps"&gt;DON&lt;/span&gt;&amp;#8217;T&lt;/em&gt;.  The second rule is: &lt;em&gt;&lt;span class="caps"&gt;REALLY&lt;/span&gt;, DON&amp;#8217;T&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;The problem is that some times you have no choice.  And in those situations, where you absolutely must use concurrency, &lt;em&gt;you should know it inside and out!&lt;/em&gt;&lt;/p&gt;


	&lt;p&gt;I completely and utterly reject the notion that &lt;em&gt;ignorance&lt;/em&gt; is the best defense.  I reject that &lt;em&gt;lack of skill&lt;/em&gt; can &lt;em&gt;ever&lt;/em&gt; be an advantage.  So I want you to &lt;em&gt;know&lt;/em&gt; concurrency.  I want to shout &amp;#8220;Dining Philosophers&amp;#8221; and have you run to the board without hesitation and show me all the different solutions.  If I holler &amp;#8220;Deadlock&amp;#8221;, I want you to quickly identify the causes and solutions.&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s a clue.  If you want to avoid using something, &lt;em&gt;know&lt;/em&gt; that something &lt;em&gt;cold&lt;/em&gt;.&lt;/p&gt;


	&lt;h2&gt;Sudoku&lt;/h2&gt;


	&lt;p&gt;At the end of his blog, Peter jumps on the pile of bodies already crushing Ron Jeffries regarding the Sudoku problem from July of 2006.&lt;/p&gt;


	&lt;p&gt;I find the pile-up disturbing.  Ron had the courage to fail in public.  Indeed he announced up front that he might &amp;#8220;crash and burn&amp;#8221;.  And yet he got lambasted for it by people who hid behind someone else&amp;#8217;s work.  The responses to Ron&amp;#8217;s tutorial blogs were completely unfair because the authors of those blogs had everything worked out for them by Dr. Peter Norvig before they published their screeds.  They were comparing apples to oranges because their responses were about the &lt;em&gt;solution&lt;/em&gt; whereas Ron&amp;#8217;s blogs were about the &lt;em&gt;process&lt;/em&gt;.&lt;/p&gt;


	&lt;p&gt;Which one of us has not gone down a rat-hole when hunting for a solution to a complex problem?  Let &lt;em&gt;that&lt;/em&gt; person write the first blog.  Everyone else ought to be a bit more humble.&lt;/p&gt;


	&lt;p&gt;Do the people on the pile think that Ron is unable to solve the Sudoku problem?  (Some have said as much.)  Then they don&amp;#8217;t know Ron very well.  Ron could code them all under the table with one hand tied behind his back.&lt;/p&gt;


	&lt;p&gt;Personal issues aside, I find the discussion fascinating in it&amp;#8217;s own right.  Ron had attempted to solve the Sudoku problem by gaining insight into that problem through the process of coding intermediate solutions.  This is a common enough &lt;span class="caps"&gt;TDD&lt;/span&gt; approach.  Indeed, the &lt;a href="http://butunclebob.com/ArticleS.UncleBob.TheBowlingGameKata"&gt;Bowling Game&lt;/a&gt; and the &lt;a href="http://butunclebob.com/ArticleS.UncleBob.ThePrimeFactorsKata"&gt;Prime Factors Kata&lt;/a&gt; are both examples where this approach can work reasonably well.&lt;/p&gt;


	&lt;p&gt;This approach follows the advice of no less than Grady Booch who (quoting Heinlein) said:  &amp;#8220;&lt;em&gt;when faced with a problem you do not understand, do any part of it you do understand, then look at it again.&lt;/em&gt;&amp;#8220;&lt;/p&gt;


	&lt;p&gt;Ron was attempting to use &lt;span class="caps"&gt;TDD&lt;/span&gt; to &lt;em&gt;probe&lt;/em&gt; into the problem to see if he could gain any insight.  This technique often bears fruit.  Sometimes it does not.&lt;/p&gt;


	&lt;p&gt;Here is a classic example.  Imagine you were going to write a sort algorithm test first:&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;Test 1: Sort an empty array.
Solution: Return the input array.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Test 2: Sort an array with one element.
Solution: Return the input array.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Test 3: Sort an array with two elements.
Solution: Compare the two elements and swap if out of order.  Return the result.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Test 4: Sort an array with three elements.
Solution: Compare the first two and swap if out of order.  Compare the second two and swap if out of order.  Compare the first two again and swap if out of order.  Return the result.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;ul&gt;
	&lt;li&gt;Test 5: Sort an array with four elements.
Solution: Put the compare and swap operations into a nested loop.  Return the result.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;The end result is a bubble sort.  The algorithm virtually self assembles.  If you had never heard of a bubble sort before, this simple set of tests would have driven you to implement it naturally.&lt;/p&gt;


	&lt;p&gt;Problems like Bowling, Prime Factors, and Bubble Sort hold out the interesting promise that &lt;span class="caps"&gt;TDD&lt;/span&gt; may be a way to &lt;em&gt;derive&lt;/em&gt; algorithmms from first principles!&lt;/p&gt;


	&lt;p&gt;On the other hand, what set of tests would drive you to implement a QuickSort?  There are none that I know of.  QuickSort and Sudoku may require a serious amount of introspection and concentrated thought before the solution is apparent.  They may belong to a class of algorithms that do not self-assemble like Bowling, Prime Factors, and Bubble Sort.&lt;/p&gt;


	&lt;p&gt;This &lt;a href="http://www.infoq.com/news/2007/05/tdd-sudoku"&gt;blog&lt;/a&gt; by Kurt Christensen provides all the links to the various Sudoku articles, and sums it up this way.&lt;/p&gt;


	&lt;blockquote&gt;
		&lt;p&gt;&lt;span class="caps"&gt;TDD&lt;/span&gt; may not be the best tool for inventing new algorithms, it may very well be the best tool for applying those algorithms to the problem at hand.&lt;/p&gt;
	&lt;/blockquote&gt;


	&lt;p&gt;Actually I think &lt;span class="caps"&gt;TDD&lt;/span&gt; is a good way to find out if an algorithm will self-assemble or not.  It usually doesn&amp;#8217;t take a lot of time to figure out which it&amp;#8217;s going to be.&lt;/p&gt;</description>
      <pubDate>Tue, 06 Oct 2009 11:07:29 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:1624b718-36a6-4521-aa4e-14d5b9623dc0</guid>
      <author>Uncle Bob</author>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age</link>
      <category>Uncle Bob's Blatherings</category>
      <category>Software Craftsmanship</category>
      <category>Clean Code</category>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by guided meditation</title>
      <description>&lt;p&gt;well i think this echoes from the stone age is already part of our lives.&lt;/p&gt;</description>
      <pubDate>Mon, 06 Feb 2012 22:43:46 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6afd9cd9-7668-4bd8-a00f-f58230e717e1</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-202013</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Pflugerville dentists</title>
      <description>&lt;p&gt;excellent information on this website and good post. Thanks for sharing the info!&lt;/p&gt;</description>
      <pubDate>Sun, 05 Feb 2012 14:13:12 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:2ded78ab-c5ab-40e8-9a86-f6e452ebe2bd</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-201840</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Mother's Day Flowers</title>
      <description>&lt;p&gt;Sounds like my experiences from working on websites, deserves a share&lt;/p&gt;</description>
      <pubDate>Sat, 04 Feb 2012 16:23:47 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d7e2f002-59ce-48af-b829-6332646634bd</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-201751</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by indianapolis super bowl parking</title>
      <description>&lt;p&gt;when i was still studying, my favorite subject then that time was science and english but the &amp;#8220;History&amp;#8221; teacher came it, i feel dizzy and would want to whole period to end too soon.&lt;/p&gt;</description>
      <pubDate>Fri, 03 Feb 2012 02:37:22 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:b3410036-330e-4d77-9ff6-8c07cfd86357</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-201528</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by  christian louboutin</title>
      <description>&lt;p&gt;It is a good post , I like it and please keep writing .&lt;/p&gt;</description>
      <pubDate>Mon, 30 Jan 2012 23:27:47 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:25064739-8d09-4961-96aa-23c796f2eab4</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-200303</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by deals</title>
      <description>&lt;p&gt;great post and a great blog!! thank you!!&lt;/p&gt;</description>
      <pubDate>Sun, 22 Jan 2012 05:50:39 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:cbdd88bb-7b6d-436a-a639-c7e157d94939</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-198801</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Microsoft Office 2010</title>
      <description>&lt;p&gt;This article is GREAT it can be EXCELLENT JOB and what a great tool!&lt;/p&gt;</description>
      <pubDate>Fri, 13 Jan 2012 20:03:50 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4dbdc4b4-38bd-4b56-9325-24eb1c20141a</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-197741</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by iphone contacts backup</title>
      <description>&lt;p&gt;Worry about all contacts in your iPhone will be lost in case of accidental breakdown of the phone? Or wanna transfer iphone contacts information from one phone to another? Now, you get 4Media iPhone Contacts Transfer, a convenient iPhone contacts management tool to help you backup iphone contacts, import/export, restore and manage contacts information in your iPhone to wipe out all your worries and fill your needs on important contacts information security.&lt;/p&gt;</description>
      <pubDate>Sat, 07 Jan 2012 20:13:29 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:8d9be6fe-45ed-4f50-8f0e-094a59053eb4</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-195978</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by iPad to Mac Transfer</title>
      <description>&lt;p&gt;TDD is a means to an end. Sometimes it&#8217;s highly appropriate, sometimes it just creates the illusion of progress while obscuring ignorance of how to actually solve the problem. It would be more useful to focus on when TDD is the right tool (and when it&#8217;s counterproductive), rather than asserting that it&#8217;s always the best technique.&lt;/p&gt;</description>
      <pubDate>Wed, 04 Jan 2012 06:29:49 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:167ada84-7a48-4f19-a7d7-5956ae270e9a</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-194725</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by iPhone to Mac Transfer</title>
      <description>&lt;p&gt;Great easy way to do a backup of iPhone files to Mac with this program and you can easy recover them from computer.&lt;/p&gt;</description>
      <pubDate>Wed, 04 Jan 2012 06:24:16 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6a646a3d-2514-47ee-affd-2c219305e967</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-194721</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Forex Market Trading</title>
      <description>&lt;p&gt;Its been very informative posting. I have got some great tips from your blog. Thanks for sharing such valuable stuff with us.&lt;/p&gt;</description>
      <pubDate>Tue, 27 Dec 2011 12:35:27 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:da1879ea-4364-4c9d-b7cf-c8451a11b422</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-192626</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by north face khumbu</title>
      <description>&lt;p&gt;This article is impressive,I hope that you will continue doing nice article like this.&lt;/p&gt;</description>
      <pubDate>Sat, 24 Dec 2011 07:18:24 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:56bd9df5-353e-45c1-b4f4-56be531c3ce7</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-191267</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by wow enchanting guide </title>
      <description>&lt;p&gt;Great post. Bookmarked this site and emailed it to a few friends, your post was that great, keep it up&amp;#8230;..............&lt;/p&gt;</description>
      <pubDate>Sat, 24 Dec 2011 00:55:07 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:93814603-6fbb-4543-9726-f4ff3f88b8b6</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-191123</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Dan Cross</title>
      <description>&lt;p&gt;Uncle Bob, I have read Knuth, and I have read you, and you, Sir, are no Donald Knuth.&lt;/p&gt;


	&lt;p&gt;Okay, jokes aside&amp;#8230;.&lt;/p&gt;


	&lt;p&gt;it strikes me that there are a lot of assertions in your article that are not backed up by concrete data.&lt;/p&gt;


	&lt;p&gt;For instance, you say that unit tests, and in particular test-driven development, make one go faster.  Okay; but where is the data to to back that up?  A recent paper out of Microsoft Research showed that TDD did substantially reduce defect rates, but at the cost of slowing down development by 15-35%.  (See, e.g., &lt;a href="http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx" rel="nofollow"&gt;http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx&lt;/a&gt;)  Does the defect rate reduction and enhanced ability to intuit the effects of changes on the overall system facilitate integration?  Change?  Enhance ongoing maintenance?  Perhaps, but that&amp;#8217;s not well articulated by most TDD proponents.&lt;/p&gt;


	&lt;p&gt;Another misconception I see in some of the comments is the assertion that tests prove correctness.  I don&amp;#8217;t understand why acknowledging that this is simply not true is so hard for testing proponents and TDD-afficienados.  Testing can certainly help one gain confidence in the correctness of the code, but it just cannot prove it (it can, however, prove that code is &lt;strong&gt;incorrect&lt;/strong&gt;).  Testing can be, and &lt;strong&gt;is&lt;/strong&gt;, a very effective method for finding (and thus aiding in the repair of) defects, and then adding checks to ensure those defects (or similar classes of defects) do not recur in one&amp;#8217;s code.  However, it is no substitute for reasoning about one&amp;#8217;s code and about the problem domain at hand.  And the criticism that it encourages a micro, rather than macro-level view of the code is often valid; e.g., Jeffries&amp;#8217;s failure because he gets so tied up on issues of representation.&lt;/p&gt;


	&lt;p&gt;A related point I&amp;#8217;ve seen in many of your books, and from many members of the &amp;#8220;agile&amp;#8221; and &amp;#8220;craftsmanship&amp;#8221; communities, is this false dichotomy that seems to say that if one does not follow  that one must then be doing the opposite.  E.g., the satire in Appendix C of &amp;#8220;Agile Software Development: Principles, Patterns, and Practices&amp;#8221; which contrasts the &amp;#8220;traditional&amp;#8221; waterfall development model and CMM with XP.  &amp;#8220;We can only do design because we are in the design phase.&amp;#8221;  Now, I&amp;#8217;m sure that was exaggerated for satirical effect, but it just comes across as sour-grapes.  A more concrete example is placing what seems to be too much faith in, e.g., TDD.  One doesn&amp;#8217;t have to accept all of the TDD doctrine in order to appreciate the considerable benefits of automated testing.&lt;/p&gt;


	&lt;p&gt;I think that part of what Seibel said, that is valid, is that these claims would be taken more seriously if they weren&amp;#8217;t quite some bombastic.  TDD demonstrably does not always make one go faster; programmers who think that TDD slows them down are not all living in the stone age (e.g., Knuth doesn&amp;#8217;t seem to see much value in it).  And it&amp;#8217;s somewhat self-serving to assert that it should be part of the canon of the profession in the same way that hygiene is for the medical profession without at least acknowledging that there are other methods for doing things.  Just because one doesn&amp;#8217;t use it as a primary method doesn&amp;#8217;t mean that one can&amp;#8217;t produce high-quality, well-tested software.&lt;/p&gt;


	&lt;p&gt;To summarize by basic complaint for the TL;DR crowd: there needs to be more empirical data to back up the claims of the agile community, and there needs to be more balance.&lt;/p&gt;</description>
      <pubDate>Mon, 12 Dec 2011 20:45:44 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a5184aff-f846-4680-88bd-fd861d35197f</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-185833</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by assurance auto pas cher</title>
      <description>&lt;p&gt;O&#249; acheter assurances autos bon march&#233; s&amp;#8217;il vous pla&#238;t?&lt;/p&gt;</description>
      <pubDate>Thu, 01 Dec 2011 23:45:30 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4fe1d61b-ff4c-4542-8915-a6dea9b74fb6</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-180888</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Cheap Beats By Dre</title>
      <description>&lt;p&gt;Very good, I like your article, continue to work hard, I will often come to pay attention!&lt;/p&gt;</description>
      <pubDate>Thu, 17 Nov 2011 21:07:29 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:bff53081-002a-448f-b4b7-b3faf1cb64ae</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-174965</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Stereotactic Surgery in Tennessee</title>
      <description>&lt;p&gt;This is a really good read for me. Must agree that you are one of the coolest blogger I ever saw. Thanks for posting this useful information. This was just what I was on looking for. I&#8217;ll come back to this blog for sure! I bookmarked this blog a while ago because of the useful content and I am never being disappointed. Keep up the good work.&lt;/p&gt;


	&lt;p&gt;&lt;a href="http://www.howellallen.com/clinic/surgeons/spooner_CV.pdf" rel="nofollow"&gt; Stereotactic Surgery in Tennessee&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 17 Nov 2011 05:34:36 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d9e2af63-6f0a-441f-a60a-8115b29416f2</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-174783</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by reverse phone</title>
      <description>&lt;p&gt;I read a lot of posts, you know, on just this very topic; and many just leave me feeling as though so much is missing.  Not so with this post!  What a satisfying read this was!  So much so that I read it twice!&lt;/p&gt;</description>
      <pubDate>Wed, 16 Nov 2011 17:44:38 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:8cecf479-ff36-4415-9ffe-6f6ca8f0334c</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-174331</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Photo</title>
      <description>&lt;p&gt;I really believe that TDD brings lots of quality to your product&lt;/p&gt;</description>
      <pubDate>Wed, 16 Nov 2011 07:06:03 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:9daf37f9-3718-47aa-b1f9-b3a1319993fe</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-174261</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Cheap Beats By Dre</title>
      <description>&lt;p&gt;bus today, make them &lt;a href="http://www.cheap-monsterbeatsbydrdre.co.uk" rel="nofollow"&gt;Cheap Beats By Dre&lt;/a&gt;miserable. One said: &amp;#8220;I ??am really unlucky it! I was packed &lt;a href="http://www.cheap-monsterbeatsbydrdre.co.uk/beats-by-drdre-studio-c-89.html" rel="nofollow"&gt;Beats By Dre Studio&lt;/a&gt;in the car to flow production.&amp;#8221; One said: &amp;#8220;I ??called &lt;a href="http://www.cheap-monsterbeatsbydrdre.co.uk/beats-by-drdre-solo-c-91.html" rel="nofollow"&gt;Beats By Dre Solo&lt;/a&gt;it bad luck! In I was packed car are pregnant.&lt;a href="http://www.cheap-monsterbeatsbydrdre.co.uk/beats-by-drdre-pro-c-90.html" rel="nofollow"&gt;Beats By Dre Pro&lt;/a&gt;
Classic joke: I TVU
A university student&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;beats by dr dre&lt;/a&gt; caught by the enemy, the enemy tied him at the poles,&lt;a href="http://www.drdrebeatsheadphones-australia.com/justbeats-solo-purple-onear-headphones-with-controltalk-p-234.html" rel="nofollow"&gt;just beats solo headphones purple&lt;/a&gt; and then asked him: say, where are you? You do not say it electrocuted! S&lt;a href="http://www.drdrebeatsheadphones-australia.com/cheap-drdre-beats-studio-limited-edition-headphones-blackyellow-p-185.html" rel="nofollow"&gt;cheap dr.dre beats studio headphones balck/yellow&lt;/a&gt;tudents back to the enemy a word, the result was electrocuted, he said: I am TVU.&lt;a href="http://www.drdrebeatsheadphones-australia.com/cheap-beats-by-drdre-pro-performance-professional-headphones-white-p-192.html" rel="nofollow"&gt;Hot sale beats by dr dre pro  headphones&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 15 Nov 2011 01:38:09 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:fc802bae-690b-4646-90e9-e9ed6c9780ea</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-172911</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Austin Computer Repair</title>
      <description>&lt;p&gt;Well I didn&amp;#8217;t knew this much about all these! Great informations, I guess I would follow all your posts :)&lt;/p&gt;</description>
      <pubDate>Mon, 07 Nov 2011 23:45:53 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4f406917-930b-48e2-8c29-16ef6a1ee930</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-169634</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Backlinks</title>
      <description>&lt;p&gt;Wow this looks interesting information, I am going to give it a try. Thanks&lt;/p&gt;</description>
      <pubDate>Thu, 20 Oct 2011 05:00:15 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:37691fa4-666e-4953-9d09-cd52ae58888a</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-160133</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Kayako</title>
      <description>&lt;p&gt;I can&amp;#8217;t say that I&amp;#8217;m using TDD all the time , but still it works for many occasions.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Oct 2011 10:01:50 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c285a8ea-3462-4416-8ad5-ec791d08996d</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-159782</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by Ashley Bowling</title>
      <description>&lt;p&gt;thanks great info!&lt;/p&gt;</description>
      <pubDate>Sat, 15 Oct 2011 15:21:20 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c490b578-76ab-463b-9063-02817719144b</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-157181</link>
    </item>
    <item>
      <title>"Echoes from the Stone Age" by cheap baseball hats</title>
      <description>&lt;p&gt;&lt;a href="http://www.capshoponline.com/" rel="nofollow"&gt;http://www.capshoponline.com/&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 11 Oct 2011 22:56:26 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:4832d4fb-c7ff-49e9-b7ff-64359f940f0d</guid>
      <link>http://blog.objectmentor.com/articles/2009/10/06/echoes-from-the-stone-age#comment-154875</link>
    </item>
  </channel>
</rss>

