<?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 Achilles&#8217; Heel of Light-Weight Code Review</title>
	<atom:link href="http://mikeconley.ca/blog/2009/10/08/the-achilles-heel-of-light-weight-code-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikeconley.ca/blog/2009/10/08/the-achilles-heel-of-light-weight-code-review/</link>
	<description>The personal blog of a Toronto based software developer, musician, sound designer, and theatre enthusiast.</description>
	<lastBuildDate>Fri, 11 May 2012 13:56:19 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Mike</title>
		<link>http://mikeconley.ca/blog/2009/10/08/the-achilles-heel-of-light-weight-code-review/comment-page-1/#comment-569</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Fri, 09 Oct 2009 00:31:25 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=835#comment-569</guid>
		<description>I think it&#039;s fair to say that code review is only one slice of the QA pie.  Testing would be another.

And perhaps it goes without saying that code review is good at catching particular *types* of bugs, static analysis catches another type...testing, another.

Clearly, code review is no silver bullet.  Just because you had a ton of eyes swarming over you code, and you got a &quot;ship it&quot; from your reviewers, doesn&#039;t mean you didn&#039;t introduce a bunch of new show-stopper bugs.  

So I guess my take home message is that &quot;ship it&quot; is not necessarily equal to &quot;everything is dandy&quot;.  

