<?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: Are .net interfaces required</title>
	<atom:link href="http://elegantcode.com/2008/09/11/are-net-interfaces-required/feed/" rel="self" type="application/rss+xml" />
	<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/</link>
	<description></description>
	<lastBuildDate>Mon, 15 Mar 2010 17:35:57 -0500</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Reflective Perspective - Chris Alcock &#187; The &#8216;Morning&#8217; Brew #179</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-2/#comment-32604</link>
		<dc:creator>Reflective Perspective - Chris Alcock &#187; The &#8216;Morning&#8217; Brew #179</dc:creator>
		<pubDate>Mon, 15 Sep 2008 12:52:01 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32604</guid>
		<description>[...] Are .net interfaces required - Chris Brandsma hosts an interesting discussion about the use of interfaces and tDD. The comments are well worth checking out on this one. [...]</description>
		<content:encoded><![CDATA[<p>[...] Are .net interfaces required &#8211; Chris Brandsma hosts an interesting discussion about the use of interfaces and tDD. The comments are well worth checking out on this one. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Arjan`s World &#187; LINKBLOG for September 13, 2008</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-2/#comment-32457</link>
		<dc:creator>Arjan`s World &#187; LINKBLOG for September 13, 2008</dc:creator>
		<pubDate>Sat, 13 Sep 2008 20:06:19 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32457</guid>
		<description>[...] *** Are .net interfaces required - Chris Brandsma After a dude questioned interfaces, Chris has a compelling list 7 reasons in favor of them. And the best thing: &#8220;the dude&#8221; comments! [...]</description>
		<content:encoded><![CDATA[<p>[...] *** Are .net interfaces required &#8211; Chris Brandsma After a dude questioned interfaces, Chris has a compelling list 7 reasons in favor of them. And the best thing: &#8220;the dude&#8221; comments! [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Walker</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-2/#comment-32268</link>
		<dc:creator>Jason Walker</dc:creator>
		<pubDate>Fri, 12 Sep 2008 22:03:55 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32268</guid>
		<description>I think it&#039;s pretty obvious I subscribe to the confrontational theory of teaching.  One of the reasons I spoke up on Tuesday was to play devil&#039;s advocate - it sounded like everyone else in the room agreed with each other, and nothing gets done in an echo chamber.  I like to argue - I don&#039;t see it as a bad thing.

My comments on &quot;religion&quot; in this industry has more to do with ... leadership style.  Tony is really good at coming up with existing names for the ideas that I have, and has told me that what I&#039;m trying to convey is known as &quot;Falling into the pit of success.&quot;  I&#039;ve always found that if you want someone to do something, the best thing is to make it easy for them.  I don&#039;t consider it coddling, but rather subtle coercion.</description>
		<content:encoded><![CDATA[<p>I think it&#8217;s pretty obvious I subscribe to the confrontational theory of teaching.  One of the reasons I spoke up on Tuesday was to play devil&#8217;s advocate &#8211; it sounded like everyone else in the room agreed with each other, and nothing gets done in an echo chamber.  I like to argue &#8211; I don&#8217;t see it as a bad thing.</p>
<p>My comments on &#8220;religion&#8221; in this industry has more to do with &#8230; leadership style.  Tony is really good at coming up with existing names for the ideas that I have, and has told me that what I&#8217;m trying to convey is known as &#8220;Falling into the pit of success.&#8221;  I&#8217;ve always found that if you want someone to do something, the best thing is to make it easy for them.  I don&#8217;t consider it coddling, but rather subtle coercion.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Brandsma</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-2/#comment-32263</link>
		<dc:creator>Chris Brandsma</dc:creator>
		<pubDate>Fri, 12 Sep 2008 21:40:57 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32263</guid>
		<description>@Jason: this is kind of a separate topic -- teaching style.

First off, there are not many good teachers out there.  But there are a lot of loud people.  Just as with religion, I would differentiate between Bible thumper and apologists.  I strive to be an apologist.  But I also see the need to be confrontational from time to time.

Not all of my best teachers were the coddling type.  Some of them were confrontational.   They did this just to get the thought processes flowing.  It doesn&#039;t work for everyone, but it does work.   I know lots over VERY good preachers who do just this.

As you know, making people better developers is more than TDD.  Much more.  TDD all by itself wont magically make people better, but TDD alongside better practices often start the process.

Which leads to one of my personal items: always be improving, always be learning.  At no point should you be satisfied with where you are.</description>
		<content:encoded><![CDATA[<p>@Jason: this is kind of a separate topic &#8212; teaching style.</p>
<p>First off, there are not many good teachers out there.  But there are a lot of loud people.  Just as with religion, I would differentiate between Bible thumper and apologists.  I strive to be an apologist.  But I also see the need to be confrontational from time to time.</p>
<p>Not all of my best teachers were the coddling type.  Some of them were confrontational.   They did this just to get the thought processes flowing.  It doesn&#8217;t work for everyone, but it does work.   I know lots over VERY good preachers who do just this.</p>
<p>As you know, making people better developers is more than TDD.  Much more.  TDD all by itself wont magically make people better, but TDD alongside better practices often start the process.</p>
<p>Which leads to one of my personal items: always be improving, always be learning.  At no point should you be satisfied with where you are.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Walker</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-2/#comment-32262</link>
		<dc:creator>Jason Walker</dc:creator>
		<pubDate>Fri, 12 Sep 2008 21:38:06 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32262</guid>
		<description>@Chris:  I think we&#039;re coming to an agreement here.

My current policy on unit tests is to test the tricky code, and the important code, and to write tests as issues become apparent.  Worse than a bug is a regression bug...

I am not overly familiar with BDD - I&#039;m still trying to figure out what the difference is.  I must research further.

&quot;Also, a bad architecture, or bad testing methodology can be a major drain on productivity. Which gets to what some of your point is really after, which is:
“show me TDD done well, and then I’ll believe you.”&quot;

I think you hit the nail on the head with this paragraph.  A bad design, or a bad test can be worse than no design or no test at all.  I think a lot of people have had bad experiences with unit tests, get frustrated, and write it off as useless.  Hence, friction.

I&#039;ve been contemplating putting together an example application using MVC, and some of the things I&#039;ve been learning by using LTS in my last 3 projects.  Making this easy to test would be one of the primary goals of the assignment for myself.  Of course, as you said, it&#039;s hard to find time...

Finally, it is my priority to have working software too... I tend to be a perfectionist about that too... but it really comes down to the priorities of who is paying the bills.

Good discussion,
~jw</description>
		<content:encoded><![CDATA[<p>@Chris:  I think we&#8217;re coming to an agreement here.</p>
<p>My current policy on unit tests is to test the tricky code, and the important code, and to write tests as issues become apparent.  Worse than a bug is a regression bug&#8230;</p>
<p>I am not overly familiar with BDD &#8211; I&#8217;m still trying to figure out what the difference is.  I must research further.</p>
<p>&#8220;Also, a bad architecture, or bad testing methodology can be a major drain on productivity. Which gets to what some of your point is really after, which is:<br />
“show me TDD done well, and then I’ll believe you.”&#8221;</p>
<p>I think you hit the nail on the head with this paragraph.  A bad design, or a bad test can be worse than no design or no test at all.  I think a lot of people have had bad experiences with unit tests, get frustrated, and write it off as useless.  Hence, friction.</p>
<p>I&#8217;ve been contemplating putting together an example application using MVC, and some of the things I&#8217;ve been learning by using LTS in my last 3 projects.  Making this easy to test would be one of the primary goals of the assignment for myself.  Of course, as you said, it&#8217;s hard to find time&#8230;</p>
<p>Finally, it is my priority to have working software too&#8230; I tend to be a perfectionist about that too&#8230; but it really comes down to the priorities of who is paying the bills.</p>
<p>Good discussion,<br />
~jw</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Chris Brandsma</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-1/#comment-32259</link>
		<dc:creator>Chris Brandsma</dc:creator>
		<pubDate>Fri, 12 Sep 2008 21:11:05 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32259</guid>
		<description>@Jason:  Ok, this is getting fun.

My definition of done is the client is either happy with the software or out of money (this usually comes from change request -- ie. &quot;I know that was what I wanted then, but this is what I want now&quot;).

My question on &quot;fully tested&quot; was in response to experience in teaching TDD.  Contrarian developer tend to look at TDD and say you are not done until every little edge case is accounted for for every class (which is impossible).  Also, we are in agreement with TDD.  It is test first, and Test Driven Design.   

Side note: this is one reason I like the notion of BDD (Behavior Driven Design).  You are validating the behavior is correct.  Less on the notion of testing.

Also, a bad architecture, or bad testing methodology can be a major drain on productivity.   Which gets to what some of your point is really after, which is: 
&quot;show me TDD done well, and then I&#039;ll believe you.&quot;

Which gets much harder, because few of us are working on open source,  and none of us have time to setup sample applications.  Although, CodeCamp Server is supposed to have some very good unit test metrics.

Finally, on the reputation part.  That really comes back to priorities -- which are really a company policy more than a personal preference.  My priority is for tested, working software.  I would rather be a bit late than release a bug.  

This can also get back to what type of software you are writing.  If it is accounting software...no one can afford a money bug.  That has to work the first time.</description>
		<content:encoded><![CDATA[<p>@Jason:  Ok, this is getting fun.</p>
<p>My definition of done is the client is either happy with the software or out of money (this usually comes from change request &#8212; ie. &#8220;I know that was what I wanted then, but this is what I want now&#8221;).</p>
<p>My question on &#8220;fully tested&#8221; was in response to experience in teaching TDD.  Contrarian developer tend to look at TDD and say you are not done until every little edge case is accounted for for every class (which is impossible).  Also, we are in agreement with TDD.  It is test first, and Test Driven Design.   </p>
<p>Side note: this is one reason I like the notion of BDD (Behavior Driven Design).  You are validating the behavior is correct.  Less on the notion of testing.</p>
<p>Also, a bad architecture, or bad testing methodology can be a major drain on productivity.   Which gets to what some of your point is really after, which is:<br />
&#8220;show me TDD done well, and then I&#8217;ll believe you.&#8221;</p>
<p>Which gets much harder, because few of us are working on open source,  and none of us have time to setup sample applications.  Although, CodeCamp Server is supposed to have some very good unit test metrics.</p>
<p>Finally, on the reputation part.  That really comes back to priorities &#8212; which are really a company policy more than a personal preference.  My priority is for tested, working software.  I would rather be a bit late than release a bug.  </p>
<p>This can also get back to what type of software you are writing.  If it is accounting software&#8230;no one can afford a money bug.  That has to work the first time.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Interfaces and Testing : Steve Smith's Blog</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-1/#comment-32258</link>
		<dc:creator>Interfaces and Testing : Steve Smith's Blog</dc:creator>
		<pubDate>Fri, 12 Sep 2008 20:55:50 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32258</guid>
		<description>[...] Chris Brandsma posted his thoughts on a discussion he had about interfaces as a requirement for TDD (or unit testing in general, I would say).&#160; I added a brief comment there but wanted to expand on my thoughts here, as I only fairly recently came to believe my current stance.&#160; See, I&#039;ve heard that interfaces were a &quot;good thing&quot; for years and as Chris points out, plenty of authoritative Software Development books extol the virtues of programming to interfaces as a means of providing loose coupling and other benefits. [...]</description>
		<content:encoded><![CDATA[<p>[...] Chris Brandsma posted his thoughts on a discussion he had about interfaces as a requirement for TDD (or unit testing in general, I would say).&nbsp; I added a brief comment there but wanted to expand on my thoughts here, as I only fairly recently came to believe my current stance.&nbsp; See, I&#8217;ve heard that interfaces were a &#8220;good thing&#8221; for years and as Chris points out, plenty of authoritative Software Development books extol the virtues of programming to interfaces as a means of providing loose coupling and other benefits. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: anonymous</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-1/#comment-32256</link>
		<dc:creator>anonymous</dc:creator>
		<pubDate>Fri, 12 Sep 2008 20:37:46 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32256</guid>
		<description>Come on Steve, you never finished anything before TDD?

I could guess that The Dude would know he was done when he finished integration and acceptance testing.  

No amount of unit tests can tell you you are done or even that your system works, only that the code you have written functions as you think it should.

I for one would like to hear a better answer to the original question, if all there is to offer is &quot;your code sucks because you don&#039;t test&quot; then I&#039;m not sure I&#039;m sold either.</description>
		<content:encoded><![CDATA[<p>Come on Steve, you never finished anything before TDD?</p>
<p>I could guess that The Dude would know he was done when he finished integration and acceptance testing.  </p>
<p>No amount of unit tests can tell you you are done or even that your system works, only that the code you have written functions as you think it should.</p>
<p>I for one would like to hear a better answer to the original question, if all there is to offer is &#8220;your code sucks because you don&#8217;t test&#8221; then I&#8217;m not sure I&#8217;m sold either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Walker</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-1/#comment-32255</link>
		<dc:creator>Jason Walker</dc:creator>
		<pubDate>Fri, 12 Sep 2008 20:35:45 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32255</guid>
		<description>&quot;If you don’t have tests showing that it works, how do you know it’s done?&quot;

I&#039;m trying really hard to be nice about this, but I&#039;m really tired of hearing this cliché.  There are many forms of testing; what I thought I was discussing was unit testing and TDD in particular.  There are many ways to know you are done - when the client is happy is the one I usually go by.

&quot;Also, I believe that if you really don’t want to use interfaces because you don’t consider test code to be a first class citizen.&quot;

You&#039;re absolutely right.  I don&#039;t consider test code to be a first class citizen.  I doubt many people would disagree with me if I said it is a bad thing if your production code had a dependency on your unit test DLL.  That to me makes it less than a first class citizen - if it were to suddenly disappear, your customers wouldn&#039;t know the difference.  I&#039;m not claiming that it&#039;s not important, however.</description>
		<content:encoded><![CDATA[<p>&#8220;If you don’t have tests showing that it works, how do you know it’s done?&#8221;</p>
<p>I&#8217;m trying really hard to be nice about this, but I&#8217;m really tired of hearing this cliché.  There are many forms of testing; what I thought I was discussing was unit testing and TDD in particular.  There are many ways to know you are done &#8211; when the client is happy is the one I usually go by.</p>
<p>&#8220;Also, I believe that if you really don’t want to use interfaces because you don’t consider test code to be a first class citizen.&#8221;</p>
<p>You&#8217;re absolutely right.  I don&#8217;t consider test code to be a first class citizen.  I doubt many people would disagree with me if I said it is a bad thing if your production code had a dependency on your unit test DLL.  That to me makes it less than a first class citizen &#8211; if it were to suddenly disappear, your customers wouldn&#8217;t know the difference.  I&#8217;m not claiming that it&#8217;s not important, however.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steve Smith</title>
		<link>http://elegantcode.com/2008/09/11/are-net-interfaces-required/comment-page-1/#comment-32254</link>
		<dc:creator>Steve Smith</dc:creator>
		<pubDate>Fri, 12 Sep 2008 20:35:05 +0000</pubDate>
		<guid isPermaLink="false">http://elegantcode.com/2008/09/11/are-net-interfaces-required/#comment-32254</guid>
		<description>I posted some more thoughts on this here:
http://stevesmithblog.com/blog/interfaces-and-testing/</description>
		<content:encoded><![CDATA[<p>I posted some more thoughts on this here:<br />
<a href="http://stevesmithblog.com/blog/interfaces-and-testing/" rel="nofollow">http://stevesmithblog.com/blog/interfaces-and-testing/</a></p>
]]></content:encoded>
	</item>
</channel>
</rss>
