Monday, April 02, 2007

What is it? Why would you want to do it? How do you do it? How effective is it? These are all questions that I will answer for you in this article.

What is Virtual Pairing?
"Virtual Pairing" is almost identical to the XP Practice known as Pair Programming, with one major difference; the individuals forming the pair do not sit next to each other. Rather each developer sits at their own workstation and they are connected to a single workstation via a workstation sharing tool (this will be discussed further in “How do you do it”).

Why would you want to do Virtual Pairing?
There are a number of reasons why you would want to do Virtual Pairing. Here is the list that I have compiled:

  • Convenience – Each developer works from their normal location.
  • Distributed Workforce – Developers are no longer required to be co-located for pairing to be practical.
  • Office Space – Virtual Pairing is not encumbered by poor cubicle arrangement, small cubicles or by workspace layouts that were not designed with pairing in mind.
  • Keyboard, Video (Monitor) and Mouse (KVM) Sharing – I have never experienced a setup that adequately allowed for the KVM to easily be shared. Via a workstation sharing tool KVM sharing is simple and effective.
  • Overcoming Introversion – If I could only give one answer when asked why pair programming is not more popular I would answer, "Introverted Personalities". Many developers in our industry have an introverted personality. Having to deal with another developer side-by-side for multiple hours can be extremely taxing on a person with an introverted personality. Virtual Pairing can reduce this stress allowing the developer to become more open to pairing. Therefore, I believe that Virtual Pairing could help improve the up-take of pair programming throughout the industry.
  • Overcoming Issues with Germs – Ok, I admit it; I have issues with germs and dirt. In my mind nothing will ever be as clean as my own workspace. (Just writing about this has caused me to use my Germ-X hand sanitizer.) Virtual Pairing removes the stress involved with sharing a keyboard and a mouse with another person.

How do you do Virtual Pairing?
If you have made it this far you will be interested to know what kinds of tools are available to support Virtual Pairing. I've broken the tools up into two categories: Workstation Sharing and Communication. These are the two basic categories of tools that you will need to do Virtual Pairing. There are undoubtedly others that I am unaware of or just didn’t mention. If you know of a particularly well suited tool please pass it on to me.

Workstation Sharing:

Communication:

How Effective is Virtual Pairing?
I’m not sure yet, to be quite honest. I suspect that the differences in effectiveness will be negligible and that the reasons to do Virtual Pairing will far out weigh the difference in effectiveness. However, most people (including me) want hard facts and data to back them up. Therefore, I am conducting a study via the mentoring and pairing that I do at work to collect this data. When I accumulate enough data I will post the findings here. I suspect that I will have enough data in the next month or two so be sure to bookmark my blog and check back regularly.

Happy Virtual Pairing.

0 comments:

Subscribe to RSS Feed Follow me on Twitter!