Just a friendly warning to fellow beginners who are just starting the code review habit.  :)</description>
		<content:encoded><![CDATA[<p>I think it&#8217;s fair to say that code review is only one slice of the QA pie.  Testing would be another.</p>
<p>And perhaps it goes without saying that code review is good at catching particular *types* of bugs, static analysis catches another type&#8230;testing, another.</p>
<p>Clearly, code review is no silver bullet.  Just because you had a ton of eyes swarming over you code, and you got a &#8220;ship it&#8221; from your reviewers, doesn&#8217;t mean you didn&#8217;t introduce a bunch of new show-stopper bugs.  </p>
<p>So I guess my take home message is that &#8220;ship it&#8221; is not necessarily equal to &#8220;everything is dandy&#8221;.  </p>
<p>Just a friendly warning to fellow beginners who are just starting the code review habit.  <img src='http://mikeconley.ca/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jesse Gibbs</title>
		<link>http://mikeconley.ca/blog/2009/10/08/the-achilles-heel-of-light-weight-code-review/comment-page-1/#comment-568</link>
		<dc:creator>Jesse Gibbs</dc:creator>
		<pubDate>Fri, 09 Oct 2009 00:15:41 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=835#comment-568</guid>
		<description>The fact that the code review didn&#039;t fix the issue doesn&#039;t indicate a failure in the code review process, but rather a failure in the overall QA process.  Code review is just one element of an effective QA effort.  Ideally you&#039;d couple it with automated testing (unit and functional), end user testing (either ad-hoc or based on test plans) and static analysis.

Another way to approach this problem is to ask &quot;Why didn&#039;t our automated testing catch this issue?&quot;  Granted, testing i18n&#039;ed apps is problematic due to the sheer volume of validations you need to make, but technically, it&#039;s not hard to automatically test that the correct string is being used at runtime.

Suppose the person writing the code hadn&#039;t mis-spelled &#039;without&#039;.  Do you think that code review should have caught the issue then?  I would much rather rely on automated tests to do that sort of mind-numbing validation ;)</description>
		<content:encoded><![CDATA[<p>The fact that the code review didn&#8217;t fix the issue doesn&#8217;t indicate a failure in the code review process, but rather a failure in the overall QA process.  Code review is just one element of an effective QA effort.  Ideally you&#8217;d couple it with automated testing (unit and functional), end user testing (either ad-hoc or based on test plans) and static analysis.</p>
<p>Another way to approach this problem is to ask &#8220;Why didn&#8217;t our automated testing catch this issue?&#8221;  Granted, testing i18n&#8217;ed apps is problematic due to the sheer volume of validations you need to make, but technically, it&#8217;s not hard to automatically test that the correct string is being used at runtime.</p>
<p>Suppose the person writing the code hadn&#8217;t mis-spelled &#8216;without&#8217;.  Do you think that code review should have caught the issue then?  I would much rather rely on automated tests to do that sort of mind-numbing validation <img src='http://mikeconley.ca/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gregg Sporar</title>
		<link>http://mikeconley.ca/blog/2009/10/08/the-achilles-heel-of-light-weight-code-review/comment-page-1/#comment-566</link>
		<dc:creator>Gregg Sporar</dc:creator>
		<pubDate>Thu, 08 Oct 2009 20:50:06 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=835#comment-566</guid>
		<description>Not to split hairs, but I don&#039;t completely agree with this part: &quot;...the diff looked good, but the bug remained...&quot;

*A* bug remained, but the bug that was detected by code review *was* fixed.

To me, there were *two* bugs, not one.  The string in the locale file was:

no_student_without_a_group_message

So there are two bugs in the code:

1. Using &quot;students&quot; instead of &quot;student&quot;

2. Using &quot;wihtou&quot; instead of &quot;without&quot;

The code review caught the second bug, but not the first.  Like I said, I&#039;m kind of splitting hairs here.  :-)

The more interesting point you raise is: &quot;isn’t it plausible that while our diffs look good, we’re not preventing ourselves from adding new bugs into the code base?&quot;

Yes, that is completely plausible.  The key is this: what does it really mean for a diff to &quot;look good&quot;? In this case, if the review does not include the locale file, then it is easy for the diff to look good.  

If you have a static analysis tool that can do the grunt work of verifying the locale files, then great!  But if not, that&#039;s a problem....

*Some* bugs can be caught by using static analysis tools, others cannot.  For those that cannot be caught by a static analysis tool, you&#039;re better off doing code review than not because at least you have an opportunity for someone to spot the problems.  Assuming, of course, that all the relevant files are included in the review.

Reviews catch bugs - reviews also miss bugs.  At the end of the day, the code review is only as thorough as the reviewers choose for it to be.</description>
		<content:encoded><![CDATA[<p>Not to split hairs, but I don&#8217;t completely agree with this part: &#8220;&#8230;the diff looked good, but the bug remained&#8230;&#8221;</p>
<p>*A* bug remained, but the bug that was detected by code review *was* fixed.</p>
<p>To me, there were *two* bugs, not one.  The string in the locale file was:</p>
<p>no_student_without_a_group_message</p>
<p>So there are two bugs in the code:</p>
<p>1. Using &#8220;students&#8221; instead of &#8220;student&#8221;</p>
<p>2. Using &#8220;wihtou&#8221; instead of &#8220;without&#8221;</p>
<p>The code review caught the second bug, but not the first.  Like I said, I&#8217;m kind of splitting hairs here.  <img src='http://mikeconley.ca/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>The more interesting point you raise is: &#8220;isn’t it plausible that while our diffs look good, we’re not preventing ourselves from adding new bugs into the code base?&#8221;</p>
<p>Yes, that is completely plausible.  The key is this: what does it really mean for a diff to &#8220;look good&#8221;? In this case, if the review does not include the locale file, then it is easy for the diff to look good.  </p>
<p>If you have a static analysis tool that can do the grunt work of verifying the locale files, then great!  But if not, that&#8217;s a problem&#8230;.</p>
<p>*Some* bugs can be caught by using static analysis tools, others cannot.  For those that cannot be caught by a static analysis tool, you&#8217;re better off doing code review than not because at least you have an opportunity for someone to spot the problems.  Assuming, of course, that all the relevant files are included in the review.</p>
<p>Reviews catch bugs &#8211; reviews also miss bugs.  At the end of the day, the code review is only as thorough as the reviewers choose for it to be.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zuzel Vera</title>
		<link>http://mikeconley.ca/blog/2009/10/08/the-achilles-heel-of-light-weight-code-review/comment-page-1/#comment-565</link>
		<dc:creator>Zuzel Vera</dc:creator>
		<pubDate>Thu, 08 Oct 2009 20:44:36 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=835#comment-565</guid>
		<description>Maybe it does. If a team uses a review tool, their members will know more about the different parts of the software (another research question). Thus they may notice possible external effects of a local change.</description>
		<content:encoded><![CDATA[<p>Maybe it does. If a team uses a review tool, their members will know more about the different parts of the software (another research question). Thus they may notice possible external effects of a local change.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

