Abstract
Pair programming, two programmers collaborating on design, coding and testing, has been a controversial focus of interest as Agile Software Development continues to grow in popularity both among academics and practitioners. As a result of the many investigations into the effectiveness of pair programming in the last decade, many have come to realize that there are many hard-to-control factors in pair programming in particular and in empirical software engineering in general. Because of these factors, the results of many pair programming experiments are not easy to replicate and the relative productivity of pair and solo programming are still not fully understood. So far, it has been concluded by previous studies that pair programming productivity can vary, but few have shown how and why this is the case. In this chapter, we discuss a number of challenging factors in the adoption of pair programming and present an approach to deal with them. We discuss how different factors may affect our experimental outcomes and improve experiment design to reveal how and why pair programming can be made productive, at least, in controlled situations.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Adair, G. (1984). "The Hawthorne effect: A reconsideration of the methodological artifact" Journal of Appl. Psychology vol 69, no 2, 334-345.
Arisholm, E., Gallis, H., Dybå, T. and Sjøberg, D.I.K. (2007). “Evaluating pair programming with respect to system complexity and programmer expertise,” IEEE, Transactions on Software Engineering, vol. 33, no. 2, pp. 65-86.
Bateman, C.R. (1973). “Predicting performance in a basic computer course,” Proceedings of the Fifth Annual Meeting of the Amer. Inst. for Decision Sciences, Boston, Mass.
Bellini, E., G. Canfora, F. Garcia, M. Piattini, C.A. Visaggio (2005). "Pair designing as a practice for enforcing and diffusing design knowledge",Journal of Software Maintenance and Evolution: Research and Practice, Volume 17,Issue 6, pp 401 - 423.
Calantone, R.J. and Di Benedetto, C.A. (2000). “Performance and time to market: accelerating cycle time with overlapping stages,” IEEE Transactions on Engineering Management, vol 47, no 2, pp 232-244.
Ciolkowski, M. and Schlemmer M. (2002). “Experiences with a case study on pair programming,” Proceedings of the Workshop on Empirical Studies in Software Engineering, Rovaniemi, Finland.
Curtis, B. (1986). “By the way, did anyone study any real programmers?” In E. Soloway and S. Iyengar (eds), Empirical Studies of Programmers, First Workshop, Ablex Publishing Corporation, Norwood, NJ, pp 256-262.
Denelsky, G.Y., and McKee, M.G. (1974). “Prediction of computer programmer training and job performance using the AABP test,” Personal Psychology, vol 27, no 1, pp. 129-137.
Flor, N. and Hutchins, E. (1991). “Analyzing distributed cognition in software teams: a case study of team programming during perfective software maintenance,” Proceedings of Empirical Studies of Programmers: Fourth Workshop, Norwood, NJ: Ablex.
Forsyth, D. R. (1999). Group dynamics (3rd ed), Belmont, Calif.: Brooks/Cole,.
Garbus, J.R. Solomon D.S. and Tretter, B. (1995). SYBASE DBA survival guide, Indianapolis, Ind.: Sams Pub.
Hanney, Jo E., Dybå, Tore, Arisholm, Erik, Sjøberg, Dag I.K.. (2009). “The effectiveness of pair programming: A meta-analysis.” Information and Software Technology, vol 51, pp 1110-1122.
Hulkko and Abrahamsson, P. (2005). “A multiple case study on the impact of pair programming on product quality,” Proceedings of the 27th International Conference on Software Engineering, St. Louis, MO, USA, pp 495-504.
Hunt, Andrew and Thomas, David. (1999). “The Pragmatic Programmer: From Journeyman to Master.” October. The Pragmatic Bookshelf.
Kent, B. (2000). Extreme Programming Explained: Embrace Change, Reading, Mass: Addison-Wesley.
Lorenzen, T. and Chang, H.L. (2006). “MasterMind: a predictor of computer programming aptitude,” ACM SIGCSE Bulletin, vol 38, no 2, pp 69 – 71.
Lui, K.M. and Chan, K.C.C. (2006). “Pair programming productivity: novice-novice vs. expertexpert,” International Journal of Human Computer Studies, vol 64, pp. 915-925.
Lui, K.M., Chan, K.C.C. (2008). “Software process fusion by combining pair and solo programming” IET Software, vol 2, no 4, pp 379-390.
Lui, K.M., Chan, K.C.C., Nosek, J. (2008). “The effect of pairs in program design tasks,” IEEE Transactions on Software Engineering, vol 34, no 2, pp 197-211
Maier, Norman R.; Burke, Ronald J. (1967). “Response Availability as a Factor in the Problem-Solving Performance of Males and Females.” Journal of Personality and Social Psychology. Vol. 5(3), Mar, 304-310.
Microsoft (2003). MCAD/MCSE/MCDBA Self-Paced Training Kit: Microsoft SQL Server 2000 Database Design and Implementation, Exam 70-229, (2nd Edition), Microsoft Corporation.
Miller, R.G. (1986). Beyond ANOVA, Basics of Applied Statistics, New York: John Wiley & Sons.
Müller, M.M. (2006). “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.
Munzert, A. (1994). “Part IV: Computer I.Q.– Program Procedure,” Test Your IQ, third Edition, Random House, pp.112-117.
Nawrocki, J. and Wojciechowski, A. (2001). “Experimental evaluation of pair programming,” Proceedings of the 12th European Software Control and Metrics Conference, London, April, pp 269–276.
Nosek, J. (1998). “The case for collaborative programming,” Communication of ACM, vol 41, no 3, pp 105-108.
Tukiainen, M. and Mönkkönen, E. (2002). “Programming aptitude testing as a prediction of learning to program,” Proceedings 14th Workshop of the Psychology of Programming Interest Group, Brunel University, pp 45-57.
Williams, L. and Kessler, R.R. (2003). Pair programming illuminated, Boston, Mass.: Addison-Wesley.
Williams, L., Kessler, R.R., Cunningham, W. and Jeffries, R. (2000). “Strengthening the case for pair-programming,” IEEE Software, vol 17, no 4, pp 19-25.
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A. (2000)."Experimentation in software engineering - An Introduction," Springer.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Lui, K.M., Barnes, K.A., Chan, K.C. (2010). Pair Programming: Issues and Challenges. In: Dingsøyr, T., Dybå, T., Moe, N. (eds) Agile Software Development. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12575-1_7
Download citation
DOI: https://doi.org/10.1007/978-3-642-12575-1_7
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12574-4
Online ISBN: 978-3-642-12575-1
eBook Packages: Computer ScienceComputer Science (R0)