<?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: It&#8217;s A People Problem</title>
	<atom:link href="http://www.programmersparadox.com/2008/03/05/tdd-its-a-people-problem/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.programmersparadox.com/2008/03/05/tdd-its-a-people-problem/</link>
	<description>Is anything I write real?</description>
	<lastBuildDate>Thu, 04 Mar 2010 17:17:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Tom R</title>
		<link>http://www.programmersparadox.com/2008/03/05/tdd-its-a-people-problem/comment-page-1/#comment-135</link>
		<dc:creator>Tom R</dc:creator>
		<pubDate>Sat, 08 Mar 2008 04:18:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.programmersparadox.com/2008/03/05/tdd-its-a-people-problem/#comment-135</guid>
		<description>I think the fundamental purpose of QA is risk management.  Both groups of people are fundamentally wrong - because they miss a basic reality.  Perfect code is obsolete code.  It simply isn&#039;t economically effective to produce perfect code - so QA exists to ensure that while it may be imperfect, at least its useful.

During my first month as a QA Engineer, I bumped heads with my peers many times over defects.  Fundamentally, I&#039;m the type of person who believes that if you find a bug - then it should be fixed.  Their argument was that bugs should only be fixed when the benefits out way the potential problems.  An unfortunate example of this happened last year when a newly hired development engineer &quot;fixed&quot; something in common code - causing chaos as all the modules which had &quot;worked around&quot; the problem broke.  After a week it was decided to give up trying to sort out the mess and just revert the dev-tree.

As far as the second class of software testing, which relates to specs, I&#039;m very wary of those types of developers and testers.  If you have a perfect spec - then great.  This is something you which is so rare you may never experience it.  However, what happens when the spec is worthless and the only way you can create a decent product is to abandon it entirely.  This recently happened on one of our products - the spec was abandoned because the person who wrote it didn&#039;t know anything about how to make a decent web product.

As far as TDD - I&#039;m probably in the skeptical camp.  If anything, I believe in DDT - development driving testing.  The idea that I&#039;ll experiment with a solution before settling on it.  Test driven development causes too much lock-in.  The earlier you write a test case, the more likely you will have to change or drop the test before it has a positive ROI (Return on Investment).  So much of this depends on what you are developing.

A developer can never prove more then Happy Path testing, since they can never know what false assumptions they have about how others may view the product.  The invisible wall between QA and Engineering exists for this very reason.  We may encourage Engineers to test their code, but we certainly don&#039;t believe them when they say it won&#039;t break.</description>
		<content:encoded><![CDATA[<p>I think the fundamental purpose of QA is risk management.  Both groups of people are fundamentally wrong &#8211; because they miss a basic reality.  Perfect code is obsolete code.  It simply isn&#8217;t economically effective to produce perfect code &#8211; so QA exists to ensure that while it may be imperfect, at least its useful.</p>
<p>During my first month as a QA Engineer, I bumped heads with my peers many times over defects.  Fundamentally, I&#8217;m the type of person who believes that if you find a bug &#8211; then it should be fixed.  Their argument was that bugs should only be fixed when the benefits out way the potential problems.  An unfortunate example of this happened last year when a newly hired development engineer &#8220;fixed&#8221; something in common code &#8211; causing chaos as all the modules which had &#8220;worked around&#8221; the problem broke.  After a week it was decided to give up trying to sort out the mess and just revert the dev-tree.</p>
<p>As far as the second class of software testing, which relates to specs, I&#8217;m very wary of those types of developers and testers.  If you have a perfect spec &#8211; then great.  This is something you which is so rare you may never experience it.  However, what happens when the spec is worthless and the only way you can create a decent product is to abandon it entirely.  This recently happened on one of our products &#8211; the spec was abandoned because the person who wrote it didn&#8217;t know anything about how to make a decent web product.</p>
<p>As far as TDD &#8211; I&#8217;m probably in the skeptical camp.  If anything, I believe in DDT &#8211; development driving testing.  The idea that I&#8217;ll experiment with a solution before settling on it.  Test driven development causes too much lock-in.  The earlier you write a test case, the more likely you will have to change or drop the test before it has a positive ROI (Return on Investment).  So much of this depends on what you are developing.</p>
<p>A developer can never prove more then Happy Path testing, since they can never know what false assumptions they have about how others may view the product.  The invisible wall between QA and Engineering exists for this very reason.  We may encourage Engineers to test their code, but we certainly don&#8217;t believe them when they say it won&#8217;t break.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
