- Page 1 - Virtual Pair Programming 8/28/03 Version 1.0
Virtual Pair Programming
Kirk D. Blackburn
Qwest Information Technologies
Stan Benda
Qwest Information Technologies
Saogat Rab
Qwest Information Technologies
- Page 2 - Virtual Pair Programming 8/28/03 Version 1.0
Introduction
Nice to be back at ESUG!
ESUG ‘02 – Web Services
This year: Virtual Pair Programming
My Team
Project background
- Page 3 - Virtual Pair Programming 8/28/03 Version 1.0
Structure of Presentation
Problem Description
Approaches
Experiences
Empirical Studies
Summary and Conclusions
Bibliography
- Page 4 - Virtual Pair Programming 8/28/03 Version 1.0
Problem Statement
Prague
Cloud
Stan’s WorkstationQwest
CorporateNetwork
Saogat’s Workstation
Kirk’s Notebook
Denver Colorado
Minneapolis Minnesota
Kirk’s Workstation
ENVY Repository
Pairing Workstation Pairing Workstation
- Page 5 - Virtual Pair Programming 8/28/03 Version 1.0
Problem Statement
Envy is very chatty
Use of ENVY over a WAN is painfully slow
How to achieve reasonable experience remotely
Collect informal data on Virtual Pairing experience
- Page 6 - Virtual Pair Programming 8/28/03 Version 1.0
One Approach We Use VNC (Virtual Network Computing)
Downloadable from
http://www.uk.research.att.com/vnc/download.html
Cross-platform
Does not require Windows
Virtual Pairing does not require a telephone Voice communication is required Internet voice messaging is possible
- Page 7 - Virtual Pair Programming 8/28/03 Version 1.0
VNC Settings
- Page 8 - Virtual Pair Programming 8/28/03 Version 1.0
VNC with Headsets
Acceptable experience when Smalltalk image– Is physically close to ENVY server on the network
Poll full screen is not necessary and expensive.
Allows 2 mice, 2 keyboard
Share entire desk top (privacy)
Host Cursor disappears with more than 1 client
- Page 9 - Virtual Pair Programming 8/28/03 Version 1.0
VNC on Unix
On Unix VNC is started by command line configuration (if you do not have root access on machine):
vncserver -ac -nolisten local -depth 16 -geometry 1280x1024
- Page 10 - Virtual Pair Programming 8/28/03 Version 1.0
VNC on Solaris
On Solaris it is good to have set-user-id bit set on Xvnc executable and have that executable to be owned by root
Users running Xvnc server not need to be root
- Page 11 - Virtual Pair Programming 8/28/03 Version 1.0
Another Approach
NetMeeting
Good for drawing pictures
Giving and taking control
Can Share just one application (privacy)
Requires Windows
- Page 12 - Virtual Pair Programming 8/28/03 Version 1.0
NetMeeting Problem
Problem: Does not render Visualworks Windows– Loss of lines
Solution: Start Remote Desktop on VW server– Open NetMeeting on server and share RDC
- Page 13 - Virtual Pair Programming 8/28/03 Version 1.0
Remote Desktop Connection
Logon and select Options
- Page 14 - Virtual Pair Programming 8/28/03 Version 1.0
Remote Desktop Connection settings
- Page 15 - Virtual Pair Programming 8/28/03 Version 1.0
RDC Experience tab
- Page 16 - Virtual Pair Programming 8/28/03 Version 1.0
Set to Custom to reduce bandwidth
- Page 17 - Virtual Pair Programming 8/28/03 Version 1.0
RDC problems
Event handling occasional very slow
Seems related to VPN
- Page 18 - Virtual Pair Programming 8/28/03 Version 1.0
VPP Experience Summary
VPP can be done – Even in same office building
Telephone Phones/headset preferred– Net-based voice less desirable– Yahoo Messenger or MSN Messenger
Advantages (Ergonomics)– Two keyboards
VNC not as “fast” an experience and RDC solution
- Page 19 - Virtual Pair Programming 8/28/03 Version 1.0
VPP Experience Summary (cont)
Privacy
One of pair can “mute and munch”
Often program for 5 hours at a time
- Page 20 - Virtual Pair Programming 8/28/03 Version 1.0
Empirical Research
In the Fall 2001 semester a structured experiment was conducted in a graduate class, Object-Oriented Languages and Systems, taught by Dr Edward Gehringer at NCSU. This course introduces students to object technology and covers object-oriented analysis and design, Smalltalk, and Java.
All used Java
- Page 21 - Virtual Pair Programming 8/28/03 Version 1.0
Empirical Research
Brian Hanks
Phd Work
University of California, Santa Cruz
Modified VNC to collect driver/navigator
Collocated Pairs, then Switch
Testing of Null hyphothesis
- Page 22 - Virtual Pair Programming 8/28/03 Version 1.0
Summary and Conclusions
Not much good empirical work exists.
VPP is really a sub area of Computer Supported Collaborative Work (CSCW)… much studied
David Lieb’s “Distributed Cognition”
Distributed Cognition Lab at UCSD
VPP is fun. Reduces “Isolation”
Productivity gains are large
- Page 23 - Virtual Pair Programming 8/28/03 Version 1.0
Bibliography
http://rockfish-cs.cs.unc.edu/pubs/XPU-03.pdf
Tristan Richardson, Quentin Staord-Fraser, Kenneth R. Wood, and Andy Hopper. Virtual network computing. IEEE Internet Computing, 2(1):33{38, January-February 1998.
WikiWikiWeb. http://c2.com/cgi/wiki?WikiWikiWeb. See virtual pair programming discussion at http://c2.com/cgi/wiki?VirtualPairProgramming.
- Page 24 - Virtual Pair Programming 8/28/03 Version 1.0
Bibliography
http://c2.com/cgi/wiki?VirtualPairProgramming
http://www.pairprogramming.com/csed.pdf
http://www.xp2003.org/slides/15.pdf
http://www.cse.ucsc.edu/~brianh/PairProgramBib.html
http://www.ot2001.org/scripts/display.pl/151-leibs.xml