<?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: The cost of (not) testing software</title>
	<atom:link href="http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/feed/" rel="self" type="application/rss+xml" />
	<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/</link>
	<description>python, programming and other things</description>
	<lastBuildDate>Mon, 02 Jan 2012 09:21:00 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: The Early Bird Catches The Worm &#171; Software Quality Matters</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-63312</link>
		<dc:creator>The Early Bird Catches The Worm &#171; Software Quality Matters</dc:creator>
		<pubDate>Fri, 16 Jan 2009 18:03:06 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-63312</guid>
		<description>[...] I read a good blog post today that nicely illustrates the cost of not testing software and the benefits of catching bugs earlier in the cycle - http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/Â  [...]</description>
		<content:encoded><![CDATA[<p>[…] I read a good blog post today that nicely illustrates the cost of not testing software and the benefits of catching bugs earlier in the cycle — <a href="http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/Â " rel="nofollow">http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/Â </a> […]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Oliver</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-139217</link>
		<dc:creator>Aaron Oliver</dc:creator>
		<pubDate>Sun, 21 Sep 2008 07:24:08 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-139217</guid>
		<description>I&#039;m starting to feel the test re-writing pain myself. I think this overhead is a secret, second wave of opposition to testing. Much more insidious than the initial &quot;Wha? I have to write more code?&quot; barrier.</description>
		<content:encoded><![CDATA[<p>I’m starting to feel the test re-writing pain myself. I think this overhead is a secret, second wave of opposition to testing. Much more insidious than the initial “Wha? I have to write more code?” barrier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Aaron Oliver</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62080</link>
		<dc:creator>Aaron Oliver</dc:creator>
		<pubDate>Sun, 21 Sep 2008 03:24:08 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62080</guid>
		<description>I&#039;m starting to feel the test re-writing pain myself. I think this overhead is a secret, second wave of opposition to testing. Much more insidious than the initial &quot;Wha? I have to write more code?&quot; barrier.</description>
		<content:encoded><![CDATA[<p>I’m starting to feel the test re-writing pain myself. I think this overhead is a secret, second wave of opposition to testing. Much more insidious than the initial “Wha? I have to write more code?” barrier.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Maupin</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62086</link>
		<dc:creator>Patrick Maupin</dc:creator>
		<pubDate>Sat, 20 Sep 2008 19:12:03 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62086</guid>
		<description>Years ago (1984 to be exact), the company I was working for bought a &quot;quality&quot; course to give to their employees.  It was complete with workbooks, videos with 70&#039;s hairstyles, etc.  One of the main things that stuck with me in that course was what they called the &quot;1-10-100 rule&quot;.  (Interestingly, I just failed in trying to google this rule.  Maybe they predated the net by too far.)  Anyway, the crux of this rule was equivalent to one of your main points.  If the developer finds and fixes something before anybody else is involved, it costs &quot;1&quot;.  At the next level of testing, it costs &quot;10&quot;,  Then &quot;100&quot;, &quot;1000&quot;, and if the customer gets it, it could be up in the millions.&lt;br&gt;&lt;br&gt;Fast forward a decade to 1994.  The company I just started working for used exactly the same video course.  The only things that had changed were that I had 10 years of experience since the last time I took the course, and the hairstyles in the videos looked even more ridiculous.  When the instructor asked if there were any questions after going over the 1-10-100 rule, I raised my hand and asked &quot;What does (the company) do do recognize and reward employees who find and fix things at the 1 or 10 level?&quot;  He seemed taken aback, and mumbled something about God and Country and the Right Thing To Do.  I persisted:  &quot;Obviously, for (the company), it&#039;s good when their employees take this to heart, but how does the company prove that they like this to the employees?&quot;  More blathering from the instructor including &quot;Look, OBVIOUSLY you will be rewarded better if you find and fix things earlier.&quot; to which I replied &quot;Really?  In my experience, companies recognize and reward employees who fix things at AT LEAST the 10000 level.  Those are the employees whose names are known by the CEO of the company, and they get a pat on the back, and money, for putting out fires at the customer, even if they are the SOB who screwed it up in the first place.&quot;&lt;br&gt;&lt;br&gt;Since that time, I&#039;ve spent most of my time working for chip companies.  They seem to do slightly better than at least a few of the other places I have worked at the whole &quot;nail it early&quot; thing, partly because of the cost involved in making a mask set, and partly because of the opportunity cost of having to wait many weeks for a chip re-spin.  Unfortunately, there is still an &quot;assumed competence&quot; that people are allowed, which is often far too generous, and lets really simple things slip through, simply because a very few developers are truly incompetent, and relying on them to do any coding, much less to unit test their own code, is a recipe for disaster.  (This is a different category of people than the junior developers who just need a bit of mentoring.  These are people who have managed to careen through a career with a thin veneer of being at the right place at the right time.)I wish I knew of a better answer to this than simply &quot;document all the screwups as thoroughly as possible, and maybe one day they will fire the bastard.&quot;</description>
		<content:encoded><![CDATA[<p>Years ago (1984 to be exact), the company I was working for bought a “quality” course to give to their employees.  It was complete with workbooks, videos with 70’s hairstyles, etc.  One of the main things that stuck with me in that course was what they called the “1–10-100 rule”.  (Interestingly, I just failed in trying to google this rule.  Maybe they predated the net by too far.)  Anyway, the crux of this rule was equivalent to one of your main points.  If the developer finds and fixes something before anybody else is involved, it costs “1”.  At the next level of testing, it costs “10”,  Then “100”, “1000”, and if the customer gets it, it could be up in the millions.</p>
<p>Fast forward a decade to 1994.  The company I just started working for used exactly the same video course.  The only things that had changed were that I had 10 years of experience since the last time I took the course, and the hairstyles in the videos looked even more ridiculous.  When the instructor asked if there were any questions after going over the 1–10-100 rule, I raised my hand and asked “What does (the company) do do recognize and reward employees who find and fix things at the 1 or 10 level?”  He seemed taken aback, and mumbled something about God and Country and the Right Thing To Do.  I persisted:  “Obviously, for (the company), it’s good when their employees take this to heart, but how does the company prove that they like this to the employees?”  More blathering from the instructor including “Look, OBVIOUSLY you will be rewarded better if you find and fix things earlier.” to which I replied “Really?  In my experience, companies recognize and reward employees who fix things at AT LEAST the 10000 level.  Those are the employees whose names are known by the CEO of the company, and they get a pat on the back, and money, for putting out fires at the customer, even if they are the SOB who screwed it up in the first place.”</p>
<p>Since that time, I’ve spent most of my time working for chip companies.  They seem to do slightly better than at least a few of the other places I have worked at the whole “nail it early” thing, partly because of the cost involved in making a mask set, and partly because of the opportunity cost of having to wait many weeks for a chip re-spin.  Unfortunately, there is still an “assumed competence” that people are allowed, which is often far too generous, and lets really simple things slip through, simply because a very few developers are truly incompetent, and relying on them to do any coding, much less to unit test their own code, is a recipe for disaster.  (This is a different category of people than the junior developers who just need a bit of mentoring.  These are people who have managed to careen through a career with a thin veneer of being at the right place at the right time.)I wish I knew of a better answer to this than simply “document all the screwups as thoroughly as possible, and maybe one day they will fire the bastard.”</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: nadnerb</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62079</link>
		<dc:creator>nadnerb</dc:creator>
		<pubDate>Fri, 19 Sep 2008 07:40:09 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62079</guid>
		<description>If you are writing a prototype (or spike) you shouldn&#039;t write tests anyway. You are writing throwaway code so I don&#039;t see your point. &lt;br&gt;&lt;br&gt;I still spike a solution to see that is is feasible and also use TDD. I think you are (as does just about everybody) missing the point of TDD. You don&#039;t write the complete test then the code. You use the test to drive out the design. You might, say, write a test for a game that has a score and it can be zero. When you run this test it should fail. You then implement the code and the test passes. You might then write the next test saying the game can only have a maximum score of 100... and so on.&lt;br&gt;&lt;br&gt;You use the test to drive out the design. The tests that you have in the end are a bonus. Also you will not suffer from YAGNI.&lt;br&gt;&lt;br&gt;I don&#039;t alway TDD (testing legacy code for example), but I have found it useful when you understand how and why it should be used.</description>
		<content:encoded><![CDATA[<p>If you are writing a prototype (or spike) you shouldn’t write tests anyway. You are writing throwaway code so I don’t see your point. </p>
<p>I still spike a solution to see that is is feasible and also use TDD. I think you are (as does just about everybody) missing the point of TDD. You don’t write the complete test then the code. You use the test to drive out the design. You might, say, write a test for a game that has a score and it can be zero. When you run this test it should fail. You then implement the code and the test passes. You might then write the next test saying the game can only have a maximum score of 100… and so on.</p>
<p>You use the test to drive out the design. The tests that you have in the end are a bonus. Also you will not suffer from YAGNI.</p>
<p>I don’t alway TDD (testing legacy code for example), but I have found it useful when you understand how and why it should be used.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jnoller</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62085</link>
		<dc:creator>jnoller</dc:creator>
		<pubDate>Thu, 18 Sep 2008 16:08:12 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62085</guid>
		<description>Oh, for sure customer&#039;s have acceptance testing - in a perfect world, your company/team would be more than open to hand the customer any tests which are pure black-box tests (automated and manual) to showcase the testing you have performed, and to assist them in their own testing.</description>
		<content:encoded><![CDATA[<p>Oh, for sure customer’s have acceptance testing — in a perfect world, your company/team would be more than open to hand the customer any tests which are pure black-box tests (automated and manual) to showcase the testing you have performed, and to assist them in their own testing.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ali</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62084</link>
		<dc:creator>Ali</dc:creator>
		<pubDate>Thu, 18 Sep 2008 16:05:47 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62084</guid>
		<description>Thanks for your article. We use unit testing here to keep ourselves (developers) happy, but our &quot;real&quot; tests are functional/acceptance.&lt;br&gt;&lt;br&gt;It might just be the industry that we are in, but when buying our software, most clients do their own acceptance testing on it for their own audit processes. We actually ship a copy of the forms for doing the acceptance testing with our software (just in case anyone gets any bright ideas and does something fancy!).&lt;br&gt;&lt;br&gt;Additionally, I find nothing beats long-term production use as a test tool, but this takes years.</description>
		<content:encoded><![CDATA[<p>Thanks for your article. We use unit testing here to keep ourselves (developers) happy, but our “real” tests are functional/acceptance.</p>
<p>It might just be the industry that we are in, but when buying our software, most clients do their own acceptance testing on it for their own audit processes. We actually ship a copy of the forms for doing the acceptance testing with our software (just in case anyone gets any bright ideas and does something fancy!).</p>
<p>Additionally, I find nothing beats long-term production use as a test tool, but this takes years.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jnoller</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62083</link>
		<dc:creator>jnoller</dc:creator>
		<pubDate>Thu, 18 Sep 2008 14:57:08 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62083</guid>
		<description>As for testing the spec and the requirement - see this post:&lt;br&gt;&lt;br&gt;&lt;a href=&quot;http://jessenoller.com/2008/08/12/steve-yegge-hits-a-homer-your-requirements-are-stupid/&quot; rel=&quot;nofollow&quot;&gt;http://jessenoller.com/2008/08/12/steve-yegge-h...&lt;/a&gt;</description>
		<content:encoded><![CDATA[<p>As for testing the spec and the requirement — see this post:</p>
<p><a href="http://jessenoller.com/2008/08/12/steve-yegge-hits-a-homer-your-requirements-are-stupid/" rel="nofollow">http://jessenoller.com/2008/08/12/steve-yegge-h…</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jnoller</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62082</link>
		<dc:creator>jnoller</dc:creator>
		<pubDate>Thu, 18 Sep 2008 14:55:26 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62082</guid>
		<description>It&#039;s frightening at how not common common sense is.</description>
		<content:encoded><![CDATA[<p>It’s frightening at how not common common sense is.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jnoller</title>
		<link>http://jessenoller.com/2008/09/17/the-cost-of-not-testing-software/comment-page-1/#comment-62078</link>
		<dc:creator>jnoller</dc:creator>
		<pubDate>Thu, 18 Sep 2008 14:26:44 +0000</pubDate>
		<guid isPermaLink="false">http://jessenoller.com/?p=303#comment-62078</guid>
		<description>See, I too have problems &quot;adopting&quot; test driven development - I fully believe in unit tests, and some amount of test-first development, but doing full blown &quot;design the tests before the code&quot; doesn&#039;t mentally mesh with me (as a developer) given I want to prototype prior to writing tests just so I know where I&#039;m basically going.&lt;br&gt;&lt;br&gt;That said - I firmly believe in a strong test suite of both units and functional tests once you&#039;ve got something that&#039;s slightly firmer than quick sand.</description>
		<content:encoded><![CDATA[<p>See, I too have problems “adopting” test driven development — I fully believe in unit tests, and some amount of test-first development, but doing full blown “design the tests before the code” doesn’t mentally mesh with me (as a developer) given I want to prototype prior to writing tests just so I know where I’m basically going.</p>
<p>That said — I firmly believe in a strong test suite of both units and functional tests once you’ve got something that’s slightly firmer than quick sand.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Object Caching 727/728 objects using disk: basic

Served from: jessenoller.com @ 2012-02-08 01:31:11 -->
