<?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: 4 Things To Consider When Fixing a Bug</title>
	<atom:link href="http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/</link>
	<description>Ramblings from the Coding Trenches</description>
	<lastBuildDate>Fri, 25 Dec 2009 09:53:34 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Giorgio Sironi</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-8</link>
		<dc:creator>Giorgio Sironi</dc:creator>
		<pubDate>Wed, 09 Sep 2009 21:32:30 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-8</guid>
		<description>Good checklist. I like the TDD way of thinking.</description>
		<content:encoded><![CDATA[<p>Good checklist. I like the TDD way of thinking.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: choy</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-7</link>
		<dc:creator>choy</dc:creator>
		<pubDate>Wed, 09 Sep 2009 07:55:16 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-7</guid>
		<description>Is it really a bug?

It may very well be a *feature* that many users (inside and outside the team) are dependent on. e.g. SHStripMneumonic is misspelled.</description>
		<content:encoded><![CDATA[<p>Is it really a bug?</p>
<p>It may very well be a *feature* that many users (inside and outside the team) are dependent on. e.g. SHStripMneumonic is misspelled.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kim Greenlee</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-6</link>
		<dc:creator>Kim Greenlee</dc:creator>
		<pubDate>Tue, 08 Sep 2009 04:08:47 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-6</guid>
		<description>#5 Know the history.  Use the version control system to determine when the bug was introduced.  Was the bug created as a result of trying to fix something else?  Has it been in there a really long time?  If the bug has been in there for a long time and didn’t manifest…what changed?  This is one of the main reasons why when you check-in code changes that are associated to a bug or enhancement in your tracking system, that you record the tracking system number in the check-in notes.

Additionally, I would recommend that folks use good judgment on #1.  While in the general cases what you suggest is just fine and for valid reasons…if the code is in a section that needs high performance…too many checks will degrade your application’s performance and could cause problems from a customer perspective and in some cases may impact SLAs.</description>
		<content:encoded><![CDATA[<p>#5 Know the history.  Use the version control system to determine when the bug was introduced.  Was the bug created as a result of trying to fix something else?  Has it been in there a really long time?  If the bug has been in there for a long time and didn’t manifest…what changed?  This is one of the main reasons why when you check-in code changes that are associated to a bug or enhancement in your tracking system, that you record the tracking system number in the check-in notes.</p>
<p>Additionally, I would recommend that folks use good judgment on #1.  While in the general cases what you suggest is just fine and for valid reasons…if the code is in a section that needs high performance…too many checks will degrade your application’s performance and could cause problems from a customer perspective and in some cases may impact SLAs.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Barry Kelly</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-5</link>
		<dc:creator>Barry Kelly</dc:creator>
		<pubDate>Tue, 08 Sep 2009 04:00:23 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-5</guid>
		<description>Disagree somewhat substantially with point 1: hard to track down bugs are usually in legacy and/or complicated code, where understanding of invariants is woolly or lost in mists of time and staff turnover. Writing good diagnostics beyond basic logging is not easy, precisely because your knowledge of the invariants are woolly. Sometimes the only way to get good diagnostics is to rewrite the thing, and if it&#039;s too complicated, that may not be a good value proposition for the business; so you just have to live with it, and fix other issues when and if they come up.

Disagree slightly with point 4: do mention what the bug is, a one-liner description of the symptom or cause of the bug. This helps hugely in reviewing change logs looking for breaking changes in a team environment - a bug number or other cross-reference means you have to open up a separate data silo and hugely slows down what should be 3-second a visual scan.</description>
		<content:encoded><![CDATA[<p>Disagree somewhat substantially with point 1: hard to track down bugs are usually in legacy and/or complicated code, where understanding of invariants is woolly or lost in mists of time and staff turnover. Writing good diagnostics beyond basic logging is not easy, precisely because your knowledge of the invariants are woolly. Sometimes the only way to get good diagnostics is to rewrite the thing, and if it&#8217;s too complicated, that may not be a good value proposition for the business; so you just have to live with it, and fix other issues when and if they come up.</p>
<p>Disagree slightly with point 4: do mention what the bug is, a one-liner description of the symptom or cause of the bug. This helps hugely in reviewing change logs looking for breaking changes in a team environment &#8211; a bug number or other cross-reference means you have to open up a separate data silo and hugely slows down what should be 3-second a visual scan.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Null</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-4</link>
		<dc:creator>Null</dc:creator>
		<pubDate>Tue, 08 Sep 2009 02:43:41 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-4</guid>
		<description>You forgot: What test cases are there to test your fix against?</description>
		<content:encoded><![CDATA[<p>You forgot: What test cases are there to test your fix against?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: mehblah</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-3</link>
		<dc:creator>mehblah</dc:creator>
		<pubDate>Mon, 07 Sep 2009 21:56:13 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-3</guid>
		<description>You missed the most important point to consider when dealing with badly written systems and BEFORE fixing the bug.

Is anything else dependent on the bug?</description>
		<content:encoded><![CDATA[<p>You missed the most important point to consider when dealing with badly written systems and BEFORE fixing the bug.</p>
<p>Is anything else dependent on the bug?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Luke Plant</title>
		<link>http://www.codebuddy.co.uk/4-things-to-consider-when-fixing-a-bug/comment-page-1/#comment-2</link>
		<dc:creator>Luke Plant</dc:creator>
		<pubDate>Mon, 07 Sep 2009 18:34:20 +0000</pubDate>
		<guid isPermaLink="false">http://codebuddy.wordpress.com/?p=10#comment-2</guid>
		<description>Similar to #2, but deeper: *why* did this bug occur in the first place, and can I stop *similar* bugs from ever occurring in future?

For example, is there an API which is hard to use correctly and needs to be avoided/wrapped/changed?  In a web app, I shouldn&#039;t really be fixing SQL injection or XSS, I should be designing my system so that by default they are impossible.

Or if it is a logic bug, and I wrote it, does it belong to a class of things I routinely get wrong e.g. out-by-one errors?  If so, how can I fix the way I think so it doesn&#039;t happen again?</description>
		<content:encoded><![CDATA[<p>Similar to #2, but deeper: *why* did this bug occur in the first place, and can I stop *similar* bugs from ever occurring in future?</p>
<p>For example, is there an API which is hard to use correctly and needs to be avoided/wrapped/changed?  In a web app, I shouldn&#8217;t really be fixing SQL injection or XSS, I should be designing my system so that by default they are impossible.</p>
<p>Or if it is a logic bug, and I wrote it, does it belong to a class of things I routinely get wrong e.g. out-by-one errors?  If so, how can I fix the way I think so it doesn&#8217;t happen again?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

