Is PairProgramming in CeePlusPlus different?
I've successfully used PairDebugging? live on C++ projects, and have used PairProgramming as part of language training courses, but I've never used PairProgramming on C++ projects. Does anyone have experiences to relate? --PeteMcBreen
At XpImmersionOne, the students did pair programming in Java and reported that they really liked it. I'd expect this to have some bearing on C++ pairing. Chime in, folks! --RonJeffries
I just had my first pair -- feels like losing one's virginity. :-) My partner was waiting idle on his project, so I invited him to pair with me, to try it out. I told him about the problem and showed him the existing code. He made suggestions and answered my questions, and I did the coding. Solo, I had already dramatically restructured the design of the class, a directory iterator (which sorely needed it, apparently written by a C++ neophyte), but during this session we scrapped it entirely, and simply exposed a Contents() method which returned a container. The code was much smaller, cleaner, and robust with regard to concurrency issues. Without pairing, it would have remained well-written code implementing an inferior design.
Also, C++ is a language with a lot of 'surface area' -- lots of tricks and gotchas, and it's nice to have someone to check with instead of having to pull out a reference (or just guess) each time. (I've been using C++ for roughly five years (self-taught) and only this year understood the benefits of passing-by-value and 'discovered' smart pointers.) -- JoshuaJuran
To me, there is nothing fundamentally different about pairing in C++. Although I haven't done it within the context of XP, I have paired with people on and off for afternoons at a time. My gut says that it is more valuable in C++ due to the fact that the language defaults typically aren't what you want. So, your partner says things like "shouldn't that be a virtual function?" and "don't you need to call the base class assignment operator?" -- MichaelFeathers
WardCunningham and I were talking during a break at an OOPSLA workshop run by SteveFraser?. Ward was astonished we could program in pairs using C++ and vi; he thought it was an artifact of the SmalltalkLanguage programming environment. We chased down JimCoplien (on break from the same workshop, and at the time was working on the PatternLanguage published in the first PLoP proceedings), and thus "PairProgramming" became part of the literature.
I've done PairProgramming in C++ and Perl (with the same pair partner, MichaelLindner). Since I haven't done it in Smalltalk or Java, I can't say what's different. I attended the first PairProgramming at OOPSLA, and didn't see anything I didn't recognize. --PaulChisholm
SmalltalkLanguage, LispLanguage, and PythonLanguage are much more interactive than compile/link/run languages such as C++ or Java. The interactiveness is a huge plus when PairProgramming, but doesn't discount the usefulness when it isn't available.
We've tried PairProgramming in JavaLanguage, ExcelVba?, and even InstallShield. We don't have numbers to prove it, but it always seems to be better. --SteveFreeman
We did PairProgrammingInCpp at a couple of my former employers. The only time it doesn't seem to work well is when there is a large difference in language skills. It's all very well to say have the junior partner drive, but when time is short it takes too long to explain the intricacies of such a very large language. But we have a fair spread of skills among our developers, and we can always get 'em partners when they need 'em. We encourage but don't enforce pairing. --PeterMerel
SunirShah wonders why ExtremeProgrammingWithCpp is apparently considered to be impossible by many.
CategoryCpp CategoryExtremeProgramming CategoryPairProgramming