<?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: TDD as if you meant it &#8211; revisited</title>
	<atom:link href="http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/feed/" rel="self" type="application/rss+xml" />
	<link>http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/</link>
	<description>Building software that matters</description>
	<lastBuildDate>Fri, 12 Mar 2010 16:28:45 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Johan Martinsson</title>
		<link>http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/comment-page-1/#comment-76920</link>
		<dc:creator>Johan Martinsson</dc:creator>
		<pubDate>Fri, 12 Mar 2010 08:42:11 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=1035#comment-76920</guid>
		<description>We&#039;re trying this exercise in our local ( http://groups.google.fr/group/cara-dojo ). And I have some questions, the most important one being : where do encapsulation come from? 

In my result I have no objects with state, and I expose simple types (List of integers) everywhere. It seems unnatural, however if I strictly follow the &#039;rules&#039; well I don&#039;t see how a object Field or Player would spring up.

Sure the resulting code is very simple. And I do see the benefit of the extremely incremental nature of it. But I&#039;m unhappy about the lack of encapsulation in the result. If someone could have a quick look I&#039;d very much appreciate it.

http://github.com/martinsson/cara-dojos/blob/master/ticTacToe/src/main/java/ticTacToe/Game.java
http://github.com/martinsson/cara-dojos/blob/master/ticTacToe/src/test/java/ticTacToe/TicTacToeTest.java

I also found that the coding of implementation IN the test has a backside : I can&#039;t code by intent, so I have the impression of tackling all problems at once : what to test and how to write the code. This is to me one of the important benefits of TDD. Anyone felt the same? Will that pass with experience?

