<?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"
	>
<channel>
	<title>Comments on: How Do You Explain Pair Programming?</title>
	<atom:link href="http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html/feed" rel="self" type="application/rss+xml" />
	<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html</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>
	<pubDate>Mon, 01 Dec 2008 20:19:32 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: Randy</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-97</link>
		<dc:creator>Randy</dc:creator>
		<pubDate>Sat, 07 Jan 2006 07:41:41 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-97</guid>
		<description>Another good wiki reference:
http://fox.wikis.com/wc.dll?Wiki~PairProgramming~SoftwareEng</description>
		<content:encoded><![CDATA[<p>Another good wiki reference:<br />
<a href="http://fox.wikis.com/wc.dll?Wiki~PairProgramming~SoftwareEng" rel="nofollow">http://fox.wikis.com/wc.dll?Wiki~PairProgramming~SoftwareEng</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-85</link>
		<dc:creator>Dave</dc:creator>
		<pubDate>Fri, 29 Apr 2005 00:50:44 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-85</guid>
		<description>Great ideas and a good comments.  My comment on pair programming is that the ability to do accurate, individual evaluations (and raises) is not really a very significant issue.  Ask your client who is paying the bill if he really cares how accurate your staff evaluations are OR if he cares if the product comes in better, faster, and on budget.  My question is related to pair project managing.  Paired PMs is a subject that I have not read or heard much about. There are some obvious advantages- continuity, overlap, division of labor. This applies to an organization with a functional PM structure and the PMs have several projects. Any info?</description>
		<content:encoded><![CDATA[<p>Great ideas and a good comments.  My comment on pair programming is that the ability to do accurate, individual evaluations (and raises) is not really a very significant issue.  Ask your client who is paying the bill if he really cares how accurate your staff evaluations are OR if he cares if the product comes in better, faster, and on budget.  My question is related to pair project managing.  Paired PMs is a subject that I have not read or heard much about. There are some obvious advantages- continuity, overlap, division of labor. This applies to an organization with a functional PM structure and the PMs have several projects. Any info?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bernard Notarianni</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-91</link>
		<dc:creator>Bernard Notarianni</dc:creator>
		<pubDate>Sun, 03 Apr 2005 23:18:49 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-91</guid>
		<description>I will not go to many detailed argument. Just one idea.
All those process, langages, specifications or user stories, all those meetings and discussions, written documents or phone conversations converge to one thing: humans writing some code.
This is the most important task (all the others are here to support this one) and also the most dangerous.
Personnaly, I prefer to have some mate around rather than taking this journey alone.</description>
		<content:encoded><![CDATA[<p>I will not go to many detailed argument. Just one idea.<br />
All those process, langages, specifications or user stories, all those meetings and discussions, written documents or phone conversations converge to one thing: humans writing some code.<br />
This is the most important task (all the others are here to support this one) and also the most dangerous.<br />
Personnaly, I prefer to have some mate around rather than taking this journey alone.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John Keklak</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-87</link>
		<dc:creator>John Keklak</dc:creator>
		<pubDate>Fri, 01 Apr 2005 19:07:48 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-87</guid>
		<description>Hi Joanna,
To convince skeptical managers, that is the question...
First it is important to be clear that pair programming is not a general panacea, but a tool that is particularly effective for certain situations.  One type of situation where it works well is in a failing project where two programmers work together over an extended period of time (weeks) bringing it to a healthy completion.  Another type of situation is where concepts are initially very vague, and the initial work is to firm up the concepts and develop the "vocabulary" and "rules" of the project.  I have personally seen the benefits of pair programming in these situations.  There are, no doubt, other situations where pair programming has a powerful impact.
Secondly, (risking sounding cynical) it is necessary to focus on what's in it for the managers.  And what's in it for the managers is quality software delivered on time, with minimal hassle from subordinates and superiors, and with a good prognosis for easy support and maintenance after release.  Now the trick is to connect this objective with pair programming.  How do you do this?  You could start by polling the managers to find out how many would take debuggers away from their programmers.  I doubt there would be anyone, since debuggers vastly increase the effectiveness of developers.  Then equate -- in the effectiveness factor sense -- pair programming with debuggers.
Thirdly, it is important to make it clear that pair programming cannot be mandated. Some kind of "carrot and stick" approach works best, with the vast emphasis on the carrot.
Lastly, the managers need to feel they came up with idea of using pair programming themselves.  The minute you start making a direct appeal, you've lost them, so circling around the issue until some of the attendees start making positive-sounding noises that include the term "pairing up programmers" will probably work best.
Good luck!
John</description>
		<content:encoded><![CDATA[<p>Hi Joanna,<br />
To convince skeptical managers, that is the question&#8230;<br />
First it is important to be clear that pair programming is not a general panacea, but a tool that is particularly effective for certain situations.  One type of situation where it works well is in a failing project where two programmers work together over an extended period of time (weeks) bringing it to a healthy completion.  Another type of situation is where concepts are initially very vague, and the initial work is to firm up the concepts and develop the &#8220;vocabulary&#8221; and &#8220;rules&#8221; of the project.  I have personally seen the benefits of pair programming in these situations.  There are, no doubt, other situations where pair programming has a powerful impact.<br />
Secondly, (risking sounding cynical) it is necessary to focus on what&#8217;s in it for the managers.  And what&#8217;s in it for the managers is quality software delivered on time, with minimal hassle from subordinates and superiors, and with a good prognosis for easy support and maintenance after release.  Now the trick is to connect this objective with pair programming.  How do you do this?  You could start by polling the managers to find out how many would take debuggers away from their programmers.  I doubt there would be anyone, since debuggers vastly increase the effectiveness of developers.  Then equate &#8212; in the effectiveness factor sense &#8212; pair programming with debuggers.<br />
Thirdly, it is important to make it clear that pair programming cannot be mandated. Some kind of &#8220;carrot and stick&#8221; approach works best, with the vast emphasis on the carrot.<br />
Lastly, the managers need to feel they came up with idea of using pair programming themselves.  The minute you start making a direct appeal, you&#8217;ve lost them, so circling around the issue until some of the attendees start making positive-sounding noises that include the term &#8220;pairing up programmers&#8221; will probably work best.<br />
Good luck!<br />
John</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dave C</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-90</link>
		<dc:creator>Dave C</dc:creator>
		<pubDate>Thu, 31 Mar 2005 02:59:43 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-90</guid>
		<description>I think the most effective way to handle performance evaluations is to do a 360 degree evaluation where a selection of peers and the manager evaluate an individual.
So the effect would be that someone who adds value to every pair he works with would get a high evaluation, while someone who alwyas drags down his pair would get a low one.
Turns out this works for normal teams as well :)</description>
		<content:encoded><![CDATA[<p>I think the most effective way to handle performance evaluations is to do a 360 degree evaluation where a selection of peers and the manager evaluate an individual.<br />
So the effect would be that someone who adds value to every pair he works with would get a high evaluation, while someone who alwyas drags down his pair would get a low one.<br />
Turns out this works for normal teams as well <img src='http://jrothman.com/blog/mpd/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rachel Davies</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-89</link>
		<dc:creator>Rachel Davies</dc:creator>
		<pubDate>Wed, 30 Mar 2005 19:07:39 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-89</guid>
		<description>I agree with Alan F. Performance reviews tend to be on the same basis as non-pair programming teams. I do think it's important to discuss with programmers new to pairing how they will be evaluated and that being a collaborative  team player is valued in addition to technical proficiency.
I have an upcoming article the April issue of Better Software magazine that gives a managers intro to pair programming - I will email you a copy when I get home.
Rachel</description>
		<content:encoded><![CDATA[<p>I agree with Alan F. Performance reviews tend to be on the same basis as non-pair programming teams. I do think it&#8217;s important to discuss with programmers new to pairing how they will be evaluated and that being a collaborative  team player is valued in addition to technical proficiency.<br />
I have an upcoming article the April issue of Better Software magazine that gives a managers intro to pair programming - I will email you a copy when I get home.<br />
Rachel</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karen Hoofnagle</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-92</link>
		<dc:creator>Karen Hoofnagle</dc:creator>
		<pubDate>Tue, 29 Mar 2005 00:55:10 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-92</guid>
		<description>My company attempts to use peer review and most of the time right now (since we don't pair), peers don't pay as much close attention to the programming skills and insights of their teammates as I wish they would.
Pair programming, in my experience, makes peer review suddenly more nuanced and useful because your team KNOWS from daily experience what each member can do well and needs to work on. So-and-so is a lousy or great communicator? Someone else is really incisive and helps you move faster than you ever could yourself? Another person is *great* at working through threading issues?
When pair programming, as in all coding, I don't think anyone ever really gets usefully graded on "productivity" (not that managers won't try).
So, we (whether we admit it or not) grade on qualitative rather than quantitative measures. That makes the manager's job to give some quantitative weight to the importance of each quality in the overall composition of your team. Do you give the biggest raise to the guy who communicates best or to the one that seems to have the most arcane grasp of coding lore?  They're both important. But your organization may need the communicator more than the lore-monger. Or the other way around. I think that's how raises are usually given out no matter *what* people give lip service to.
Anyhow, I would explain pair programming to those who've never tried it (and I miss it myself) as the deepest, most difficult, exhausting and satisfying peer-to-peer mentoring on earth.
Karen</description>
		<content:encoded><![CDATA[<p>My company attempts to use peer review and most of the time right now (since we don&#8217;t pair), peers don&#8217;t pay as much close attention to the programming skills and insights of their teammates as I wish they would.<br />
Pair programming, in my experience, makes peer review suddenly more nuanced and useful because your team KNOWS from daily experience what each member can do well and needs to work on. So-and-so is a lousy or great communicator? Someone else is really incisive and helps you move faster than you ever could yourself? Another person is *great* at working through threading issues?<br />
When pair programming, as in all coding, I don&#8217;t think anyone ever really gets usefully graded on &#8220;productivity&#8221; (not that managers won&#8217;t try).<br />
So, we (whether we admit it or not) grade on qualitative rather than quantitative measures. That makes the manager&#8217;s job to give some quantitative weight to the importance of each quality in the overall composition of your team. Do you give the biggest raise to the guy who communicates best or to the one that seems to have the most arcane grasp of coding lore?  They&#8217;re both important. But your organization may need the communicator more than the lore-monger. Or the other way around. I think that&#8217;s how raises are usually given out no matter *what* people give lip service to.<br />
Anyhow, I would explain pair programming to those who&#8217;ve never tried it (and I miss it myself) as the deepest, most difficult, exhausting and satisfying peer-to-peer mentoring on earth.<br />
Karen</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: keith ray</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-95</link>
		<dc:creator>keith ray</dc:creator>
		<pubDate>Mon, 28 Mar 2005 18:51:41 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-95</guid>
		<description>Ron Jeffries used to say that 90 percent of programmers think they won't like pair programming, and that 90 percent of those who try it long enough to learn how to do it well do come to like it.
I didn't think I'd like it, but I did. (It does take two to tango - pairing with someone who refuses to talk at all doesn't work.)</description>
		<content:encoded><![CDATA[<p>Ron Jeffries used to say that 90 percent of programmers think they won&#8217;t like pair programming, and that 90 percent of those who try it long enough to learn how to do it well do come to like it.<br />
I didn&#8217;t think I&#8217;d like it, but I did. (It does take two to tango - pairing with someone who refuses to talk at all doesn&#8217;t work.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jared Richardson</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-83</link>
		<dc:creator>Jared Richardson</dc:creator>
		<pubDate>Mon, 28 Mar 2005 17:58:38 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-83</guid>
		<description>First, Pair Programming teams aren't permanent. I know of at least one shop that rotates team members in the morning and again at lunch! If you are swapping out who you partner with, there will be no trouble spotting the Good Developers.
Second, to introduce the concept of Pair Programming, introduce the idea and let a few team members try out pairing for specific projects. I've found Pair Programming to be a great way (from time to time) to bring a very concentrated focus to a tough problem. This lets people try out the practice and see how it works in their shop.</description>
		<content:encoded><![CDATA[<p>First, Pair Programming teams aren&#8217;t permanent. I know of at least one shop that rotates team members in the morning and again at lunch! If you are swapping out who you partner with, there will be no trouble spotting the Good Developers.<br />
Second, to introduce the concept of Pair Programming, introduce the idea and let a few team members try out pairing for specific projects. I&#8217;ve found Pair Programming to be a great way (from time to time) to bring a very concentrated focus to a tough problem. This lets people try out the practice and see how it works in their shop.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Watkins</title>
		<link>http://jrothman.com/blog/mpd/2005/03/how-do-you-explain-pair-programming.html#comment-93</link>
		<dc:creator>Robert Watkins</dc:creator>
		<pubDate>Mon, 28 Mar 2005 16:24:50 +0000</pubDate>
		<guid isPermaLink="false">http://jrothman.com/blog/mpd/?p=8173#comment-93</guid>
		<description>Over any reasonable time period, pairs in a team will rotate so that every member has had a chance to work with everyone else.
If management is using some form of "micro-credit" system to build up the performance review (e.g. keeping track of each task, and adding up the total at the end of the year), then simply apply the points to each person in the pair - people who do well will still get more, people who don't will still get less.
I'd flip around the question: how do the managers take into account team work in a performance review now? Why can't they just do more of that?</description>
		<content:encoded><![CDATA[<p>Over any reasonable time period, pairs in a team will rotate so that every member has had a chance to work with everyone else.<br />
If management is using some form of &#8220;micro-credit&#8221; system to build up the performance review (e.g. keeping track of each task, and adding up the total at the end of the year), then simply apply the points to each person in the pair - people who do well will still get more, people who don&#8217;t will still get less.<br />
I&#8217;d flip around the question: how do the managers take into account team work in a performance review now? Why can&#8217;t they just do more of that?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
