<?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 Importance of First Impressions:  How Theatre Criticism Might Inform Peer Code Review</title>
	<atom:link href="http://mikeconley.ca/blog/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/feed/" rel="self" type="application/rss+xml" />
	<link>http://mikeconley.ca/blog/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/</link>
	<description>The personal blog of a Toronto based graduate student, software developer, musician, and theatre enthusiast.</description>
	<lastBuildDate>Tue, 07 Sep 2010 19:52:55 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Greg Wilson</title>
		<link>http://mikeconley.ca/blog/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/comment-page-1/#comment-863</link>
		<dc:creator>Greg Wilson</dc:creator>
		<pubDate>Fri, 12 Feb 2010 18:54:19 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=1004#comment-863</guid>
		<description>I think there&#039;s a thesis in there :-)</description>
		<content:encoded><![CDATA[<p>I think there&#8217;s a thesis in there <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/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/comment-page-1/#comment-827</link>
		<dc:creator>Jesse Gibbs</dc:creator>
		<pubDate>Tue, 09 Feb 2010 03:18:36 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=1004#comment-827</guid>
		<description>Very interesting ideas and discussion here.  I think there are two possible experiments you could do here to judge the impact on code quality:

1. As you mentioned, the impact of &#039;reviewer influence&#039; upon one another.  I&#039;ve found that in any creative endeavor, the feedback you get from a given person will often change depending on whether they know what another person thinks.  It probably has a lot to do with our inate sense of &#039;role&#039; or &#039;hierarchy&#039; within a social group:  If a person of strong standing has expressed a certain opinion, then many people are going to be hesitant to express an opposing viewpoint.

2. WRT &#039;Reviewee preparation&#039; another interesting experiment might be to have reviews performed at random vs. reviews performed based on certain criteria.  If a developer knows that any given changeset might be subject to review, as opposed to only changesets which meet some deterministic criteria, will that affect the overall code quality?  I would suspect that if developers knew that some randomly selected subset of their commits were going to be subjected to a thorough review (I can&#039;t help but think of airport screening as an analogous example), they might be more careful in reviewing all of their commits.</description>
		<content:encoded><![CDATA[<p>Very interesting ideas and discussion here.  I think there are two possible experiments you could do here to judge the impact on code quality:</p>
<p>1. As you mentioned, the impact of &#8216;reviewer influence&#8217; upon one another.  I&#8217;ve found that in any creative endeavor, the feedback you get from a given person will often change depending on whether they know what another person thinks.  It probably has a lot to do with our inate sense of &#8216;role&#8217; or &#8216;hierarchy&#8217; within a social group:  If a person of strong standing has expressed a certain opinion, then many people are going to be hesitant to express an opposing viewpoint.</p>
<p>2. WRT &#8216;Reviewee preparation&#8217; another interesting experiment might be to have reviews performed at random vs. reviews performed based on certain criteria.  If a developer knows that any given changeset might be subject to review, as opposed to only changesets which meet some deterministic criteria, will that affect the overall code quality?  I would suspect that if developers knew that some randomly selected subset of their commits were going to be subjected to a thorough review (I can&#8217;t help but think of airport screening as an analogous example), they might be more careful in reviewing all of their commits.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Cohen</title>
		<link>http://mikeconley.ca/blog/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/comment-page-1/#comment-822</link>
		<dc:creator>Jason Cohen</dc:creator>
		<pubDate>Tue, 09 Feb 2010 01:26:10 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=1004#comment-822</guid>
		<description>Awesome analysis, and I completely agree that a proper experiment of this point would be invaluable, and that the original data here wasn&#039;t experimental at all.

In fact, I think the (self-)selection bias you mention might even be the entire story -- more thoughtful developers will probably want to discuss their code.

However there&#039;s one thing I think you should add to your experiment.  It&#039;s not enough to measure whether there&#039;s a &quot;drop&quot; in defects, because it&#039;s likely with multiple reviewers to simply find *different* defects.  So I think you want to measure specifically WHICH defects each group found rather than the NUMBER of defects, and furthermore if you do want to summarize you should include things like defect severity.

This suggestion comes from experience -- in the Cisco study we didn&#039;t measure either of these things and in retrospect it really hampered our ability to make conclusions!

Let me know when you do this study!</description>
		<content:encoded><![CDATA[<p>Awesome analysis, and I completely agree that a proper experiment of this point would be invaluable, and that the original data here wasn&#8217;t experimental at all.</p>
<p>In fact, I think the (self-)selection bias you mention might even be the entire story &#8212; more thoughtful developers will probably want to discuss their code.</p>
<p>However there&#8217;s one thing I think you should add to your experiment.  It&#8217;s not enough to measure whether there&#8217;s a &#8220;drop&#8221; in defects, because it&#8217;s likely with multiple reviewers to simply find *different* defects.  So I think you want to measure specifically WHICH defects each group found rather than the NUMBER of defects, and furthermore if you do want to summarize you should include things like defect severity.</p>
<p>This suggestion comes from experience &#8212; in the Cisco study we didn&#8217;t measure either of these things and in retrospect it really hampered our ability to make conclusions!</p>
<p>Let me know when you do this study!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mike</title>
		<link>http://mikeconley.ca/blog/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/comment-page-1/#comment-819</link>
		<dc:creator>Mike</dc:creator>
		<pubDate>Mon, 08 Feb 2010 22:29:43 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=1004#comment-819</guid>
		<description>@Gregg:  

Thanks for the input!

RE 1:  True - I may have over-simplified in my post.  You&#039;re right:  I&#039;ll have to pay attention to what exactly the authors are saying when they&#039;re preparing their code, and *how exactly* the reviews are reacting to it.

RE 3:  True, those tools can help. Inspection rate, defect density and defect rate are a decent start, but they only tell me so much.  I want more.  I want to know *where* my reviewers looked.  I want fine granularity.  I don&#039;t just want to know how long they spent looking at a particular file - I want to know how long they spent looking at a particular method.  I want to know how long they spent looking at an area of code that&#039;s already been heavily reviewed.  I want to know how long they spent looking at an area of code that nobody has said a word about.  I want a heat map showing how much each area of the code has been looked at.

In short, I want a lot. ;)</description>
		<content:encoded><![CDATA[<p>@Gregg:  </p>
<p>Thanks for the input!</p>
<p>RE 1:  True &#8211; I may have over-simplified in my post.  You&#8217;re right:  I&#8217;ll have to pay attention to what exactly the authors are saying when they&#8217;re preparing their code, and *how exactly* the reviews are reacting to it.</p>
<p>RE 3:  True, those tools can help. Inspection rate, defect density and defect rate are a decent start, but they only tell me so much.  I want more.  I want to know *where* my reviewers looked.  I want fine granularity.  I don&#8217;t just want to know how long they spent looking at a particular file &#8211; I want to know how long they spent looking at a particular method.  I want to know how long they spent looking at an area of code that&#8217;s already been heavily reviewed.  I want to know how long they spent looking at an area of code that nobody has said a word about.  I want a heat map showing how much each area of the code has been looked at.</p>
<p>In short, I want a lot. <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/2010/02/07/the-importance-of-first-impressions-how-theatre-criticism-migh-inform-peer-code-review/comment-page-1/#comment-809</link>
		<dc:creator>Gregg Sporar</dc:creator>
		<pubDate>Mon, 08 Feb 2010 00:02:26 +0000</pubDate>
		<guid isPermaLink="false">http://mikeconley.ca/blog/?p=1004#comment-809</guid>
		<description>Very interesting stuff!  A few thoughts:

1. There are really two different things going on with respect to author preparation: a.) what did the author write and b.) how did the reviewers react?  When I am the author of a code review I tend to provide the back story and *not* information about the actual implementation.  Example: I&#039;m not much of a PHP wizard, yet I maintain a web site written by someone else in PHP.  When I have to go learn a PHP idiom in order to enhance the site, in the resulting code review I&#039;ll annotate the idiom with a comment that indicates &quot;Based on what I&#039;ve seen in the PHP docs and at site  this is the correct approach - let me know if I&#039;m way off track.&quot;

Does that prejudice the reviewer?  Perhaps, but only in the direction of: &quot;This guy is new to this part of PHP, we need to tread carefully here.&quot;

Even if I were to annotate with comments such as: &quot;The method I&#039;m calling here expects a hash map of this type,&quot; the reaction of the reviewer is what matters.  If the reviewer thinks: &quot;Oh, okay, no problem&quot; then that&#039;s a very different end result than: &quot;I&#039;m not gonna&#039; trust this guy - I&#039;m going to go read the method that is being called.&quot;

2. Your next logical step, that reviewers prejudice each other, is also a possibility, but again to me it depends on the people involved.  An additional factor, I suppose, is also the time pressure.  I can see how it would be likely for a reviewer to say: &quot;Looks like Joe covered this pretty thoroughly, I&#039;m short on time so I&#039;m gonna&#039; skim instead of really review.&quot;  

3. Tools can help.  If some of the reviewers are slackin&#039; off, a tool that tracks the amount of time they spent in the review will help point that out.

As Jason pointed out: he didn&#039;t set out to study the impact of author preparation, so a controlled experiment would be awesome.  Can&#039;t wait to read your results!</description>
		<content:encoded><![CDATA[<p>Very interesting stuff!  A few thoughts:</p>
<p>1. There are really two different things going on with respect to author preparation: a.) what did the author write and b.) how did the reviewers react?  When I am the author of a code review I tend to provide the back story and *not* information about the actual implementation.  Example: I&#8217;m not much of a PHP wizard, yet I maintain a web site written by someone else in PHP.  When I have to go learn a PHP idiom in order to enhance the site, in the resulting code review I&#8217;ll annotate the idiom with a comment that indicates &#8220;Based on what I&#8217;ve seen in the PHP docs and at site  this is the correct approach &#8211; let me know if I&#8217;m way off track.&#8221;</p>
<p>Does that prejudice the reviewer?  Perhaps, but only in the direction of: &#8220;This guy is new to this part of PHP, we need to tread carefully here.&#8221;</p>
<p>Even if I were to annotate with comments such as: &#8220;The method I&#8217;m calling here expects a hash map of this type,&#8221; the reaction of the reviewer is what matters.  If the reviewer thinks: &#8220;Oh, okay, no problem&#8221; then that&#8217;s a very different end result than: &#8220;I&#8217;m not gonna&#8217; trust this guy &#8211; I&#8217;m going to go read the method that is being called.&#8221;</p>
<p>2. Your next logical step, that reviewers prejudice each other, is also a possibility, but again to me it depends on the people involved.  An additional factor, I suppose, is also the time pressure.  I can see how it would be likely for a reviewer to say: &#8220;Looks like Joe covered this pretty thoroughly, I&#8217;m short on time so I&#8217;m gonna&#8217; skim instead of really review.&#8221;  </p>
<p>3. Tools can help.  If some of the reviewers are slackin&#8217; off, a tool that tracks the amount of time they spent in the review will help point that out.</p>
<p>As Jason pointed out: he didn&#8217;t set out to study the impact of author preparation, so a controlled experiment would be awesome.  Can&#8217;t wait to read your results!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
