Edit Page

Pair

Pair Programming is a method of coding in a pair that leads to improved code quality, team communication, knowledge share and huge learning gains. Several large scale studies of computer science students have shown improved outcomes when student pair program on coding problems. In the past, pair programming has been restricted to those able to meet in the same location, however the ubiquitous nature of the internet has unleashed the remarkable power of remote pair programming, which we strongly encourage everyone to use as part of Agile Ventures.

If you want to remote pair program you’ll first need to find someone to pair with, for which we recommend joining the AgileVentures Slack Community. Slack is a real-time chat tool that all AgileVenturers use to communicate and coordinate. You’ll get an invite automatically if you sign up to AgileVentures.

In the Slack community you can join “channels” for different projects, and see if there’s anyone interested in pair programming with you. There’s more on this process in our “getting started” pages. Also, if you’d like to pair or mob program with AgileVentures Mentors then please take advantage of our Premium Mob and F2F offers.

Technologies for Remote Pair Programming

You’ll also need some screen share tools. From most simple to most complex here are a few - Google Hangout with Screenshare (Chrome or Firefox browser) - Howto - Skype Screenshare (OS X, Windows, Linux) - Howto - Google Hangout + MadEye (Chrome browser + nodejs install) - Google Hangout + Floobits (Chrome browser + editor install) - ScreenHero (OS X, Windows) - TeamViewer (OS X, Windows, Linux) - GNU Screen (Linux and Unix - on Windows it needs cygwin) - Tmux (all *nix platforms?) - Cloud9 - Howto - Nitrous io - Kobra io - tmate - floobits

The last two can nicely be paired with an Amazon EC2 instance.

Other great RPP resources:

  • Joe Moore’s Blog http://remotepairprogramming.com
  • Avdi’s PairWithMe meme http://pairprogramwith.me

Selection of help videos and protocols

Quotes from Remote Pair Programmers in edX’s Massively Open Online Class “Engineering Software as a Service”:

Dag Andre Ivarson:

I’ve really learned how to use the debugger during these pairing sessions, and we really drive each other forwards :-) It really helps having someone to talk to.

Antoine ModuloM:

I’m convinced that 4 brains is really better than one. I’ve learned a lot and we go through homework 3 till the end. Thank you all!

Sunil Manandhar:

Pair programming helped me boost my confidence; it helped me gain a motion from where I’d usually stop. There was socializing, sharing, and a synergistic effect. I’ve improved a lot!

Semyon Vodyannikov:

When you program alone, if you are stuck, you go spend your time on facebook or theonion.com. But if you pair, you don’t get distracted and there is always someone who can give you a hand :)

General Pair Programming Tips

Do’s:

  • Talk
  • Listen
  • Rotate Roles
  • Be Patient
  • Respect
  • Take Breaks
  • Prepare
  • Personal Hygiene
  • Have Fun

Don’t:

  • Be Bossy
  • Be Intimidated
  • Be Quiet
  • Suffer in Silence

More on remote pair programming - Analysis - C9 Howto - Creating a PP Event on G+ - Example Videos - GNU screen pairing notes - Pair Programming Calendar - Pair Programming Form - Pair Programming Help Videos - Pair Programming Protocols - Classroom Guidelines - GitHub Pong