<?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: Over 1000 defects?</title>
	<atom:link href="http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/feed/" rel="self" type="application/rss+xml" />
	<link>http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/</link>
	<description>Thinking about programming in new ways</description>
	<lastBuildDate>Tue, 15 Mar 2011 02:30:01 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Mark Ramm</title>
		<link>http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-231</link>
		<dc:creator>Mark Ramm</dc:creator>
		<pubDate>Wed, 03 May 2006 20:05:29 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-231</guid>
		<description>If 1000 bugs counts everything over the lifetime of the product, that&#039;s one story.  If there are 1000 open bugs, that&#039;s another.   I assumed Guy meant the later rather than the former.  Usually my cleints aren&#039;t interested in tracking bugs that are fixed.  

Alan, you say &quot;A majority of those bugs are introduced in fixes to other bugs -â€“ and therefore by definition not caught by the automated unit tests&quot;   I&#039;m not sure what you mean by that.   I&#039;ve found my unit tests to be invaluable in finding regressions caused by one-line bug fixes.   

Also, you can use test driven development to fix bugs -- write a test that fails because of the bug (in otherwords automate the reproduction of that bug) and then when you make that test pass -- along with all your other tests -- you can have reasonable confidence that the bug fix causes no other problems.  

If you have a good set of tests, your risk calculation gets a lot easier.   When all of your unit &lt;i&gt;and functional&lt;/i&gt; tests pass there&#039;s a good chance the bugfix you just checked in didn&#039;t break anything else.   

Sure, there is always some risk, but when you make the risk vanishingly small, bugfixes start feeling safe and easy -- and that&#039;s when life starts getting good. ;)</description>
		<content:encoded><![CDATA[<p>If 1000 bugs counts everything over the lifetime of the product, that&#8217;s one story.  If there are 1000 open bugs, that&#8217;s another.   I assumed Guy meant the later rather than the former.  Usually my cleints aren&#8217;t interested in tracking bugs that are fixed.  </p>
<p>Alan, you say &#8220;A majority of those bugs are introduced in fixes to other bugs -â€“ and therefore by definition not caught by the automated unit tests&#8221;   I&#8217;m not sure what you mean by that.   I&#8217;ve found my unit tests to be invaluable in finding regressions caused by one-line bug fixes.   </p>
<p>Also, you can use test driven development to fix bugs &#8212; write a test that fails because of the bug (in otherwords automate the reproduction of that bug) and then when you make that test pass &#8212; along with all your other tests &#8212; you can have reasonable confidence that the bug fix causes no other problems.  </p>
<p>If you have a good set of tests, your risk calculation gets a lot easier.   When all of your unit <i>and functional</i> tests pass there&#8217;s a good chance the bugfix you just checked in didn&#8217;t break anything else.   </p>
<p>Sure, there is always some risk, but when you make the risk vanishingly small, bugfixes start feeling safe and easy &#8212; and that&#8217;s when life starts getting good. ;)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alan Yoder</title>
		<link>http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-230</link>
		<dc:creator>Alan Yoder</dc:creator>
		<pubDate>Wed, 03 May 2006 19:35:05 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-230</guid>
		<description>Based on informal evidence, I&#039;d say that a mature (10 years old) highly stable product written by senior developers will have clocked roughly one bug for every 20 lines of code over its lifetime.  

A majority of those bugs are introduced in fixes to other bugs--and therefore by definition not caught by the automated unit tests that generate those lovely green bars.  Many times the offender is &quot;an easy one-line fix&quot;--add that to the list of lies.  Often enough the new bug is worse than the one getting fixed.  Sometimes the original problem is that someone changed the code logic without updating all the relevant comments, leading someone else to introduce bugs based on incorrect assumptions.  These facts and others make every bug fix a calculated risk.  

Tracking only 1000 bugs sounds like paradise to me.

The real issue isn&#039;t tracking bugs, it&#039;s deciding which ones will cause enough customer pain to be worth the risk of trying to fix them.</description>
		<content:encoded><![CDATA[<p>Based on informal evidence, I&#8217;d say that a mature (10 years old) highly stable product written by senior developers will have clocked roughly one bug for every 20 lines of code over its lifetime.  </p>
<p>A majority of those bugs are introduced in fixes to other bugs&#8211;and therefore by definition not caught by the automated unit tests that generate those lovely green bars.  Many times the offender is &#8220;an easy one-line fix&#8221;&#8211;add that to the list of lies.  Often enough the new bug is worse than the one getting fixed.  Sometimes the original problem is that someone changed the code logic without updating all the relevant comments, leading someone else to introduce bugs based on incorrect assumptions.  These facts and others make every bug fix a calculated risk.  </p>
<p>Tracking only 1000 bugs sounds like paradise to me.</p>
<p>The real issue isn&#8217;t tracking bugs, it&#8217;s deciding which ones will cause enough customer pain to be worth the risk of trying to fix them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hartmut Holzgraefe</title>
		<link>http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-223</link>
		<dc:creator>Hartmut Holzgraefe</dc:creator>
		<pubDate>Sun, 30 Apr 2006 20:11:17 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-223</guid>
		<description>I&#039;m pretty sure this 1000 figure is meant to include *all* bug reports, even for bugs already fixed, not just open bugs ...</description>
		<content:encoded><![CDATA[<p>I&#8217;m pretty sure this 1000 figure is meant to include *all* bug reports, even for bugs already fixed, not just open bugs &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bob Aman</title>
		<link>http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-220</link>
		<dc:creator>Bob Aman</dc:creator>
		<pubDate>Fri, 28 Apr 2006 16:20:44 +0000</pubDate>
		<guid isPermaLink="false">http://compoundthinking.com/blog/index.php/2006/04/28/over-1000-defects/#comment-220</guid>
		<description>Yeah, couldn&#039;t agree more.  That&#039;s what automated unit testing is for.  You don&#039;t stop working until you&#039;re green-bar-ing.</description>
		<content:encoded><![CDATA[<p>Yeah, couldn&#8217;t agree more.  That&#8217;s what automated unit testing is for.  You don&#8217;t stop working until you&#8217;re green-bar-ing.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

