cancel
Showing results for 
Search instead for 
Did you mean: 

Pair Programming

Pair Programming

Pair Programming

Hi, In the last week we have been trying a pair programming concept with our Polish Software Development Team. Let me present some feedback from this experiment. It was a two-day trial during which we had developer pairs working on code problems. The configuration was mostly: 2 people with one computer, but there were situations that pair-mates worked separately at their own desk. The most important thing we saw is that pair programming can increase efficiency of some problem investigation. Typically this would be problems which need a lot of digging, a very experienced developer or just a good debate to determine the solution. Of course pair programming as an idea is intended to be used while programming, but then it gives benefits to the quality more than to efficiency itself, I think. Another observation is that some investigation parts (like digging through many files or so) are more effective when using separate computers (work can then be split between developers). Getting opinions from the team, I've noticed that while some of them said that pair programming improved their efficiency, some other claimed otherwise - that the efficiency was lower (even if they worked on the same problem). It's quite obvious that this way of investigation/programming is good for some problem types and doesn't provide any benefits for some other. The problem can be keeping up. When you're sitting in front of a screen somebody else is scrolling up and down, switching files,and so on, it is hard to remain focus and you tire very quickly. That's why it's really important to change the way of work during pair programming. You need to be constantly aware of that you're not alone. Frequent active/passive developer switching is also important here and makes things slightly better. Generally this method requires some time from people to get used to it. I've seen some "mouse battles" when developers wanted to do two different things at a time but that will go with practice. Definitely investigation or programming in pairs lets you to learn a lot. Especially when an experienced developer is co-operating with inexperienced one. However there are people who don't like to be teachers and they can get tired quickly. Some other feedback was that this trial gave the developers more motivation. When you're working on problems on your own, you can easily get distracted by many unimportant things (mails, forum posts, rss news, UFOs landing outside the office window, etc.). When you lose your focus it's hard to find it again. When you work in pair, it's easier to 'keep the course' since you are constantly being watched and you have help that keeps you on track. To sum up: Compulsory pair programming for every problem would have no sense at all, but working in pairs on problems that are hard to investigate, replicate or fix is something worth trying. Cheers, Pawel

0 Thanks
1 Comment
93 Views
1 Comment
Dan
Grafter
Pavel, I agree with your conclusion, you have to think "horses for courses". It's not appropriate for everything, but actually complex problems or tutoring are great examples of how PP can be used best. I've been an Agile enthusiast for many years and remember when Kent Beck first started shouting about XP (not windows, eXtreme Programming :-) ). I have implemented XP (or variants) before and actually PP was always the most difficult to quantify. It used to be sold as "PP and you won't need to code review" and "PP and you increase productivity", but I've never felt comfortable with either of those statements. I've also never seen anyone really quantify the true cost/productivity benefits of PP - and that makes it a very difficult practice to see to a business. Would love for someone to point me in the direction of a fair test :-) It was sensible to undertake a 2 day trial of it, and I certainly agree PP makes sense for some things. I also know that developers are strange beasts and some will 100% hate the idea of having someone sit next to them and inhibit their "creativity". But then again, some will love it! As I say (and you imply), hroses for courses