In pair programming, is it really required that the two developers have to be in same physical location? or is it ok if they are in differnt place and communicate often through mail, chat and telephone?
Originally posted by Hariharasudhan Selvaraj: In pair programming, is it really required that the two developers have to be in same physical location? or is it ok if they are in differnt place and communicate often through mail, chat and telephone?
I know one team that pairs successfully by using Skype and GNU screen, but it's my experience that there's no substitute for sitting side by side and working on the same code on the same machine together. My preference is for the whole team to sit together, and I recommend that if at all possible. The more distance between people, the more barriers there are to communication, and agile development attempts to make communicating so cheap and easy that it's the first thing you do, not the last.
Anything that puts up a barrier to communication introduces a risk. Now you may be able to work around that risk with other practices, but I still recommend sitting together whenever possible. (A very experienced team will probably be able to make remote pairing workable, but it won't be as effective as physical pairing.)
Author of <a href="http://www.amazon.com/gp/product/0596527675?tag=jranch-20" target="_blank" rel="nofollow"><i>The Art of Agile Development</i></a>
I have limited experience with remote pairing, and from that I would say that it can work, that good sharing tools and a high bandwidth connection are vital, and that no matter how well it works, it will always be inferior to collocated pairing.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus