<?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: Peer Code Reviews: How Did We Do?</title>
	<atom:link href="http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/feed/" rel="self" type="application/rss+xml" />
	<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/</link>
	<description>Take what you want, and leave the rest (just like your salad bar).</description>
	<lastBuildDate>Mon, 06 Feb 2012 03:15:56 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Bryn</title>
		<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/#comment-641</link>
		<dc:creator>Bryn</dc:creator>
		<pubDate>Wed, 25 Aug 2010 23:42:30 +0000</pubDate>
		<guid isPermaLink="false">http://scottbilas.com/2009/08/26/peer-code-reviews-how-did-we-do/#comment-641</guid>
		<description>I really appreciate you sharing your experiences with finding a system that works.  We&#039;re in the process now of trying to get a code-review system up and running and I expect there will be a few bumps in the road before we find something that works and that everyone&#039;s happy with.

One thing I found interesting was the idea of doing code-review pre-checkin, and your reasoning makes sense.  Unfortunately I think it would be a hard-sell here.  We&#039;re slowly adopting an &quot;agile&quot; programming style, which means constantly checking in code which is tested on an almost daily basis by people within the company.  Our software lead is adamant that all developers review all code, so requiring that step be done pre-checkin would hold things up an unacceptable amount I think.  The idea - at present - is to complete an agile &quot;story&quot;, have it checked in and tested by Q.A., and at the same time do a code review.

