<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments on: My Guide To Effective Test Driven Development</title>
	<atom:link href="http://davybrion.com/blog/2008/07/my-guide-to-effective-test-driven-development/feed/" rel="self" type="application/rss+xml" />
	<link>http://davybrion.com/blog/2008/07/my-guide-to-effective-test-driven-development/</link>
	<description>Trying to walk that thin line between intelligence and ignorance</description>
	<lastBuildDate>Thu, 11 Mar 2010 23:14:12 +0100</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Davy Brion</title>
		<link>http://davybrion.com/blog/2008/07/my-guide-to-effective-test-driven-development/comment-page-1/#comment-685</link>
		<dc:creator>Davy Brion</dc:creator>
		<pubDate>Tue, 15 Jul 2008 05:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=172#comment-685</guid>
		<description>That&#039;s a great question... good OO design skills make effective TDD easier to achieve, but i don&#039;t think you need to become a great OO designer before you can do effective TDD.

When you start out with OO, it&#039;s not that easy to recognize some pitfalls... people start using GOF patterns even when they aren&#039;t necessary, they start creating complex inheritance hierarchies, etc... It&#039;s kinda similar to the path you go through when you start out with TDD... a lot of people start out enthusiastically there as well, until they get bitten by the fact that some of their tests are testing too much, or they are testing at a level that is too high. 

In both cases, you only make a &#039;leap&#039; up the skills-ladder once you start recognizing the fact that simplicity is the really the key to doing anything effectively. Trying to keep everything simple, and isolating the hard parts are two principles that (i think) kinda form both your OO skills and your TDD proficiency. When a developer is exposed to easy but effective tests, that developer will pick up some good OO design tips from that. And the other way around works as well: whenever you learn a new good OO design tip, you might use it to make some of your tests simpler... so to make a long story short, i think they somewhat go hand in hand.</description>
		<content:encoded><![CDATA[<p>That&#8217;s a great question&#8230; good OO design skills make effective TDD easier to achieve, but i don&#8217;t think you need to become a great OO designer before you can do effective TDD.</p>
<p>When you start out with OO, it&#8217;s not that easy to recognize some pitfalls&#8230; people start using GOF patterns even when they aren&#8217;t necessary, they start creating complex inheritance hierarchies, etc&#8230; It&#8217;s kinda similar to the path you go through when you start out with TDD&#8230; a lot of people start out enthusiastically there as well, until they get bitten by the fact that some of their tests are testing too much, or they are testing at a level that is too high. </p>
<p>In both cases, you only make a &#8216;leap&#8217; up the skills-ladder once you start recognizing the fact that simplicity is the really the key to doing anything effectively. Trying to keep everything simple, and isolating the hard parts are two principles that (i think) kinda form both your OO skills and your TDD proficiency. When a developer is exposed to easy but effective tests, that developer will pick up some good OO design tips from that. And the other way around works as well: whenever you learn a new good OO design tip, you might use it to make some of your tests simpler&#8230; so to make a long story short, i think they somewhat go hand in hand.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David</title>
		<link>http://davybrion.com/blog/2008/07/my-guide-to-effective-test-driven-development/comment-page-1/#comment-680</link>
		<dc:creator>David</dc:creator>
		<pubDate>Tue, 15 Jul 2008 00:36:51 +0000</pubDate>
		<guid isPermaLink="false">http://davybrion.com/blog/?p=172#comment-680</guid>
		<description>Hi Davy,
Great post, thanks! 

I think I&#039;m at early stage 3. My main problem with TDD is in resisting upfront (subconscious) design, which tends to result in over-specified tests and a convoluted design (longish strings of classes). 

I tend to fall into the trap of writing tests assuming I&#039;ll need something, rather than waiting until the test &quot;naturally&quot; demands it (or writing the test as a self-fulfilling prophecy to get what I think I&#039;ll need). I guess this is just a bad habit I have to break. Also wouldn&#039;t hurt if my OO design skills were better. :)

Which brings me to another question I&#039;ve been thinking about for a while. Do you think TDD is an effective way to learn good OO design (design patterns, SOLID principles etc), or are good OO design skills a prerequisite for doing TDD?</description>
		<content:encoded><![CDATA[<p>Hi Davy,<br />
Great post, thanks! </p>
<p>I think I&#8217;m at early stage 3. My main problem with TDD is in resisting upfront (subconscious) design, which tends to result in over-specified tests and a convoluted design (longish strings of classes). </p>
<p>I tend to fall into the trap of writing tests assuming I&#8217;ll need something, rather than waiting until the test &#8220;naturally&#8221; demands it (or writing the test as a self-fulfilling prophecy to get what I think I&#8217;ll need). I guess this is just a bad habit I have to break. Also wouldn&#8217;t hurt if my OO design skills were better. <img src='http://davybrion.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Which brings me to another question I&#8217;ve been thinking about for a while. Do you think TDD is an effective way to learn good OO design (design patterns, SOLID principles etc), or are good OO design skills a prerequisite for doing TDD?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
