<?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: TDD on Three Index Cards</title>
    <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>TDD on Three Index Cards</title>
      <description>&lt;p&gt;I had the opportunity to talk to a fellow who missed part of a class on &lt;span class="caps"&gt;TDD&lt;/span&gt;. I told him that I could give him a 15-minute overview, and give him all the essentials of &lt;span class="caps"&gt;TDD&lt;/span&gt; on three index cards.&lt;/p&gt;


	&lt;p&gt;Yes, I know that volumes have been written about &lt;span class="caps"&gt;TDD&lt;/span&gt; and &lt;span class="caps"&gt;BDD&lt;/span&gt;, and that it&amp;#8217;s a large topic with many many branches of application, but I didn&amp;#8217;t have time for that. I had time for three index cards.  I figure that an index card is a token, and it represents a conversation, and that one can always dig deeper later.&lt;/p&gt;


	&lt;p&gt;They looked more or less like this:&lt;/p&gt;


&lt;hr&gt;
Card 1: Uncle Bob&amp;#8217;s Three Laws (Object Mentor)
&lt;ol&gt;
&lt;li&gt;Write no production code except to pass a failing test.&lt;/li&gt;
&lt;li&gt;Write only enough of a test to demonstrate a failure.&lt;/li&gt;
&lt;li&gt;Write only enough production code to pass the test.&lt;/li&gt;
&lt;/ol&gt;

&lt;hr&gt;
Card 2: &lt;span class="caps"&gt;FIRST&lt;/span&gt; Principles (Brett and Tim at Object Mentor)
&lt;ul&gt;
&lt;li&gt;&lt;i&gt;F&lt;/i&gt;ast: Mind-numbingly fast, as in hundreds or thousands per second.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;I&lt;/i&gt;solated: The test isolates a fault clearly.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;R&lt;/i&gt;epeatable: I can run it repeatedly and it will pass or fail the same way each time.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;S&lt;/i&gt;elf-verifying: The test is unambiguously pass-fail.&lt;/li&gt;
&lt;li&gt;&lt;i&gt;T&lt;/i&gt;imely: Produced in lockstep with tiny code changes.&lt;/li&gt;
&lt;/ul&gt;

&lt;hr&gt;
Card 3: Flow (using the famous three-node circle diagram) &amp;#8211; origin unknown.
&lt;ul&gt;
&lt;li&gt;Red: test fails&lt;/li&gt;
&lt;li&gt;Green: test passes&lt;/li&gt;
&lt;li&gt;Refactor: clean code and tests&lt;/li&gt;
&lt;/ul&gt;

	&lt;p&gt;Sure there is plenty more, but I didn&amp;#8217;t know how I could provide significantly less. As is, I&amp;#8217;m pretty happy with the exercise. Now I am wondering if I couldn&amp;#8217;t produce most of the important information I wish to convey as a series of index cards. Would that be cool or what?&lt;/p&gt;</description>
      <pubDate>Thu, 06 Mar 2008 19:39:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:a7002e7d-5f30-481f-8792-20f01b2e731f</guid>
      <author>Tim Ottinger</author>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards</link>
      <category>Tim's Tepid Torrent</category>
      <category>testing</category>
      <category>TDD</category>
      <category>three</category>
      <category>index</category>
      <category>cards</category>
      <category>reminders</category>
      <category>simplified</category>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by tim</title>
      <description>Approximating in text stinks, but :
&lt;pre&gt;

    Red ----&amp;gt;  Green --&amp;gt; Refactor
      ^                    |
      |                    v
      ---------------------

&lt;/pre&gt;</description>
      <pubDate>Wed, 25 Jun 2008 14:53:57 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:ab3f8378-f884-4ff8-9043-333833f9eb3b</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1856</link>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by Mike</title>
      <description>&lt;p&gt;Just wondering what the &amp;#8220;famous three-node circle diagram&amp;#8221; is referring to as a google search doesn&amp;#8217;t return any results but this article&amp;#8230;&lt;/p&gt;</description>
      <pubDate>Wed, 25 Jun 2008 14:05:46 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:527b5c99-d0a5-46d5-b1d0-295bc5a4cd87</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1855</link>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by Abdullah Cetin CAVDAR</title>
      <description>&lt;p&gt;Hi Tim,&lt;/p&gt;


	&lt;p&gt;I liked them and I have one addition from &amp;#8220;Pragmatic Programmers&amp;#8221; that supports yours.&lt;/p&gt;


	&lt;p&gt;Good tests are A TRIP:&lt;/p&gt;


	&lt;p&gt;Automatic
Thorough
Repeatable
Independent
Professional&lt;/p&gt;


	&lt;p&gt;Thanks a lot.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Mar 2008 18:00:47 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:3e7b0344-9eb2-4ed4-8817-7052a1c97a44</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1666</link>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by Tim</title>
      <description>&lt;p&gt;Well, Derick, taken that way it would definitely be wrong.&lt;/p&gt;


	&lt;p&gt;But I teach more than one topic, so I need a few three-card decks - one for each topic.&lt;/p&gt;</description>
      <pubDate>Tue, 11 Mar 2008 20:58:48 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:3452e642-a8c9-417c-bb66-6ccc582caed9</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1652</link>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by Derick Bailey</title>
      <description>&lt;p&gt;&amp;#8220;Now I am wondering if I couldn&#226;&#8364;&#8482;t produce most of the important information I wish to convey as a series of index cards&amp;#8221;&lt;/p&gt;


	&lt;p&gt;Doesn&amp;#8217;t this defeat the purpose? Index cards are meant to be the smallest possible representation &amp;#8211; a way to remind yourself of the deep knowledge and understanding present in the simple statements.&lt;/p&gt;


	&lt;p&gt;If you continue adding to the index cards &amp;#8211; adding more index cards &amp;#8211; you&amp;#8217;re not providing any benefit, you&amp;#8217;re just making it difficult to find the information by having a huge stack of cards that you need to sift through.&lt;/p&gt;


	&lt;p&gt;You could probably add 2 or 3 more cards to this list, at the most, before it reaches the point of diminishing returns. Keep the list small &amp;#8211; keep the goals high level. If someone needs to know how to achieve the goal of card x, don&amp;#8217;t give them more cards, sit down with them and teach them the details by coding with them.&lt;/p&gt;


	&lt;p&gt;...&lt;/p&gt;


	&lt;p&gt;that&amp;#8217;s my devil&amp;#8217;s advocate hat, for the morning. :)&lt;/p&gt;</description>
      <pubDate>Tue, 11 Mar 2008 09:30:59 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:b0f11fc6-6ba1-4511-a300-423e687d13b1</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1651</link>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by JJ</title>
      <description>&lt;p&gt;How well you summarize your thoughts! I picked up from those few words on your index cards!&lt;/p&gt;</description>
      <pubDate>Fri, 07 Mar 2008 18:41:13 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:2bc51e01-2353-4a1e-a449-259eab441aaf</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1646</link>
    </item>
    <item>
      <title>"TDD on Three Index Cards" by Darrell Mozingo</title>
      <description>&lt;p&gt;For more index card goodness, check out &lt;a href="http://indexed.blogspot.com" rel="nofollow"&gt;Indexed&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 07 Mar 2008 09:34:32 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:a2bf06a3-fd1e-4e46-9dba-72f7282f56fa</guid>
      <link>http://blog.objectmentor.com/articles/2008/03/06/tdd-on-three-index-cards#comment-1645</link>
    </item>
  </channel>
</rss>
