Pair Programming
Quality
more attention on errors, less bugs
More discussions on solutions
Gambiarras not allowed
Different perspectives and sources of information
Ownership
Truck Factor > 1
All team members know whats going on
No Single Point of Failure
Productivity
Pairs keep focus
People are more afraid to interrupt
Variations
expert-expert
expert-novice
novice-expert
Don't pair
Repetitive and non-thinking tasks
Competitive environments
People don’t want to share their knowledge
Management does not encourage the practice
Environment
1 computer, 2 monitors, 2 keyboards, 2 mouses
Rotate typer
Remote
Knowledge Sharing
I know, I teach
Develop patience
Develop communication skills
I don't know, I learn
Humbleness
Teaming
Everybody feels responsible
We built together, we solve together
95% more satisfaction
Shared goals
4. Design quality
• More attention on errors, less bugs
• More discussions on solutions
• Gambiarras not allowed
• Different perspectives and sources of information
5. Ownership
• Truck Factor > 1
• All team members know what’s going on
• No single point of failure
7. Team
• Everybody feels responsible
• We build together, we maintain together
• 95% more satisfaction
• Shared goals
8. Knowledge Sharing
• I know, I teach
• Develop patience
• Develop communication skills
• I don’t know, I learn: humbleness
9. When pair does not work
• Repetitive and non-thinking tasks
• Competitive environments
• People don’t want to share their knowledge
• Management does not encourage the practice
11. Williams, L., Debunking the Nerd Stereotype with Pair Programming (Broadening Participation in Computing Series), IEEE Computer, to appear May 2006.
Ho, C., Raha, S., Gehringer, E,, Williams, L., Sangam: A Distributed Pair Programming Plug-in for Eclipse , Eclipse Technology Exchange (Workshop) at the Object-Oriented Programming, Systems, Languages, and
Applications (OOPSLA) 2004.
Katira, N., Williams, L., Osborne, J., Towards Increasing the Compatibility of Student Pair Programmers , International Conference on Software Engineering (ICSE) 2005.
Katira, Neha, Williams, Laurie, Wiebe, Eric, Miller, Carol, Balik, Suzanne, Gehringer, Ed, On Understanding Compatibility of Student Pair Programmers, ACM Technical Symposium on Computer Science Education,
SIGCSE 2004, pp. 7-11.
Srikanth, H., Williams, L., Wiebe, E., Miller, C., Balik, S., On Pair Rotation in the Computer Science Course , Conference on Software Engineering Education and Training 2004, pp. 144-149.
Williams, Laurie and Kessler, Robert. Pair Programming Illuminated, Addison Wesley, 2003.
Wiebe, E., Williams, L., Petlick, J., Nagappan, N., Balik, S., Miller, C., Ferzli, M. Pair Programming in Introductory Programming Labs , American Society for Engineering Education (ASEE) 2003.
Williams, L., McDowell, C., Fernald, J., Werner, L., Nagappan, N. Building Pair Programming Knowledge Through a Family of Experiments , IEEE International Symposium on Empirical Software Engineering (ISESE)
2003, pp. 143-152.
Stotts, D., Williams, L., Nagappan, N., Baheti, P., Jen, D., Jackson, A., Virtual Teaming: Experiments and Experiences with Distributed Pair Programming, Extreme Programming/Agile Universe 2003.
Nagappan, N., Williams, L., Wiebe, E., Miller, C., Balik, S., Ferzli, M., Petlick, M., Pair Learning: With an Eye Toward Future Success, Extreme Programming/Agile Universe 2003.
Nagappan, N., Williams, L., Ferzli, M., Weibe, E., Yang, K., Miller, C., Balik, S., Improving the CS1 Experience with Pair Programming, ACM Technical Symposium on Computer Science Education, SIGCSE 2003, pp.
359-362.
Williams, L., Wiebe, E., Yang, K., Ferzli, M., Miller, C., In Support of Pair Programming in the Introductory Computer Science CourseComputer Science Education, September 2002.
Williams, L., Yang, K., Wiebe, E., Ferzli, M., Miller, C., Pair Programming in an Introductory Computer Science Course: Initial Results and Recommendations, OOPSLA Educator's Symposium 2002, November 2002.
Baheti, P., Williams, L., Gehringer, E., Stotts, D., Exploring Pair Programming in Distributed Object-Oriented Team Projects, OOPSLA Educator's Symposium 2002, November 2002.
Ferzli, M., Wiebe, E., Williams, L., Paired Programming Project: Focus Groups with Teaching Assistants and Students, NCSU Technical Report, TR-2002-16, November 25, 2002.
Baheti, P., Williams, L., Gehringer, E., Stotts, D., and Smith, J., Distributed Pair Programming: Empirical Studies and Supporting Environments, UNC-CH Technical Report TR02-010, March 15, 2002.
Williams, Laurie, Kessler, Robert R., Experimenting with Industry's "Pair-Programming" Model in the Computer Science Classroom, Computer Science Education, March 2001.
Williams, Laurie. Integrating Pair Programming into a Software Development Process,Conference of Software Engineering Education and Training 2001.
Williams, Laurie and Upchurch, Richard. In Support of Student Pair Programming, 2001 SIGCSE Conference on Computer Science Education, Charlotte, NC, pp. 327-331,February 2001.
Williams, Laurie and Kessler, Robert R. > The Effects of “Pair-Pressure” and “Pair-Learning” on Software Engineering Education. Conference of Software Engineering Education and Training 2000.
Williams, Laurie and Kessler, Robert R., All I Really Need to Know about Pair Programming I Learned In Kindergarten, Communications of the ACM, May 2000.
Williams, L., The Collaborative Software Process. PhD Dissertation, 2000.
https://collaboration.csc.ncsu.edu/laurie/pair.html