That being said, this is all new to us.  Just like your &quot;first attempts&quot;, we may give it a go and find it just doesn&#039;t work at all.  But being able to see what your company have done and how you&#039;ve adapted over time is greatly helpful!  Thanks!</description>
		<content:encoded><![CDATA[<p>I really appreciate you sharing your experiences with finding a system that works.  We&#8217;re in the process now of trying to get a code-review system up and running and I expect there will be a few bumps in the road before we find something that works and that everyone&#8217;s happy with.</p>
<p>One thing I found interesting was the idea of doing code-review pre-checkin, and your reasoning makes sense.  Unfortunately I think it would be a hard-sell here.  We&#8217;re slowly adopting an &#8220;agile&#8221; programming style, which means constantly checking in code which is tested on an almost daily basis by people within the company.  Our software lead is adamant that all developers review all code, so requiring that step be done pre-checkin would hold things up an unacceptable amount I think.  The idea &#8211; at present &#8211; is to complete an agile &#8220;story&#8221;, have it checked in and tested by Q.A., and at the same time do a code review.</p>
<p>That being said, this is all new to us.  Just like your &#8220;first attempts&#8221;, we may give it a go and find it just doesn&#8217;t work at all.  But being able to see what your company have done and how you&#8217;ve adapted over time is greatly helpful!  Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/#comment-538</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Mon, 21 Jun 2010 18:47:58 +0000</pubDate>
		<guid isPermaLink="false">http://scottbilas.com/2009/08/26/peer-code-reviews-how-did-we-do/#comment-538</guid>
		<description>Thanks for the reply and for taking the time to answer my questions -- I appreciate it :)

Cheers,
-Mark</description>
		<content:encoded><![CDATA[<p>Thanks for the reply and for taking the time to answer my questions &#8212; I appreciate it <img src='http://scottbilas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Cheers,<br />
-Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/#comment-537</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Mon, 21 Jun 2010 02:53:35 +0000</pubDate>
		<guid isPermaLink="false">http://scottbilas.com/2009/08/26/peer-code-reviews-how-did-we-do/#comment-537</guid>
		<description>Wow, I really let this comment sit without a reply for a long time. I&#039;m sorry about that.

So, moving to a pre-commit review system is a tough sell, especially as the team size grows. My current studio is pretty big and I wouldn&#039;t even consider rolling it out to the full team. I&#039;d propose it just on a very small scale, just within my immediate group, then grow it from there with some evangelism.

But I don&#039;t think we&#039;ll ever really be able to let go of the frustration with &quot;I know this works and I want to check it in now so Bob can use it&quot; yet having to do a review before checkin. I think this frustration is actually a good thing, though. It keeps the machine moving with little nags.

Regarding granularity - we reviewed every changelist, required before checking in. Sometimes with emergency fixes someone would check in and we&#039;d do a post-review while the build was running or whatever but that was rare. I occasionally ran an audit to make sure of this (just a script that made sure every changelist description had a review link in it).

Over time I tried to encourage people to break up their changelists into functional, atomic packets. Instead of a giant 30-file feature change, a few smaller ones broken down into core lib changes, service changes, and feature change is better. It&#039;s better for post-hoc diagnosis of problems down the road, and it&#039;s better for review discussion.

Sometimes we&#039;d still have a giant changelist but have it broken into several separate reviews just for reviewer convenience. While that checkin to P4 must be atomic, so you do not break the build, the review service doesn&#039;t have that requirement. So I would often break out the reviews I created into &quot;trivial crap you can probably skim&quot;, &quot;ok here&#039;s the real change&quot;, and (sometimes) &quot;pay careful attention to this stuff&quot;.

We could end up with reviews of any size, though they were typically in the &lt;5 file range if I remember right. Sometimes it would be a one-line change, and sometimes it would be a new system created over a week or two. Obviously the stage in development would affect this.

As we started our next project, I experimented a bit with no-checkin reviews to get early feedback on new systems. So: just create a review with the headers and some key cpp files, and send it around to the affected parties to see what they think. So, using it as a discussion tool, with no intention of checking anything in.

But when it comes to really big monolithic checkins of &quot;here&#039;s my new system, all done!&quot; that is going to happen on occasion, then that&#039;s only going to work by starting with a sit-down review for the lay of the land, leading to offline for the more detailed review work, with followup as you go, either in IM or in person. Or by writing up questions in comments and having a dialogue in there.

How did this affect the process? Well, obviously it slowed it down, but again I think that&#039;s a good thing. Nobody should be in a hurry to check in a massive changelist with confidence. We varied a lot in our return time on reviews, but typically it was no more than half a day, probably two days at worst if the change was huge, had a lot of comments, and the reviewers were slammed with their own work. There were problems on occasion but overall the timing worked out well enough. I also think people have a responsibility to be able to work on multiple things at once, using multiple source control clients. Engineers shouldn&#039;t work in serial. There&#039;s just too much we always have to do. So nobody should ever be blocked. And I don&#039;t think I saw it happen at all at my last gig.

Performing lots of small reviews was really no more overhead than a larger batched review. Just a couple more clicks. I actually liked smaller reviews better because they more clearly separated the changes from each other. And everyone gets more of a sense of accomplishment as they check off reviews. Feels like real forward progress to check those boxes. Though obviously I wouldn&#039;t use any of these counts for any kind of employee performance metrics. :)

And finally, regarding code review guidelines of time spent, we didn&#039;t do anything like this. Our informal standard was just &quot;do a good job&quot;. We clearly had different review styles. I got a reputation for spending a lot more time on tiny details than others, for example. That&#039;s why we want to spread the load around, and why I made the tool choose someone at random by default on review creation. Everyone&#039;s going to look for and catch different things, and while an individual review won&#039;t get total coverage, over time we will get it, due to the overlap among all the reviewers.</description>
		<content:encoded><![CDATA[<p>Wow, I really let this comment sit without a reply for a long time. I&#8217;m sorry about that.</p>
<p>So, moving to a pre-commit review system is a tough sell, especially as the team size grows. My current studio is pretty big and I wouldn&#8217;t even consider rolling it out to the full team. I&#8217;d propose it just on a very small scale, just within my immediate group, then grow it from there with some evangelism.</p>
<p>But I don&#8217;t think we&#8217;ll ever really be able to let go of the frustration with &#8220;I know this works and I want to check it in now so Bob can use it&#8221; yet having to do a review before checkin. I think this frustration is actually a good thing, though. It keeps the machine moving with little nags.</p>
<p>Regarding granularity &#8211; we reviewed every changelist, required before checking in. Sometimes with emergency fixes someone would check in and we&#8217;d do a post-review while the build was running or whatever but that was rare. I occasionally ran an audit to make sure of this (just a script that made sure every changelist description had a review link in it).</p>
<p>Over time I tried to encourage people to break up their changelists into functional, atomic packets. Instead of a giant 30-file feature change, a few smaller ones broken down into core lib changes, service changes, and feature change is better. It&#8217;s better for post-hoc diagnosis of problems down the road, and it&#8217;s better for review discussion.</p>
<p>Sometimes we&#8217;d still have a giant changelist but have it broken into several separate reviews just for reviewer convenience. While that checkin to P4 must be atomic, so you do not break the build, the review service doesn&#8217;t have that requirement. So I would often break out the reviews I created into &#8220;trivial crap you can probably skim&#8221;, &#8220;ok here&#8217;s the real change&#8221;, and (sometimes) &#8220;pay careful attention to this stuff&#8221;.</p>
<p>We could end up with reviews of any size, though they were typically in the &lt;5 file range if I remember right. Sometimes it would be a one-line change, and sometimes it would be a new system created over a week or two. Obviously the stage in development would affect this.</p>
<p>As we started our next project, I experimented a bit with no-checkin reviews to get early feedback on new systems. So: just create a review with the headers and some key cpp files, and send it around to the affected parties to see what they think. So, using it as a discussion tool, with no intention of checking anything in.</p>
<p>But when it comes to really big monolithic checkins of &#8220;here&#8217;s my new system, all done!&#8221; that is going to happen on occasion, then that&#8217;s only going to work by starting with a sit-down review for the lay of the land, leading to offline for the more detailed review work, with followup as you go, either in IM or in person. Or by writing up questions in comments and having a dialogue in there.</p>
<p>How did this affect the process? Well, obviously it slowed it down, but again I think that&#8217;s a good thing. Nobody should be in a hurry to check in a massive changelist with confidence. We varied a lot in our return time on reviews, but typically it was no more than half a day, probably two days at worst if the change was huge, had a lot of comments, and the reviewers were slammed with their own work. There were problems on occasion but overall the timing worked out well enough. I also think people have a responsibility to be able to work on multiple things at once, using multiple source control clients. Engineers shouldn&#8217;t work in serial. There&#8217;s just too much we always have to do. So nobody should ever be blocked. And I don&#8217;t think I saw it happen at all at my last gig.</p>
<p>Performing lots of small reviews was really no more overhead than a larger batched review. Just a couple more clicks. I actually liked smaller reviews better because they more clearly separated the changes from each other. And everyone gets more of a sense of accomplishment as they check off reviews. Feels like real forward progress to check those boxes. Though obviously I wouldn&#8217;t use any of these counts for any kind of employee performance metrics. <img src='http://scottbilas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>And finally, regarding code review guidelines of time spent, we didn&#8217;t do anything like this. Our informal standard was just &#8220;do a good job&#8221;. We clearly had different review styles. I got a reputation for spending a lot more time on tiny details than others, for example. That&#8217;s why we want to spread the load around, and why I made the tool choose someone at random by default on review creation. Everyone&#8217;s going to look for and catch different things, and while an individual review won&#8217;t get total coverage, over time we will get it, due to the overlap among all the reviewers.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mark</title>
		<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/#comment-509</link>
		<dc:creator>Mark</dc:creator>
		<pubDate>Wed, 26 May 2010 00:11:45 +0000</pubDate>
		<guid isPermaLink="false">http://scottbilas.com/2009/08/26/peer-code-reviews-how-did-we-do/#comment-509</guid>
		<description>Regarding face to face versus &#039;offline&#039; reviews:

We do face to face check in &#039;buddying&#039; (all changes in a CL must be described/explained to a fellow programmer prior to a P4 submission) and it&#039;s sort of a half-way house between no / a full review.  It&#039;s effective for picking up simple mistakes/omissions/oversights but that&#039;s often where it ends.  

When sitting down and reviewing a change list, folk usually point out things like: 

* &quot;you&#039;ve duplicated functionality that already exists in one of our other libs&quot; 

* &quot;extract this into a sub-method and get rid of the duplicate logic&quot; 

* &quot;Change this magic number to a well named const&quot; 

These typically come under the umbrella of code cleanliness and common conventions.  If someone stacks up a lot of changes I am more inclined to read their code more thoroughly before putting my name to it, but it&#039;s tough to buddy each and every change list with a high level of scrutiny, especially when a deep discussion can take hours and energy levels start flagging.  

Some people are very good at being stringent in buddying situations (I&#039;m always grateful when someone &#039;calls bullshit&#039; on my stuff), whereas others just want to quickly muddle through it and get on with their work.  

Personality types come into play; for some, the to and fro&#039;ing of buddying feels more like a sparring session than a useful exercise and it can become a style/opinion stalemate.  For those reason, we usually keep the buddy process pretty light -- I don&#039;t think scaling it up any more would work.

When reviewing is done separately (or &#039;offline&#039;, whatever you want to call it) with multiple reviewers, it gives a good mix of programmers (from different groups, abilities, specialities etc.) time to think (I view this as &#039;catching the stuff the buddy missed&#039;).  It also helps the less vocal (or more vocal :)) members of the group participate without butting heads mano-a-mano.    

Formal code reviews (which &#039;offline&#039; reviews most closely resemble) also have a lot of published studies backing them up.  Numerous studies have shown that code reviews are more effective than any of manual/unit/integration/functional testing for finding defects.  There is also a strong correlation between lines of code read per hour and the number of defects found.  If you read too quickly, you find fewer bugs.  If you read for a small amount of time, you find less bugs than if you read for a larger amount.  If you read the code for too long, you reach a point of diminishing returns.  

In my opinion, you cannot realistically review code on someone&#039;s screen while simultaneously talking to them and find defects in the same way -- everyone moves at a different pace and the atmosphere is totally different.  In a one to one discussion, it&#039;s easier to derail the discussion or become fixated with specific aspects.  

My only concern with our review system is that it happens after the changes go in, but I&#039;m not sure that we can move to a thorough pre-checkin review.  As Scott said, once it&#039;s in, it&#039;s in.  Prevention is better than the cure, and once code is checked in and used, it hardens much more quickly and sucks up a lot more time than the writing phase ever consumed.  E.g. someone ninja&#039;ed some rebadged legacy code into a common namespace (probably a bad merge or a misunderstanding) and, before it was picked up, it&#039;d already hit our main branch and been used by various people!  Small change, lots of knock-on effects.

Out of interest, what sort of granularity were the change lists you guys were reviewing?  Are we talking daily change sets containing a handful of files with minor changes, or entire features that took a week to create?  

If you had wildly varying sizes of change lists to check over, how did you find it affected the process?  E.g. did folk get blocked while waiting to check in an important (large-ish) feature for a day or two while key reviewers were busy?  If the changelists were small and frequent, did the overhead of performing numerous small reviews cause any hassle?

Finally, did you have any code review guidelines in terms of how long you should spend on x lines of code, or how to pay more or less attention to a change list?

Sorry for the long reply, but this post piqued my interest.

Cheers,
-Mark</description>
		<content:encoded><![CDATA[<p>Regarding face to face versus &#8216;offline&#8217; reviews:</p>
<p>We do face to face check in &#8216;buddying&#8217; (all changes in a CL must be described/explained to a fellow programmer prior to a P4 submission) and it&#8217;s sort of a half-way house between no / a full review.  It&#8217;s effective for picking up simple mistakes/omissions/oversights but that&#8217;s often where it ends.  </p>
<p>When sitting down and reviewing a change list, folk usually point out things like: </p>
<p>* &#8220;you&#8217;ve duplicated functionality that already exists in one of our other libs&#8221; </p>
<p>* &#8220;extract this into a sub-method and get rid of the duplicate logic&#8221; </p>
<p>* &#8220;Change this magic number to a well named const&#8221; </p>
<p>These typically come under the umbrella of code cleanliness and common conventions.  If someone stacks up a lot of changes I am more inclined to read their code more thoroughly before putting my name to it, but it&#8217;s tough to buddy each and every change list with a high level of scrutiny, especially when a deep discussion can take hours and energy levels start flagging.  </p>
<p>Some people are very good at being stringent in buddying situations (I&#8217;m always grateful when someone &#8216;calls bullshit&#8217; on my stuff), whereas others just want to quickly muddle through it and get on with their work.  </p>
<p>Personality types come into play; for some, the to and fro&#8217;ing of buddying feels more like a sparring session than a useful exercise and it can become a style/opinion stalemate.  For those reason, we usually keep the buddy process pretty light &#8212; I don&#8217;t think scaling it up any more would work.</p>
<p>When reviewing is done separately (or &#8216;offline&#8217;, whatever you want to call it) with multiple reviewers, it gives a good mix of programmers (from different groups, abilities, specialities etc.) time to think (I view this as &#8216;catching the stuff the buddy missed&#8217;).  It also helps the less vocal (or more vocal <img src='http://scottbilas.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> ) members of the group participate without butting heads mano-a-mano.    </p>
<p>Formal code reviews (which &#8216;offline&#8217; reviews most closely resemble) also have a lot of published studies backing them up.  Numerous studies have shown that code reviews are more effective than any of manual/unit/integration/functional testing for finding defects.  There is also a strong correlation between lines of code read per hour and the number of defects found.  If you read too quickly, you find fewer bugs.  If you read for a small amount of time, you find less bugs than if you read for a larger amount.  If you read the code for too long, you reach a point of diminishing returns.  </p>
<p>In my opinion, you cannot realistically review code on someone&#8217;s screen while simultaneously talking to them and find defects in the same way &#8212; everyone moves at a different pace and the atmosphere is totally different.  In a one to one discussion, it&#8217;s easier to derail the discussion or become fixated with specific aspects.  </p>
<p>My only concern with our review system is that it happens after the changes go in, but I&#8217;m not sure that we can move to a thorough pre-checkin review.  As Scott said, once it&#8217;s in, it&#8217;s in.  Prevention is better than the cure, and once code is checked in and used, it hardens much more quickly and sucks up a lot more time than the writing phase ever consumed.  E.g. someone ninja&#8217;ed some rebadged legacy code into a common namespace (probably a bad merge or a misunderstanding) and, before it was picked up, it&#8217;d already hit our main branch and been used by various people!  Small change, lots of knock-on effects.</p>
<p>Out of interest, what sort of granularity were the change lists you guys were reviewing?  Are we talking daily change sets containing a handful of files with minor changes, or entire features that took a week to create?  </p>
<p>If you had wildly varying sizes of change lists to check over, how did you find it affected the process?  E.g. did folk get blocked while waiting to check in an important (large-ish) feature for a day or two while key reviewers were busy?  If the changelists were small and frequent, did the overhead of performing numerous small reviews cause any hassle?</p>
<p>Finally, did you have any code review guidelines in terms of how long you should spend on x lines of code, or how to pay more or less attention to a change list?</p>
<p>Sorry for the long reply, but this post piqued my interest.</p>
<p>Cheers,<br />
-Mark</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott</title>
		<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/#comment-274</link>
		<dc:creator>Scott</dc:creator>
		<pubDate>Thu, 10 Sep 2009 17:46:53 +0000</pubDate>
		<guid isPermaLink="false">http://scottbilas.com/2009/08/26/peer-code-reviews-how-did-we-do/#comment-274</guid>
		<description>I thought I covered pretty well why using a tool was generally superior to face-to-face for us. But I can talk about a few points you bring up.

Limiting to one reviewer is a problem. We frequently include more than that on reviews. Getting that to work in person is just too hard.

Cliques can&#039;t be legislated away. People are people and they&#039;re going to do what is most convenient. Yeah, we&#039;re all professionals, but when you come right down to it, you can&#039;t make rules to govern social relationships. In addition, I just can&#039;t get past the problem of synchronizing schedules and mental spaces. Only by using a tool and permitting asynchronous, offline reviews can you run the &quot;80% case&quot; (mostly simple reviews) efficiently.

We of course use face-to-face reviews for the big stuff. Though we still use a review to at least track the questions that came up in order to do the face-to-face review.

As for documentation, &quot;writing a simple summary&quot; is just not going to work, nor will it be anywhere near complete. Engineers aren&#039;t going to do that reliably or consistently. It will be the first thing to fall away when we get busy and never get picked up again. The documentation must be a core part of the process or it will just feel like a waste of time. Which means it will get done poorly and incompletely. Having it all in the tool to begin with guarantees that you have 100% of the comments documented.</description>
		<content:encoded><![CDATA[<p>I thought I covered pretty well why using a tool was generally superior to face-to-face for us. But I can talk about a few points you bring up.</p>
<p>Limiting to one reviewer is a problem. We frequently include more than that on reviews. Getting that to work in person is just too hard.</p>
<p>Cliques can&#8217;t be legislated away. People are people and they&#8217;re going to do what is most convenient. Yeah, we&#8217;re all professionals, but when you come right down to it, you can&#8217;t make rules to govern social relationships. In addition, I just can&#8217;t get past the problem of synchronizing schedules and mental spaces. Only by using a tool and permitting asynchronous, offline reviews can you run the &#8220;80% case&#8221; (mostly simple reviews) efficiently.</p>
<p>We of course use face-to-face reviews for the big stuff. Though we still use a review to at least track the questions that came up in order to do the face-to-face review.</p>
<p>As for documentation, &#8220;writing a simple summary&#8221; is just not going to work, nor will it be anywhere near complete. Engineers aren&#8217;t going to do that reliably or consistently. It will be the first thing to fall away when we get busy and never get picked up again. The documentation must be a core part of the process or it will just feel like a waste of time. Which means it will get done poorly and incompletely. Having it all in the tool to begin with guarantees that you have 100% of the comments documented.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jason Chionh</title>
		<link>http://scottbilas.com/blog/peer-code-reviews-how-did-we-do/#comment-272</link>
		<dc:creator>Jason Chionh</dc:creator>
		<pubDate>Fri, 04 Sep 2009 07:32:37 +0000</pubDate>
		<guid isPermaLink="false">http://scottbilas.com/2009/08/26/peer-code-reviews-how-did-we-do/#comment-272</guid>
		<description>Just wondering what is the reason for moving the code review process into the virtual world with Crucible?

I would think that a code review face to face, 2 engineers staring at the same screen talking to each other would be better simply because of the face to face communication going on.

If it was because cliques were forming like your wrote about in the post, then could you not just tell the engineer to make sure dont&#039; always grab the same person for the review?

The advantage I see in doing the code review offline is that the review is documented and can be referred back again in future. But this could be addressed by writing a simple summary for the comments in the change list before p4 check in.

We&#039;ve practiced 2 engineers to 1 screen code review I find the face to face communication during the review works really well - bugs could be found quickly, small discussions, knowledge transfer and mentoring works well in this situation.</description>
		<content:encoded><![CDATA[<p>Just wondering what is the reason for moving the code review process into the virtual world with Crucible?</p>
<p>I would think that a code review face to face, 2 engineers staring at the same screen talking to each other would be better simply because of the face to face communication going on.</p>
<p>If it was because cliques were forming like your wrote about in the post, then could you not just tell the engineer to make sure dont&#8217; always grab the same person for the review?</p>
<p>The advantage I see in doing the code review offline is that the review is documented and can be referred back again in future. But this could be addressed by writing a simple summary for the comments in the change list before p4 check in.</p>
<p>We&#8217;ve practiced 2 engineers to 1 screen code review I find the face to face communication during the review works really well &#8211; bugs could be found quickly, small discussions, knowledge transfer and mentoring works well in this situation.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

