Abstract
In the last decade there has been increasing interest in pair programming. However, despite work has been done, there is still a lack of substantial evidence of pair programming effects in industrial environments. To increase a body of evidence regarding the real benefits of pair programming, we investigate its relationship with software defects. The analysis is based on 14-months data collected from a large Italian manufacturing company. The team of 17 developers adopted a customized version of extreme programming and used pair programming on a daily basis. We explore and compare the defect rate of the code changed by doing pair and solo programming. The results show that defects appear to be lower for the code modified during pair programming. As a consequence, we formulate a hypothesis that pair programming is effective in reducing the introduction of new defects when existing code is modified.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Arisholm, E., Gallis, H., Dyba, T., Sjoberg, D.I.K.: Evaluating pair programming with respect to system complexity and programmer expertise. IEEE Trans. Softw. Eng. 33(2), 65–86 (2007)
Basili, V.: Applying the goal question metric paradigm in the experience factory. In: Proceedings of the Tenth Annual Conference of Software Metrics and Quality Assurance in Industry (1993)
Begel, A., Nagappan, N.: Pair programming: what’s in it for me? In: ESEM 2008: Proceedings of the Second ACM-IEEE International Symposium on Empirical Software Engineering and Measurement, pp. 120–128. ACM, New York (2008)
Canfora, G., Cimitile, A., Garcia, F., Piattini, M., Visaggio, C.A.: Evaluating performances of pair designing in industry. J. Syst. Softw. 80(8), 1317–1327 (2007)
Chong, J., Hurlbutt, T.: The social dynamics of pair programming. In: ICSE 2007: Proceedings of the 29th International Conference on Software Engineering, pp. 354–363. IEEE Computer Society, Washington, DC (2007)
Cockburn, A., Williams, L.: The costs and benefits of pair programming, pp. 223–243 (2001)
Coman, I.D., Sillitti, A., Succi, G.: A case-study on using an automated in-process software engineering measurement and analysis system in an industrial environment. In: ICSE 2009: Proceedings of the 31st International Conference on Software Engineering, pp. 89–99. IEEE Computer Society, Washington, DC (2009)
Dyba, T., Arisholm, E., Sjøberg, D.I.K., Hannay, J.E., Shull, F.: Are two heads better than one? on the effectiveness of pair programming. IEEE Softw. 24(6), 12–15 (2007)
Fronza, I., Sillitti, A., Succi, G.: An interpretation of the results of the analysis of pair programming during novices integration in a team. In: ESEM 2009: Proceedings of the 2009 3rd International Symposium on Empirical Software Engineering and Measurement, pp. 225–235. IEEE Computer Society, Washington, DC (2009)
Hulkko, H., Abrahamsson, P.: A multiple case study on the impact of pair programming on product quality. In: ICSE 2005: Proceedings of the 27th International Conference on Software Engineering, pp. 495–504. ACM, New York (2005)
Lui, K.M., Chan, K.C.C., Nosek, J.: The effect of pairs in program design tasks. IEEE Trans. Softw. Eng. 34(2), 197–211 (2008)
Madeyski, L.: The impact of pair programming and test-driven development on package dependencies in object-oriented design — an experiment. In: Münch, J., Vierimaa, M. (eds.) PROFES 2006. LNCS, vol. 4034, pp. 278–289. Springer, Heidelberg (2006)
Muller, M.M.: Are reviews an alternative to pair programming? Empirical Softw. Engg. 9(4), 335–351 (2004)
Muller, M.M.: A preliminary study on the impact of a pair design phase on pair programming and solo programming. Inf. Softw. Technol. 48, 335–344 (2006)
Nawrocki, J., Wojciechowski, A.: Experimental evaluation of pair programming. In: Proc. European Software Control and Metrics Conf., ESCOM (2001)
Phongpaibul, M., Boehm, B.: An empirical comparison between pair development and software inspection in thailand. In: ISESE 2006: Proceedings of the 2006 ACM/IEEE International Symposium on Empirical Software Engineering, pp. 85–94. ACM, New York (2006)
Sillitti, A., Janes, A., Succi, G., Vernazza, T.: Collecting, integrating and analyzing software metrics and personal software process data. In: EUROMICRO 2003: Proceedings of the 29th Conference on EUROMICRO, p. 336. IEEE Computer Society, Washington, DC (2003)
Sison, R.: Investigating pair programming in a software engineering course in an asian setting. In: APSEC 2008: Proceedings of the 2008 15th Asia-Pacific Software Engineering Conference, pp. 325–331. IEEE Computer Society, Washington, DC (2008)
Sison, R.: Investigating the effect of pair programming and software size on software quality and programmer productivity. In: APSEC 2009: Proceedings of the 2009 16th Asia-Pacific Software Engineering Conference, pp. 187–193. IEEE Computer Society, Washington, DC (2009)
Succi, G., Pedrycz, W., Marchesi, M., Williams, L.: Preliminary analysis of the effects of pair programming on job satisfaction. In: Proceedings of the 3rd International Conference on Extreme Programming (XP), pp. 212–215 (2002)
Vanhanen, J., Abrahamsson, P.: Perceived effects of pair programming in an industrial context. In: EUROMICRO 2007: Proceedings of the 33rd EUROMICRO Conference on Software Engineering and Advanced Applications, pp. 211–218. IEEE Computer Society, Washington, DC (2007)
Vanhanen, J., Korpi, H.: Experiences of using pair programming in an agile project. In: HICSS 2007: Proceedings of the 40th Annual Hawaii International Conference on System Sciences, p. 274b. IEEE Computer Society, Washington, DC (2007)
Vanhanen, J., Lassenius, C.: Effects of pair programming at the development team level: an experiment. In: International Symposium on Empirical Software Engineering, pp. 336–345 (2005)
Williams, L., Kessler, R.R., Cunningham, W., Jeffries, R.: Strengthening the case for pair programming. IEEE Softw. 17(4), 19–25 (2000)
Williams, L., Shukla, A., Anton, A.I.: An initial exploration of the relationship between pair programming and brooks’ law. In: Proceedings of the Agile Development Conference, pp. 11–20. IEEE Computer Society, Washington, DC (2004)
Phongpaibul, M., Boehm, B.: A replicate empirical comparison between pair development and software development with inspection. In: ESEM 2007: Proceedings of the First International Symposium on Empirical Software Engineering and Measurement, pp. 265–274. IEEE Computer Society, Washington, DC (2007)
Nosek, J.T.: The case for collaborative programming. Commun. ACM 41(3), 105–108 (1998)
Xu, S., Chen, X.: Pair programming in software evolution. In: Canadian Conference on Electrical and Computer Engineering, pp. 1846–1849 (2005)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2011 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Phaphoom, N., Sillitti, A., Succi, G. (2011). Pair Programming and Software Defects – An Industrial Case Study. In: Sillitti, A., Hazzan, O., Bache, E., Albaladejo, X. (eds) Agile Processes in Software Engineering and Extreme Programming. XP 2011. Lecture Notes in Business Information Processing, vol 77. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-20677-1_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-20677-1_15
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-20676-4
Online ISBN: 978-3-642-20677-1
eBook Packages: Computer ScienceComputer Science (R0)