UBC

Programming in Pairs

Policies
Programming in pairs isn't for everyone, but it can be an incredibly rewarding experience. On deciding on your partner, immediately come up with a strategy. There are two ways to work in partners: online and offline. If you work online, then you do the bulk of the work together, both in the same room. This is often refered to as "pair programming". If you work offline, then you work separately and send code back and forth. We recommend the first strategy as it's far more enriching, and teaches the skills necessary not only to effectively work in groups, but also enjoy them (yes, this is possible, you group nay-sayers out there!). Here are some suggestions for both, and lastly some general suggesetions to ensure the best learning experience possible.

"Online"/In person/Pair programming

  • Assign a "driver" and a "passenger". The driver sits in front of the computer and thinks aloud-- that is, he or she talks about what it is he or she is doing at any given time. The driver and passenger discuss the work beind done, and brainstorm solutions to problems as encountered. The passenger should have the notes in from of him or her, for easy reference. Set a time limit for this arrangement-- when it is up, switch! The driver becomes the passenger and vice versa.
  • Depending on your learning style, you may find your own arrangement that works well, however you are responsible for ensuring it works for your group. You goal is to have both partners be experts in the program at the end.
  • You can find a great video about pair programming here.
"Offline" or mixed
  • It's okay to split up the workload, but keep in mind that you both need to understand the whole assignment, not just your part! Strategies for this include creating a single Java file (or files in our case) and clearly marking the sections for which you are each responsible. It is vitally important that you not modify each other's sections unless you are working together. This way you can be assured that you always have the right version.
Strategies for Both
  • Address concerns as soon as they come up. Rarely, if something is bothering you, will it just "up and go away". If you feel the workload is unbalanced, either because you're doing too much, or too little, then talk to your partner and discuss your options.
  • It's true that in the real world you may end up in a situation with a partner that does not work well with you. In this case, though, you're free to choose whomever, so make sure the partnership works for both of you!