<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.3" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Comments on: False Economy</title>
	<link>http://www.dancres.org/blitzblog/2008/03/21/false-economy/</link>
	<description></description>
	<pubDate>Tue, 13 May 2008 14:16:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.3</generator>
		<item>
		<title>By: Dan Creswell</title>
		<link>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-847</link>
		<dc:creator>Dan Creswell</dc:creator>
		<pubDate>Sat, 29 Mar 2008 10:36:26 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-847</guid>
		<description>"I guess I don’t get the TDD arguments. For me, it’s a simple way to force myself to think more about class design with the side effect of having that class unit tested at the end. Paired with my current tooling, I also get productivity benefits from being able to autogenerate parts of the production code off it’s inferred usage in the unit test. If you don’t want to do it, fine, but don’t become an anti-tdd zealot (which is just as bad as being a tdd zealot)"

Yep, it should be a pragmatic exercise.  You should test, and automation would be nice but TDD cannot be allowed to drive your architecture to significant degree.  Testing is an important facet but there are many other forces that influence architecture and determine it's success in the longer term.</description>
		<content:encoded><![CDATA[<p>&#8220;I guess I don’t get the TDD arguments. For me, it’s a simple way to force myself to think more about class design with the side effect of having that class unit tested at the end. Paired with my current tooling, I also get productivity benefits from being able to autogenerate parts of the production code off it’s inferred usage in the unit test. If you don’t want to do it, fine, but don’t become an anti-tdd zealot (which is just as bad as being a tdd zealot)&#8221;</p>
<p>Yep, it should be a pragmatic exercise.  You should test, and automation would be nice but TDD cannot be allowed to drive your architecture to significant degree.  Testing is an important facet but there are many other forces that influence architecture and determine it&#8217;s success in the longer term.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Evan</title>
		<link>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-846</link>
		<dc:creator>Evan</dc:creator>
		<pubDate>Fri, 28 Mar 2008 16:40:55 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-846</guid>
		<description>I guess I don't get the TDD arguments.  For me, it's a simple way to force myself to think more about class design with the side effect of having that class unit tested at the end.  Paired with my current tooling, I also get productivity benefits from being able to autogenerate parts of the production code off it's inferred usage in the unit test.  If you don't want to do it, fine, but don't become an anti-tdd zealot (which is just as bad as being a tdd zealot)

As for the TDD YAGNI implications on architecture, that works but only if you know you are building something architecturally simple (such as a simple layered application).  If I had to guess, that's probably the type of application many of the extremeist YAGNI folks are building (and I'm sure it works great for them).

Those who have dealt with more complex systems know that to not think about architecture is really just gambling with the success of the project.

Of course, for the simple layered system, doing a lot of "architectural" work up front is just as bad as not doing architectural work on the more complex system (think: both scenarios may double the cost of the app).

In short, it's all about context.  If anything is true in software these days, it's that there is no universal right or wrong way to do software development.  Context is king.</description>
		<content:encoded><![CDATA[<p>I guess I don&#8217;t get the TDD arguments.  For me, it&#8217;s a simple way to force myself to think more about class design with the side effect of having that class unit tested at the end.  Paired with my current tooling, I also get productivity benefits from being able to autogenerate parts of the production code off it&#8217;s inferred usage in the unit test.  If you don&#8217;t want to do it, fine, but don&#8217;t become an anti-tdd zealot (which is just as bad as being a tdd zealot)</p>
<p>As for the TDD YAGNI implications on architecture, that works but only if you know you are building something architecturally simple (such as a simple layered application).  If I had to guess, that&#8217;s probably the type of application many of the extremeist YAGNI folks are building (and I&#8217;m sure it works great for them).</p>
<p>Those who have dealt with more complex systems know that to not think about architecture is really just gambling with the success of the project.</p>
<p>Of course, for the simple layered system, doing a lot of &#8220;architectural&#8221; work up front is just as bad as not doing architectural work on the more complex system (think: both scenarios may double the cost of the app).</p>
<p>In short, it&#8217;s all about context.  If anything is true in software these days, it&#8217;s that there is no universal right or wrong way to do software development.  Context is king.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan Creswell</title>
		<link>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-845</link>
		<dc:creator>Dan Creswell</dc:creator>
		<pubDate>Mon, 24 Mar 2008 16:04:50 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-845</guid>
		<description>Uh hmmm, good point.  I was going to suggest that perhaps we'd got that one under control but of course I see with my own eyes that it isn't on a regular basis.  No doubt many would leap forward and pronounce TDD the solution, which it isn't (http://beust.com/weblog/archives/000477.html).  Maybe (4) should be:

(4) It's all about code - we don't need a stinkin' architecture.</description>
		<content:encoded><![CDATA[<p>Uh hmmm, good point.  I was going to suggest that perhaps we&#8217;d got that one under control but of course I see with my own eyes that it isn&#8217;t on a regular basis.  No doubt many would leap forward and pronounce TDD the solution, which it isn&#8217;t (http://beust.com/weblog/archives/000477.html).  Maybe (4) should be:</p>
<p>(4) It&#8217;s all about code - we don&#8217;t need a stinkin&#8217; architecture.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Jones</title>
		<link>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-842</link>
		<dc:creator>Steve Jones</dc:creator>
		<pubDate>Sun, 23 Mar 2008 12:01:15 +0000</pubDate>
		<guid>http://www.dancres.org/blitzblog/2008/03/21/false-economy/#comment-842</guid>
		<description>And of course there is number 3

3) Automated Testing is too expensive at the moment, we'll add it in later if there are any problems</description>
		<content:encoded><![CDATA[<p>And of course there is number 3</p>
<p>3) Automated Testing is too expensive at the moment, we&#8217;ll add it in later if there are any problems</p>
]]></content:encoded>
	</item>
</channel>
</rss>
