TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Promiscuous Pairing: Do it often, do it fast and learn from it

28 pointsby stevejalimabout 13 years ago

6 comments

jraboneabout 13 years ago
What ... the ... f<i></i>*? Blindly pushing pair programming is bad enough, but deliberately _trying_ to avoid 'flow' ? That's about the worst idea I've heard from the cult of mediocrity that is 'Agile'.<p>Pairing on everything is a disruptive waste of both programmers time, unless one programmer is hugely less experienced - in which case, it's not pair programming, it's coaching, and coaching is a different skill set that you can't expect everyone to either WANT to do or to be any good at.<p>Pairing on all design / analysis spikes is just about bearable, and maybe there are benefits to having everyone switch around spikes quickly.
评论 #3753546 未加载
评论 #3753543 未加载
ArloBelsheeabout 13 years ago
(I'm the author of the original paper. So take my ramblings here with a grain of salt.)<p>The experimentation that led to Promiscuous Pairing was certainly based on the practical. It was not scientific; it was process engineering. We had no goal to make a great discovery. Rather, we had to ship software RTFN, so we were optimizing our process to do so.<p>The company board had told us that they were liquidating the company if we didn't have 2 signed letters of intent at the end of the trade show on May 25. We started the project in October, using a traditional development approach (what we'd been doing for the last 2 years).<p>On Jan 15 or so, I got the group together and asked. 100% of the engineers agreed we had a &#60;5% chance of even having a sales demo ready for the trade show. We were guaranteed not to have enough to get a sale.<p>So we were desperate and had, literally, nothing to lose (and no time to lose it in).<p>That was why we were so extreme. We measured the outputs that mattered to us (defects, long refactorings, output), and we reviewed our process each iteration. We did 1-week iterations (industry, as we learned later, was doing 3-4 weeks at the time). We continually developed qualitative heuristics and used our quantitative numbers to filter them on viability. We needed to know what would work faster than any quantitative approach could tell us.<p>And then we just tried all sorts of stuff. As we got more useful heuristics, they encouraged us to try more bizarre stuff. One of those heuristics was that learning was king: rate of progress == rate of invention == rate of learning stuff (techniques, domain knowledge, ideas that others on the team had).<p>That was what led us to try the very short pair swap times.<p>In the end, we stayed with them only because they worked. And man did they work.<p>5 years later, Ward &#38; Jim convinced me to write up the experience for Agile 2005. Then a couple of other teams tried it.<p>Interestingly, many of them had exactly the same direct effects from the practice as we did - and those direct effects led to project failure, rather than success (Mitch's team &#38; paper is a fine example).<p>On the basis of that, my current assumption is that you should only use PP if you're good at removing roadblocks and are already pretty low friction. PP makes all problems glaringly obvious all at once, and gives you the info &#38; learning to address them. But if you can't address them quickly enough (or if there are too many friction points) it just destroys morale and productivity.<p>I now think of this as a 400-level practice.<p>First learn to pair (this takes time - it's a set of skills). Do stuff to improve feedback. Shrink all your cycles (we were shipping software 2x per day and hit 100% of our 1-week, 2-week, and 3-month commitments before we tried PP). Once you have eliminated that friction (we did it by fiat, since we were basically being laid off otherwise), then PP can be an awe-inspiring tool.
jdlshoreabout 13 years ago
A quick correction: OP describes Arlo Belshee's paper as a "research paper," but it's more properly an experience report. Arlo was working in a professional environment with a team of programmers. That team tried a variety of techniques for improving their productivity, from "no pairing," to "extremely rapid pair switching," and measured the results. I have no doubt that they saw the results they claimed, and that promiscuous pairing worked well for them <i>in actual practice</i> in a real, professional programming environment.<p>And... this is an experience report. Their "experiments" weren't controlled, blinded, or anything like that. So there are almost certainly contextual nuances that haven't been discovered yet. What worked for Arlo's team won't necessarily work for your team.<p>And... this is true of nearly all software development techniques. There are hardly any controlled, blinded studies of software development techniques that are worth a damn. So if Arlo's technique seems intriguing, try it. Just don't (a)hold it up as proven technique, because it's not, or (b)get angry that it's not scientifically proven, because chances are very, very good that none of the software development practices you love have been scientifically proven either.<p>PS: An interesting followup experience report from a team at Microsoft that tried promiscuous pairing for a while: <a href="http://dl.acm.org/citation.cfm?id=1155480" rel="nofollow">http://dl.acm.org/citation.cfm?id=1155480</a>.
delinkaabout 13 years ago
I could see this as an interesting exercise during certain kinds of workshops or camps. Or during a week of low-stress, no-deadline work in the office. I can, however, see The Suits latching onto this as The Next Big Thing. And it will be about as useful in an every-day work environment as making your programming staff take support calls during their coding time - context switches cost <i>lots</i> of time and reduce productivity.
评论 #3753239 未加载
jonathanwallaceabout 13 years ago
We have a variant of this for new hires that come onto our team at <a href="http://highgroove.com" rel="nofollow">http://highgroove.com</a>. You'll pair with every existing highgroover over the course of your first 5-6 weeks.<p>Also, this sounds very similar to the benefits I see when running code retreats, <a href="http://coderetreat.org/" rel="nofollow">http://coderetreat.org/</a>. Though the problem domain doesn't change throughout the day at a code retreat, its interesting to watch the diffusion of ideas and knowledge.
mossabout 13 years ago
The article's link to the original paper doesn't seem to be working. Here it is: <a href="http://csis.pace.edu/~grossman/dcs/XR4-PromiscuousPairing.pdf" rel="nofollow">http://csis.pace.edu/~grossman/dcs/XR4-PromiscuousPairing.pd...</a>