4 ms·
Interesting analysis. Have any of you pair programmed? Did you find it as useful as the author of this article did?
by mcav 18y ago
Interesting analysis. Have any of you pair programmed? Did you find it as useful as the author of this article did?
- arebop 18y agoI've done it, with two others on my team of six. The three of us thought it was good for quality and a preferable alternative to code review. I think each of us was a little shy at first, but once that faded we didn't feel held back by the pairing. We used it mostly for collaborative design. It was helpful for bringing a new team member up to speed on our code base. We also used it as an interview technique, and that seemed very successful although that one hiring decision is weak evidence.
- bjclark 18y agoI've done it at my current gig for about 5 months now. I'm not sure I'd work anywhere where I didn't pair, from now on. Infact, I've started pairing with my friends via iChat screen sharing when I'm working on side projects away from work.
- dfox 18y agoI did pair programming on some occassions and it is certainly useful. Also in my experience pair programming is good way to fix things that are so horribly broken so nobody wants to touch them with ten foot pole or quickly finish other tasks that are somehow obscure or boring.
- snprbob86 18y agoI also love pair programming. It usually begins with about 5 minutes of joking around and wasting time, but it takes only a minute or two to achieve flow. Individual programming can take 30 minutes or more to achieve flow. Once in flow, it is much harder to come out of it because you aren't tempted to browse to Hacker News. Also, no one will stick their head in your office and bother you because it looks like you are in a meeting. Partners are incredibly helpful spotting errors and act as an extra cache for all the little details you need to keep track of. Usually the person not typing has a lot more capacity for those details because they don't need to spend the energy operating their editor and manipulating code (no matter how good you get at it, it still requires some brain power: a limited resource). Also, when all is said and done, you now have TWO experts on a topic. Redundancy is a good thing.
- jrockway 18y agoI found it useful when everyone else on my team was incompetent. Sitting down with them at least prevented them from going off and doing negative work all day. The result was pretty consistent output from the team, which is what companies aim for. It was less productive than firing the incompetent people and letting me do their work instead, however. (Incidentally, this makes it sound like I didn't get along with my coworkers, which was not at all true. After we started pairing, we all got along too well, and started wasting the entire day socializing instead of programming. Oops.) Anyway, now that I don't have coworkers like this, I find it's easier to go off on my own. I also don't find it particularly useful to write a failing test and make it pass, I tend to alternate between big batches of code, a batch of passing tests, some todo tests, and then making that all work again. YMMV, but you have to keep in mind that things like XP, Scrum, Agile, TDD, etc. are designed to make big groups do things in a consistent amount of time, so that the code works reasonably well and it is delivered in a predictable amount of time. It is not necessarily a good way to do things if you are a good programmer. (Strict rules are for robots, not artists.)
- ahpeeyem 18y agoI've paired for small amounts of time and my experiences were similar to those in the blog post, especially this: "The amount of time you spend trying to figure out “what’s going on here” or “why isn’t this working the way I expect” is severely reduced. I’m talking hours of debugging that literally turn into seconds." I'd attribute this very much to the extra "cache" of the second brain that isn't having to manage typing and editing as snprbob86 above mentions. Have you ever watched someone searching for some piece of info on Google or Wikipedia, or looking for a phone number on a website? The person not wielding the mouse/keyboard can often parse and comprehend the info on the screen more quickly. I also agree strongly with this: "the QUALITY of the code that IS produced is so, so, so much higher" I think the post helps to dispel some myths of pairing as well, and it works best if pairing to reach the goal of completing specific tasks.
- axod 18y agoTried it for a while, it was sort of fun, but way less productivity.