5 ms·
Microsoft did an internal study you might find interesting: http://research.microsoft.com/en-us/um/people/abegel/papers/esem-begel-2008.pdf http://research.mic
by akeefer 18y ago
Microsoft did an internal study you might find interesting:
http://research.microsoft.com/en-us/um/people/abegel/papers/esem-begel-2008.pdf http://research.microsoft.com/en-us/um/people/abegel/papers/...
I also know that they sponsored research by the Stanford CS department where they gave pairs and individuals the same programming task (completable in an afternoon), but I have no idea what the results of that were or if they were ever published.
My personal experience is pretty analogous to other people's: it causes you to work more slowly and carefully, it's good for knowledge transfer, and some people are better suited for it (personality-wise) than others. I find it most effective when avoiding errors or technical debt is imperative or when you want to transfer knowledge, and not as useful otherwise.
I've also noticed that my perceived productivity is lower when pairing than it actually is; I'm so used to cranking by myself that slowing down so someone else can talk with me about what to do, or being the "navigator" and not coding at all, makes me feel like I'm not getting anything done. In reality, though, I'm actually getting a fairly decent amount done, and more importantly we're probably avoiding mistakes or blind alleys that would have cost me time in the long run. That makes it hard to measure the real productivity difference: if two people had coded by themselves for 8 hours, more "work" would have been done than if those two people paired for 8 hours, but how much of that would have been wrong, or unnecessary, or overly-complicated, or introduced more technical debt?
It's the sort of skill that takes work, and that gets easier as you do it, so I'd encourage you to try it out. As with any new way of working, it'll be awkward at first and then get easier, and I think it's worth at least learning so that in the future you'll be able to judge for yourself when you feel like pairing will be most useful and when you're better off flying solo.
- aj 18y agoI think that is the most fuzzy part. Determining combined productivity, factoring the "improved" quality and the knowledge sharing and gain is a lot more difficult than simply adding up the individual productivity of each programmer (whatever may the metric for measuring the productivity be), but in this case, not tending to factor in improved code quality, constant code review and higher probability of catching subtle bugs