And yet another question while I&#039;m at it : Once I&#039;ve moved a function to the implementation class I can still modify it?</description>
		<content:encoded><![CDATA[<p>We&#8217;re trying this exercise in our local ( <a href="http://groups.google.fr/group/cara-dojo" rel="nofollow">http://groups.google.fr/group/cara-dojo</a> ). And I have some questions, the most important one being : where do encapsulation come from? </p>
<p>In my result I have no objects with state, and I expose simple types (List of integers) everywhere. It seems unnatural, however if I strictly follow the &#8216;rules&#8217; well I don&#8217;t see how a object Field or Player would spring up.</p>
<p>Sure the resulting code is very simple. And I do see the benefit of the extremely incremental nature of it. But I&#8217;m unhappy about the lack of encapsulation in the result. If someone could have a quick look I&#8217;d very much appreciate it.</p>
<p><a href="http://github.com/martinsson/cara-dojos/blob/master/ticTacToe/src/main/java/ticTacToe/Game.java" rel="nofollow">http://github.com/martinsson/cara-dojos/blob/master/ticTacToe/src/main/java/ticTacToe/Game.java</a><br />
<a href="http://github.com/martinsson/cara-dojos/blob/master/ticTacToe/src/test/java/ticTacToe/TicTacToeTest.java" rel="nofollow">http://github.com/martinsson/cara-dojos/blob/master/ticTacToe/src/test/java/ticTacToe/TicTacToeTest.java</a></p>
<p>I also found that the coding of implementation IN the test has a backside : I can&#8217;t code by intent, so I have the impression of tackling all problems at once : what to test and how to write the code. This is to me one of the important benefits of TDD. Anyone felt the same? Will that pass with experience?</p>
<p>And yet another question while I&#8217;m at it : Once I&#8217;ve moved a function to the implementation class I can still modify it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Practice, Code Exercises, and Code Katas : Steve Smith's Blog</title>
		<link>http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/comment-page-1/#comment-60214</link>
		<dc:creator>Practice, Code Exercises, and Code Katas : Steve Smith's Blog</dc:creator>
		<pubDate>Tue, 15 Sep 2009 19:45:31 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=1035#comment-60214</guid>
		<description>[...] TDD As If You Meant It: Tic-Tac-Toe: A similar writeup, this time using Tic-Tac-Toe. [...]</description>
		<content:encoded><![CDATA[<p>[...] TDD As If You Meant It: Tic-Tac-Toe: A similar writeup, this time using Tic-Tac-Toe. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Baljeu</title>
		<link>http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/comment-page-1/#comment-56324</link>
		<dc:creator>Alan Baljeu</dc:creator>
		<pubDate>Mon, 03 Aug 2009 20:00:44 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=1035#comment-56324</guid>
		<description>Interesting how even though the test drives the code, many different solutions were created.</description>
		<content:encoded><![CDATA[<p>Interesting how even though the test drives the code, many different solutions were created.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Amy Thorne</title>
		<link>http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/comment-page-1/#comment-56281</link>
		<dc:creator>Amy Thorne</dc:creator>
		<pubDate>Mon, 03 Aug 2009 11:00:55 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=1035#comment-56281</guid>
		<description>I just want to thank you again for leading this session. I&#039;d read your previous article about the exercise at the Software Craftsmanship 2009 conference and was pretty jealous, because it sounded like a great learning experience.

So I really appreciated you sharing it and being willing to play the role of the &quot;annoying git.&quot;

I agree that tic-tac-toe was a great domain choice for the 2 hour time slot.

And I agree with a lot of the comments from your original post about the interesting lessons from it, such as Keith&#039;s: http://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/#comment-41245</description>
		<content:encoded><![CDATA[<p>I just want to thank you again for leading this session. I&#8217;d read your previous article about the exercise at the Software Craftsmanship 2009 conference and was pretty jealous, because it sounded like a great learning experience.</p>
<p>So I really appreciated you sharing it and being willing to play the role of the &#8220;annoying git.&#8221;</p>
<p>I agree that tic-tac-toe was a great domain choice for the 2 hour time slot.</p>
<p>And I agree with a lot of the comments from your original post about the interesting lessons from it, such as Keith&#8217;s: <a href="http://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/#comment-41245" rel="nofollow">http://gojko.net/2009/02/27/thought-provoking-tdd-exercise-at-the-software-craftsmanship-conference/#comment-41245</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Colin Jack</title>
		<link>http://gojko.net/2009/08/02/tdd-as-if-you-meant-it-revisited/comment-page-1/#comment-56280</link>
		<dc:creator>Colin Jack</dc:creator>
		<pubDate>Mon, 03 Aug 2009 10:50:51 +0000</pubDate>
		<guid isPermaLink="false">http://gojko.net/?p=1035#comment-56280</guid>
		<description>I liked the idea too and it was a good session.

As you discuss though it might be worth thinking about what requirements are delivered and in what order. 

After finishing 1-4 we had a do nothing style implementation (return trues essentially) that didn&#039;t reflect the real way you play the game (forgetting implementation for a second).  I don&#039;t mind ultra simple do nothing solutions, thats a part of TDD. However I normally then write another test that fails because the code under test can&#039;t handle it (for example a test that expects us to return false), and it might be worth rethinking the requirements or their order to allow people to do that (even if it means someone acting as a tic-tac-toe domain expert to answer simple questions).

Definitely emphasized the fact that we all jump to assumptions though, and was great fun!</description>
		<content:encoded><![CDATA[<p>I liked the idea too and it was a good session.</p>
<p>As you discuss though it might be worth thinking about what requirements are delivered and in what order. </p>
<p>After finishing 1-4 we had a do nothing style implementation (return trues essentially) that didn&#8217;t reflect the real way you play the game (forgetting implementation for a second).  I don&#8217;t mind ultra simple do nothing solutions, thats a part of TDD. However I normally then write another test that fails because the code under test can&#8217;t handle it (for example a test that expects us to return false), and it might be worth rethinking the requirements or their order to allow people to do that (even if it means someone acting as a tic-tac-toe domain expert to answer simple questions).</p>
<p>Definitely emphasized the fact that we all jump to assumptions though, and was great fun!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
