loading...
 This Article 
   
 Share 
   
 Bibliographic References 
   
 Add to: 
 
Digg
Furl
Spurl
Blink
Simpy
Google
Del.icio.us
Y!MyWeb
 
 Search 
   
The Effect of Pairs in Program Design Tasks
March/April 2008 (vol. 34 no. 2)
pp. 197-211
Pair programming consists of two developers who collaborate with each other on the same programming task to design and code a solution. Previous pair programming experiments did not explore the efficacy of pairs in program design separately from coding, and most suffered from using students who were not full-time, professional programmers. Aptitude tests relevant to program design tasks have been shown to correlate with future programming performance and do not require skill in a particular computer language. Variations in programmer skill in a particular language or integrated development environment can interfere with interpreting results in pair programming experiments and mask the skill of subjects in program design related tasks. Two experiments were conducted with full-time professional programmers as subjects who worked on increasingly complex aptitude tasks related to problem solving and algorithmic design. In both experiments, pairs significantly outperformed solos, providing evidence of the value of pairs in program design related tasks.

[1] 197 L.L. Constantine, Constantine on Peopleware. Yourdon Press, 1995.[2] B. Kent, Extreme Programming Explained: Embrace Change. Addison-Wesley, 2000.[3] J. Nosek, “The Case for Collaborative Programming,” Comm. ACM, vol. 41, no. 3, pp. 105-108, 1998.[4] L. Williams, R.R. Kessler, W. Cunningham, and R. Jeffries, “Strengthening the Case for Pair Programming,” IEEE Software, vol. 17, no. 4, pp. 19-25, July/Aug. 2000.[5] N.V. Flor, “Side-by-Side Collaboration: A Case Study,” Int'l J. Human-Computer Studies, vol. 49, no. 3, pp. 201-222, 1998.[6] L. Williams and R.R. Kessler, Pair Programming Illuminated. Addison-Wesley, 2003.[7] G. Keefer, “Pair Programming: An Alternative to Reviews and Inspections,” Cutter IT J., vol. 18, no. 1, pp. 14-19, 2005.[8] G. Barnett, “XP: It's About How, Not Tao,” Application Development Advisor, Mar. 2002.[9] M. Stephens and D. Rosenberg, Extreme Programming Refactored: The Case Against XP. Springer, 2003.[10] G. Keefer, “Extreme Programming Considered Harmful for Reliable Software,” Proc. Sixth Conf. Quality Eng. in Software Technology, pp. 129-141, 2002.[11] J. Nawrocki and A. Wojciechowski, “Experimental Evaluation of Pair Programming,” Proc. 12th European Software Control and Metrics Conf., pp. 269-276, Apr. 2001.[12] A. Parrish, R. Smith, D. Hale, and J. Hale, “A Field Study of Developer Pairs: Productivity Impacts and Implications,” IEEE Software, vol. 21, no. 5, pp. 76-79, Sept./Oct. 2004.[13] M. Ciolkowski and M. Schlemmer, “Experiences with a Case Study on Pair Programming,” Proc. First Int'l Workshop Empirical Studies in Software Eng., 2002.[14] A. Cockburn, Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley, 2005.[15] J. Nawrocki, M. Jasiñski, L. Olek, and B. Lange, “Pair Programming versus Side-by-Side Programming,” Proc. 12th European Conf. Software Process Improvement, pp. 28-38, Nov. 2005.[16] K.M. Lui and K.C.C. Chan, “Software Process Fusion: Uniting Pair Programming and Individual Programming Processes,” Proc. Int'l Software Process Workshop and Int'l Workshop Software Process Simulation and Modeling, pp. 115-123, 2006.[17] M.M. Müller, “Two Controlled Experiments Concerning the Comparison of Pair Programming to Peer Review,” J. Systems and Software, vol. 78, no. 2, pp. 166-179, 2005.[18] M.M. Müller, “Are Reviews an Alternative to Pair Programming,” Empirical Software Eng., vol. 9, pp. 335-351, 2004.[19] G. Keefer, “Mutual Programming: A Practice to Improve Software Development Productivity,” Proc. Int'l Conf. Practical Software Quality and Testing '03, 2003.[20] G. Keefer, “Extreme Programming Considered Harmful for Reliable Software,” Proc. Sixth Conf. Quality Eng. in Software Technology, pp. 129-141, 2002.[21] A. Cockburn and L. Williams, “The Costs and Benefits of Pair Programming,” Proc. Second Int'l Conf. Extreme Programming and Flexible Processes in Software Eng., 2001.[22] M.M. Müller, “A Preliminary Study on the Impact of a Pair Design Phase on Pair Programming and Individual Programming,” Information and Software Technology, vol. 48, no. 5, pp. 335-344, 2006.[23] K.M. Lui and K.C.C. Chan, “Pair Programming Productivity: Novice-Novice versus Expert-Expert,” Int'l J. Human Computer Studies, vol. 64, pp. 915-925, 2006.[24] E. Arisholm, H. Gallis, T. Dyba, and D.I.K. Sjøberg, “Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise,” IEEE Trans. Software Eng., vol. 33, no. 2, pp. 65-86, Feb. 2007.[25] N. Flor and E. Hutcheins, “Analyzing Distributed Cognition in Software Teams: A Case Study of Team Programming During Perfective Software Maintenance,” Proc. Fourth Ann. Workshop Empirical Studies of Programmers, 1991.[26] R.M. Martin, Agile Software Development: Principles, Patterns and Process of Software Development. Prentice Hall, 2001.[27] S. Bryant, “Double Trouble—Mixing Qualitative and Quantitative Methods,” Proc. IEEE Symp. Visual Languages and Human Centric Computing, pp. 55-61, Sept. 2004.[28] M.A. Poff, “Pair Programming to Facilitate the Training of Newly Hired Programmers,” master's thesis, Florida Inst. of Tech nology, 2003.[29] H. Hulkko and P. Abrahamsson, “A Multiple Case Study on the Impact of Pair Programming on Product Quality,” Proc. 27th Int'l Conf. Software Eng., pp. 495-504, 2005.[30] M.M. Müller and W.F. Tichy, “Case Study: Extreme Programming in a University Environment,” Proc. 23rd Int'l Conf. Software Eng., pp. 537-544, 2001.[31] “Timeline of Visual Basic,” Wikipedia, http:/en.wikipedia.org/, 2007.[32] M.C. Daconta, Java for C/C+ Programmers. Wiley, 1996.[33] “Visual Basic: Controversy,” Wikipedia, http:/en.wikipedia. org/, 2007.[34] D.B. Mayer and A.W. Stalnaker, “Selection and Evaluation of Computer Personnel: The Research History of SIG/CPR,” Proc. 23rd ACM Nat'l Conf., pp. 657-670, 1968.[35] W.J. MeNamara and J.L. Hughes, “A Review of Research on the Selection of Computer Programmers,” Personnel Psychology, vol. 14, pp. 39-51, 1961.[36] G.P. Hollenbeck and W.J. McNamara, “CUCPAT and Programming Aptitude,” Personnel Psychology, vol. 18, no. 1, pp. 101-106, 1965.[37] A. Katz, “Prediction of Success in Automatic Data Processing Course,” Technical Note 126, US Army Personnel Research Office, 1962.[38] G.Y. Denelsky and M.G. McKee, “Prediction of Computer Programmer Training and Job Performance Using the AABP Test,” Personnel Psychology, vol. 27, no. 1, pp. 129-137, 1974.[39] J.M. Wolfe, “A New Look at Programming Aptitudes,” Business Automation, vol. 17, pp. 36-45, 1970.[40] J.M. Wolfe, “Perspectives on Testing for Programming Aptitude,” Proc. 25th ACM/CSC-ER Ann. Conf., pp. 268-277, 1971.[41] T.C. Oliver and W.K. Willis, “A Study of the Validity of the Programmer Aptitude Test,” Educational and Psychological Measurement, vol. 23, pp. 823-825, 1963.[42] R. Bauer, W.A. Mehrens, and J.F. Vinsonhaler, “Predicting Performance in a Computer Programming Course,” Educational and Psychological Measurement, vol. 28, pp. 1159-1164, 1968.[43] C.R. Bateman, “Predicting Performance in a Basic Computer Course,” Proc. Fifth Ann. Meeting of the Am. Inst. for Decision Sciences, 1973.[44] M. Tukiainen and E. Mönkkönen, “Programming Aptitude Testing as a Prediction of Learning to Program,” Proc. 14th Workshop Psychology of Programming Interest Group, pp. 45-57, 2002.[45] J. Huoman, “Predicting Programming Aptitude,” master's thesis, Dept. of Computer Science, Univ. of Joensuu, 1986.[46] T. Lorenzen and H.L. Chang, “MasterMind: A Predictor of Computer Programming Aptitude,” ACM SIGCSE Bull., vol. 38, no. 2, pp. 69-71, 2006.[47] M. Snyder, Working with Microsoft Dynamics CRM 3.0. Microsoft Press, 2006.[48] A. Wil van der, Workflow Management: Models, Methods, and Systems. MIT Press, 2002.[49] D.E. Cooke, A Concise Introduction to Computer Languages: Design, Experimentation and Paradigms. Thomson and Brooks/Cole, 2003.[50] A. Munzert, “Part IV: Computer IQ—Program Procedure,” Test Your IQ, third ed., pp. 112-117, Random House, 1994.[51] R. Allen, How to Excel at IQ Tests. Carlton Books/Mensa, 2002.[52] R.J. Calantone and C.A. Di Benedetto, “Performance and Time to Market: Accelerating Cycle Time with Overlapping Stages,” IEEE Trans. Eng. Management, vol. 47, no. 2, pp. 232-244, 2000.[53] A.W. Lazonder, “Do Two Heads Search Better than One? Effects of Student Collaboration on Web Search Behaviour and Search Outcomes,” British J. Educational Technology, vol. 36, no. 3, pp. 465-475, 2005.[54] R.G. Miller, Beyond ANOVA, Basics of Applied Statistics. John Wiley & Sons, 1986.[55] T.R.G. Green, “Instructions and Descriptions: Some Cognitive Aspects of Programming and Similar Activities,” Proc. Int'l Working Conf. Advanced Visual Interfaces, pp. 21-28, 2000.[56] D. Jackson, Software Abstractions. MIT Press, 2006.[57] C.R. Holloman and H.W. Hendrick, “Problem Solving in Different Sized Groups,” Personnel Psychology, vol. 24, no. 3, pp. 489-500, 1971.[58] J. Puncochar and P.W. Fox, “Confidence in Individual and Group Decision Making: When 'Two Heads' Are Worse than One,” J.Educational Psychology, vol. 96, pp. 582-591, 2004.[59] L.A. Williams, “The Collaborative Software Process,” PhD dissertation, Univ. of Utah, 2000.[60] I.L. Janis, Groupthink, second ed. Houghton Mifflin, 1982.[61] M.L. Pate, G.W. Wardlow, and D.M. Johnson, “Effects of Thinking Aloud Pair Problem Solving on the Troubleshooting Performance of Undergraduate Agriculture Students in a Power Technology Course,” J. Agricultural Education, vol. 45, no. 4, pp. 1-11, 2004.[62] D.R. Forsyth, Group Dynamics, third ed. Brooks/Cole, 1999.

Index Terms:
Experimental design, Programming teams
Citation:
Kim Man Lui, Keith C.C. Chan, John Nosek, "The Effect of Pairs in Program Design Tasks," IEEE Transactions on Software Engineering, vol. 34, no. 2, pp. 197-211, Mar./Apr. 2008, doi:10.1109/TSE.2007.70755
Usage of this product signifies your acceptance of the Terms of Use.