<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: How simple is too simple?</title>
	<atom:link href="http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/</link>
	<description>It&#039;s all behaviour</description>
	<lastBuildDate>Wed, 08 Sep 2010 03:28:12 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
	<item>
		<title>By: Dan North</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7747</link>
		<dc:creator>Dan North</dc:creator>
		<pubDate>Sun, 04 Jun 2006 21:06:03 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7747</guid>
		<description>That&#039;s an interesting observation. Before I got into mocking using jmock, I was also very wary of interfaces everywhere. Especially the dreaded Impl antipattern - the 1-1 mapping of CheeseService to CheeseServiceImpl. I&#039;ve found that using TDD with mocks helps me &quot;discover&quot; services and dependencies that I mock using interfaces, so that I can defer worrying about the implementations until later. Tim Mackinnon - one of the originators of mock objects - describes these interfaces as &quot;flex points&quot;. The interfaces that come out of mock-based TDD seem to appear just where I need multiple implementations down the line. Still not sure how, but I trust the mocking pixies and it seems to work.</description>
		<content:encoded><![CDATA[<p>That&#8217;s an interesting observation. Before I got into mocking using jmock, I was also very wary of interfaces everywhere. Especially the dreaded Impl antipattern &#8211; the 1-1 mapping of CheeseService to CheeseServiceImpl. I&#8217;ve found that using TDD with mocks helps me &#8220;discover&#8221; services and dependencies that I mock using interfaces, so that I can defer worrying about the implementations until later. Tim Mackinnon &#8211; one of the originators of mock objects &#8211; describes these interfaces as &#8220;flex points&#8221;. The interfaces that come out of mock-based TDD seem to appear just where I need multiple implementations down the line. Still not sure how, but I trust the mocking pixies and it seems to work.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: del.icio.us bookmarks - 2006-06-03</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7746</link>
		<dc:creator>del.icio.us bookmarks - 2006-06-03</dc:creator>
		<pubDate>Sun, 04 Jun 2006 07:26:33 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7746</guid>
		<description>[...] DanNorth.net » How simple is too simple? [...]</description>
		<content:encoded><![CDATA[<p>[...] DanNorth.net » How simple is too simple? [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Simon Baker</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7745</link>
		<dc:creator>Simon Baker</dc:creator>
		<pubDate>Sat, 03 Jun 2006 10:42:46 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7745</guid>
		<description>Hi Dan,

Thanks for writing this interesting and thought provoking article. To hopefully put a face to a name, we met at ACCU this year. Syd introduced us. I previously worked with Syd before he joined Thoughtworks. I was at ACCU with Mauro Talevi and sat with him and joe Walnes in the Gumption Traps session.

Simon Baker.</description>
		<content:encoded><![CDATA[<p>Hi Dan,</p>
<p>Thanks for writing this interesting and thought provoking article. To hopefully put a face to a name, we met at ACCU this year. Syd introduced us. I previously worked with Syd before he joined Thoughtworks. I was at ACCU with Mauro Talevi and sat with him and joe Walnes in the Gumption Traps session.</p>
<p>Simon Baker.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bruce Eckel</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7744</link>
		<dc:creator>Bruce Eckel</dc:creator>
		<pubDate>Thu, 01 Jun 2006 15:40:21 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7744</guid>
		<description>&quot;It does not discard using interfaces (almost) everywhere (*)&quot;
Using interfaces everywhere is exactly the kind of &quot;maybe we&#039;ll need this&quot; thinking that DTSTTCPW is intended to eliminate.</description>
		<content:encoded><![CDATA[<p>&#8220;It does not discard using interfaces (almost) everywhere (*)&#8221;<br />
Using interfaces everywhere is exactly the kind of &#8220;maybe we&#8217;ll need this&#8221; thinking that DTSTTCPW is intended to eliminate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: de tomKronieken &#187; DanNorth.net » How simple is too simple?</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7743</link>
		<dc:creator>de tomKronieken &#187; DanNorth.net » How simple is too simple?</dc:creator>
		<pubDate>Thu, 01 Jun 2006 15:29:57 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7743</guid>
		<description>[...] DanNorth.net » How simple is too simple? [...]</description>
		<content:encoded><![CDATA[<p>[...] DanNorth.net » How simple is too simple? [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rebelutionary</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7742</link>
		<dc:creator>rebelutionary</dc:creator>
		<pubDate>Thu, 01 Jun 2006 01:47:55 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7742</guid>
		<description>I&#039;ll just do only, first, simplest thing I know that works......

TW Dan has written a very thoughtful post about the concept of simplicity in agile development: Kent Beck advises us to do “the simplest thing that could possibly work”, but this is often mistaken for “the first thing I could......</description>
		<content:encoded><![CDATA[<p>I&#8217;ll just do only, first, simplest thing I know that works&#8230;&#8230;</p>
<p>TW Dan has written a very thoughtful post about the concept of simplicity in agile development: Kent Beck advises us to do “the simplest thing that could possibly work”, but this is often mistaken for “the first thing I could&#8230;&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Pascal Bleser</title>
		<link>http://blog.dannorth.net/2006/05/28/how-simple-is-too-simple/#comment-7741</link>
		<dc:creator>Pascal Bleser</dc:creator>
		<pubDate>Mon, 29 May 2006 10:34:40 +0000</pubDate>
		<guid isPermaLink="false">http://dannorth.net/archives/22#comment-7741</guid>
		<description>Well put. Like Erik, I don&#039;t agree either with Kent Beck&#039;s statement in the scope of developing a framework that&#039;s being used by a wide number of projects and teams (definitely a case of API publishing).

Also, more generally, and IMHO, &quot;the simplest thing that could possibly work&quot; does not mean that you shouldn&#039;t put certain abstractions into place right from the start.
It does not discard using interfaces (almost) everywhere (*), for the sake of putting mechanisms in place, upfront, to facilitate refactoring, alternative implementations, and of course easy unit testing (at the very least to be able to easily implement a stub implementation without having to hack with cumbersome mock frameworks)
(*) except for Domain objects, where it&#039;s to be considered bad practice as of overengineering (see Evan&#039;s &quot;Domain Driven Design&quot;, amongst others)

Neither does it discard &quot;design by contract&quot; (well, a light form that applies to Java, i.e. well-defining the contracts of and by interfaces) or &quot;single concern&quot; patterns. Take those seriously, right from the start, even for a simple solution, even for &quot;the simplest thing that could possibly work&quot; because it will make refactoring and/or providing alternative implementations of an interface a lot easier, even in the short run.

Not sure that statement by Kent was such a good idea... a lot of less (experienced&#124;skilled) developers take that literaly (as they do with a lot of ideas from XP).

But it&#039;s definitely an interesting topic to discuss ;)

just my 2c</description>
		<content:encoded><![CDATA[<p>Well put. Like Erik, I don&#8217;t agree either with Kent Beck&#8217;s statement in the scope of developing a framework that&#8217;s being used by a wide number of projects and teams (definitely a case of API publishing).</p>
<p>Also, more generally, and IMHO, &#8220;the simplest thing that could possibly work&#8221; does not mean that you shouldn&#8217;t put certain abstractions into place right from the start.<br />
It does not discard using interfaces (almost) everywhere (*), for the sake of putting mechanisms in place, upfront, to facilitate refactoring, alternative implementations, and of course easy unit testing (at the very least to be able to easily implement a stub implementation without having to hack with cumbersome mock frameworks)<br />
(*) except for Domain objects, where it&#8217;s to be considered bad practice as of overengineering (see Evan&#8217;s &#8220;Domain Driven Design&#8221;, amongst others)</p>
<p>Neither does it discard &#8220;design by contract&#8221; (well, a light form that applies to Java, i.e. well-defining the contracts of and by interfaces) or &#8220;single concern&#8221; patterns. Take those seriously, right from the start, even for a simple solution, even for &#8220;the simplest thing that could possibly work&#8221; because it will make refactoring and/or providing alternative implementations of an interface a lot easier, even in the short run.</p>
<p>Not sure that statement by Kent was such a good idea&#8230; a lot of less (experienced|skilled) developers take that literaly (as they do with a lot of ideas from XP).</p>
<p>But it&#8217;s definitely an interesting topic to discuss ;)</p>
<p>just my 2c</p>
]]></content:encoded>
	</item>
</channel>
</rss>
