Investigating the Impact of Experience and Solo/Pair Programming on Coding Efficiency: Results and Experiences from Coding Contests

  • Dietmar Winkler
  • Martin Kitzler
  • Christoph Steindl
  • Stefan Biffl
Part of the Lecture Notes in Business Information Processing book series (LNBIP, volume 149)

Abstract

Developing working software is a key goal of software development. Beyond software processes, following traditional or agile approaches, coding strategies, i.e., solo and pair programming, are important aspects for constructing high quality software code. In addition developer experience has a critical impact on coding efficiency and code quality. Pair programming aims at increasing coding efficiency, code quality, and supports learning of development team members. Several controlled experiments have been conducted to investigate benefits of different development strategies, learning effects, and the impact on code quality in academia and industry. Nevertheless, reported study limitations and various results in different contexts require more studies to fully understand the effects of experience and programming strategies. Coding contests can be promising approaches to (a) involve different participant groups, e.g., junior and senior programmers and professionals, and (b) can represent a well-defined foundation for planning and executing large-scale empirical studies. In this paper we present coding contests as a promising strategy for conducting empirical studies with heterogeneous groups of participants and report on a set of findings from past coding contests. Main results are (a) that the concept of coding contests is a promising way for supporting empirical research and (b) the results partly confirm previous studies that report on the benefits of pair programming and development experience.

Keywords

Coding Contests Large Scale Controlled Experiments Solo Programming Pair Programming Developer Experience 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Amraii, S.A.: Observations on teamwork strategies in the ACM international collegiate programming contest. Magazine Crossroads 14(1) (2007)Google Scholar
  2. 2.
    Arisholm, E., Gallis, H., Dyba, T., Sjoberg, D.I.K.: Evaluating Pair Programming with Respect to System Complexity and Programmer Expertise. IEEE TSE 33(2) (2007)Google Scholar
  3. 3.
    Beck, K.: Test Driven Development by Example. Addison-Wesley Longman (2002)Google Scholar
  4. 4.
    Dyba, T., Arisholm, E., Sjoberg, D.I.K., Hannay, J.E., Shull, F.: Are two heads better than one? On the Effectiveness of Pair Programming. IEEE Software 24(6) (2007)Google Scholar
  5. 5.
    Cockburn A., Williams L.: The costs and the benefits of pair programming. In: XP Google Scholar
  6. 6.
    Hulkko, H., Abrahamsson, P.: A Multiple Case Study on the Impact of Pair Programming on Product Quality. In: Proceedings of ICSE, pp. 495–504 (2005)Google Scholar
  7. 7.
    Juristo, N., Moreno, A.M.: Basics in Software Engineering Experimentation. Springer (2010)Google Scholar
  8. 8.
    McDowell, C., Werner, L., Bullock, H., Fernald, J.: The Effects of Pair Programming on Performance in an introductory programming course. In: Proc. of the 33rd SIGCSE Techn. Symp. on Computer Science Education, pp. 38–42 (2002)Google Scholar
  9. 9.
    Müller, M.: Two controlled experiments concerning the comparison of pair programming to peer reviews. Journal of Systems and Software 78, 166–179 (2005)CrossRefGoogle Scholar
  10. 10.
    Nawrocki, K., Wojciechowski, A.: Experimental Evaluation of Pair Programming. In: Proc. of the 12th European Software Control and Metrics Conf., pp. 269–276 (2001)Google Scholar
  11. 11.
    Padberg, F., Müller, M.: Analyzing the Cost and Benefit of Pair Programming. In: Proc. of the Int. Symposium on Software Metrics, pp. 166–177 (2003)Google Scholar
  12. 12.
    Parrish, A., Smith, R., Hale, D., Hale, J.: A field study of developer pairs: Productivity impacts and implications. IEEE Software 21(2), 76–79 (2004)CrossRefGoogle Scholar
  13. 13.
    Phongpaibul, M., Boehm, B.: An empirical comparison between pair development and software inspection in Thailand. In: Proc. of ISESE, pp. 85–94 (2006)Google Scholar
  14. 14.
    Sommerville, I.: Software Engineering, 9th edn. Addison-Wesley Longman (2010)Google Scholar
  15. 15.
    Williams, L., Kessler, R.R., Cunningham, W., Jeffries, R.: Strengthening the case for pair programming. IEEE Software, 19–25 (2000)Google Scholar
  16. 16.
    Williams, L., McDowell, C., Nagappan, N., Fernald, J., Werner, L.: Building Pair Programming Knowledge through a Family of Experiments. In: Proc. of ISESE (2003)Google Scholar
  17. 17.
    Winkler, D., Varvaroi, R., Goluch, G., Biffl, S.: An Empirical Study On Integrating Analytical Quality Assurance Into Pair Programming. Short Paper, ISESE (2006)Google Scholar
  18. 18.
    Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslen, A.: Experimentation in Software Engineering. Springer (2012)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2013

Authors and Affiliations

  • Dietmar Winkler
    • 1
  • Martin Kitzler
    • 2
  • Christoph Steindl
    • 2
  • Stefan Biffl
    • 1
  1. 1.Christian Doppler Laboratory for Software Engineering Integration for Flexible Automation SystemsVienna University of Technology, Institute of Software Technology and Interactive SystemsViennaAustria
  2. 2.Catalysts GmbHLinzAustria

Personalised recommendations