<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Managing Product Development &#187; review</title>
	<atom:link href="http://www.jrothman.com/blog/mpd/category/review/feed" rel="self" type="application/rss+xml" />
	<link>http://www.jrothman.com/blog/mpd</link>
	<description>Management, especially good management, is hard to do. This blog is for people who want to think about how they manage people, projects, and risk.</description>
	<lastBuildDate>Thu, 24 May 2012 13:28:53 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Definitions of Peer Review, Walkthrough, Inspection</title>
		<link>http://www.jrothman.com/blog/mpd/2004/11/definitions-of-peer-review-walkthrough-inspection.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2004/11/definitions-of-peer-review-walkthrough-inspection.html#comments</comments>
		<pubDate>Wed, 17 Nov 2004 17:22:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[feedback]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8206</guid>
		<description><![CDATA[&#160; Shimin asks, What do you mean by &#8220;peer review&#8221;? Here are my definitions: Peer review. An author asks a peer to read, comment, and critique a work artifact. If the work artifact is code, the reviewer will read the &#8230; <a href="http://www.jrothman.com/blog/mpd/2004/11/definitions-of-peer-review-walkthrough-inspection.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p><a href="http://pro.enetation.co.uk/comments.php?user=johannarothman&amp;commentid=110061940793489142">Shimin asks</a>, What do you mean by &#8220;peer review&#8221;? Here are my definitions:</p>
<p><strong>Peer review</strong>. An author asks a peer to read, comment, and critique a work artifact. If the work artifact is code, the reviewer will read the code, and may even develop and run some unit tests to check that the code works as advertised.</p>
<p><strong>Walkthrough</strong>. An author presents the work artifact to others. If the work artifact is code, the author walks through the code, explaining what this pieces does, what that piece does. If the author is like me, the author trails off in the middle of a sentence and says, &#8220;Oh no, that&#8217;s not what I wanted.&#8221; Or, &#8220;There&#8217;s the problem.&#8221; :-)</p>
<p><strong>Inspection</strong>. An author requests the services of a moderator, scribe, reader/reviewers in a formal meeting. The moderator books the room, sends out the material. The reader/reviewers read the material before the meeting. During the meeting, the reader/reviewers take turns reading the work artifact out loud. The scribe takes notes of issues the reader/reviewers discovered in advance and during the meeting.</p>
<p>Let me know if you have other definitions, or other techniques that don&#8217;t fall into these categories. These techniques are useful for any work product. You may have to modify them for non-code work products.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2004/11/definitions-of-peer-review-walkthrough-inspection.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Techniques to &#8220;Catch Up&#8221;</title>
		<link>http://www.jrothman.com/blog/mpd/2004/11/techniques-to-catch-up.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2004/11/techniques-to-catch-up.html#comments</comments>
		<pubDate>Tue, 16 Nov 2004 11:23:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[testing]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8207</guid>
		<description><![CDATA[&#160; I&#8217;m reviewing my students&#8217; updated plans for their projects. One team originally wanted full unit testing on the code as it was created, but added (my paraphrase) &#8220;if the project is late, some unit testing will be acceptable.&#8221; I &#8230; <a href="http://www.jrothman.com/blog/mpd/2004/11/techniques-to-catch-up.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I&#8217;m reviewing my students&#8217; updated plans for their projects. One team originally wanted full unit testing on the code as it was created, but added (my paraphrase) &#8220;if the project is late, some unit testing will be acceptable.&#8221; I responded that the farther behind the project was, the more review and testing is required.</p>
<p>Here&#8217;s why. Projects get behind because the people don&#8217;t understand something. The more they don&#8217;t understand, the harder it is to create the product, and the more defects they introduce. This is not because the people are bad &#8212; good or bad development skills have nothing to do with it. This is a function of not clearly seeing what the system is supposed to be. If you find your project is behind, consider these options to help people see the system clearly:</p>
<ul>
<li>Hold peer reviews on every work artifact. I prefer reviews, not walkthroughs, but anything to put at least one more pair of eyes on the product is good.</li>
<li>Inspect every defect fix. Yes, I do mean formal inspection, where someone reads the fix out loud.</li>
<li>Full unit testing on every piece of code. The developer will understand his or her code when trying to test it</li>
<li>NIghtly builds (more often if it makes sense). The faster the feedback to the developers about potential problems in their code, the faster you can decide what to do about the problem.</li>
<li>Implement by slice. Instead of implementing the components of a system, implement just enough of a component to complete a given feature or use case. In my opinion, Big-Design-Up-Front doesnt&#8217; work very well because the developers and architects don&#8217;t actually understand what they&#8217;re doing. This is not a competence thing :-); it&#8217;s an artifact of us as an industry not being able to fully articulate the requirements.</li>
</ul>
<p>Some of you may be shaking your heads, thinking, &#8220;No, this will put the project farther behind.&#8221; Nope, it won&#8217;t. Instead of the illusion of progress, you&#8217;ll see the real progress. Reviews of healthy code speeds up the project in my experience. Reviews of sick and tired code reveals the work still remaining.</p>
<p>The problem is you won&#8217;t catch up. But you won&#8217;t lose any more time &#8212; not without knowing you&#8217;re losing time.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2004/11/techniques-to-catch-up.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Eyes are Better Than Two</title>
		<link>http://www.jrothman.com/blog/mpd/2003/03/more-eyes-are-better-than-two.html</link>
		<comments>http://www.jrothman.com/blog/mpd/2003/03/more-eyes-are-better-than-two.html#comments</comments>
		<pubDate>Wed, 19 Mar 2003 15:25:00 +0000</pubDate>
		<dc:creator>Johanna</dc:creator>
				<category><![CDATA[review]]></category>
		<category><![CDATA[feedback]]></category>
		<category><![CDATA[pairing]]></category>

		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8375</guid>
		<description><![CDATA[&#160; I seem to have a vision theme happening this week :-) How many kinds of review do you perform on your project&#8217;s work products? Especially with software projects, it makes sense to review interim work products, so you have &#8230; <a href="http://www.jrothman.com/blog/mpd/2003/03/more-eyes-are-better-than-two.html">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>&nbsp;</p>
<p>I seem to have a vision theme happening this week :-)</p>
<p>How many kinds of review do you perform on your project&#8217;s work products? Especially with software projects, it makes sense to review interim work products, so you have some idea about how good the final product could be.</p>
<p>Sometimes when I ask project groups about reviews, they physically recoil, and say, &#8220;Oh no, JR, there is NO WAY we are taking the time to review things. Reviews take a long time and we just don&#8217;t have that kind of time to spend on reviews.&#8221;</p>
<p>Well, if you&#8217;re on a strict-schedule project, you don&#8217;t have time to NOT perform reviews. You don&#8217;t have to use Fagan-style inspections, the most formal type of review. You could use walkthroughs, pair development, or peer desk-checking. Each of these techniques are low-time investment and higher return than no review at all.</p>
<p>I like walkthroughs, where the author presents the work product to an audience, best for project plans and schedules. When I walk the technical staff through a project schedule, they have the opportunity to point out dependencies I didn&#8217;t know about. When I walk the senior management through a project plan, they can tell me whether they agree with the project vision and release criteria.</p>
<p>Pair development is great for requirements, designs, code, and tests. Pair development works best with one keyboard, one mouse, one screen, and two people. If you&#8217;re not sure how to make pair development work for you, see <a href="http://collaboration.csc.ncsu.edu/laurie/index.html">Laurie Williams</a> and Robert Kessler&#8217;s book, &#8220;Pair Programming Illuminated&#8221;, ISBN 0201745763. When you&#8217;re done with the work product, two people know it intimately and have discussed the alternatives.</p>
<p>I find it difficult to use strict pair programming for writing English, because I don&#8217;t always know what I&#8217;m going to say when I sit down to write. For me, the act of writing a natural language generates more ideas. Writing a computer language is different. So, for English language work, I use desk-checking techniques.</p>
<p>Desk-checking, where someone else reads your work product and tries it out or comments on it, is another great technique for finding inconsistencies in writing (whether it&#8217;s code or a natural language). Desk-checking, because it is so informal, depends on the expertise of the person doing the checking. Someone who&#8217;s familiar with the work product and has the time will do a good job desk-checking. Someone with less expertise, or is having a bad day, or is tired will not perform as good a review.</p>
<p>In any case, no matter which review techniques you choose, consider which techniques are useful when for your project. The more eyes on intermediate work products, the better the final product will be. (And if you have any ideas about how to review blogs *before* they&#8217;re published, let me know :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jrothman.com/blog/mpd/2003/03/more-eyes-are-better-than-two.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

