skip to main content
10.1145/2491411.2491444acmconferencesArticle/Chapter ViewAbstractPublication PagesfseConference Proceedingsconference-collections
research-article

Convergent contemporary software peer review practices

Published:18 August 2013Publication History

ABSTRACT

Software peer review is practiced on a diverse set of software projects that have drastically different settings, cultures, incentive systems, and time pressures. In an effort to characterize and understand these differences we examine two Google-led projects, Android and Chromium OS, three Microsoft projects, Bing, Office, and MS SQL, and projects internal to AMD. We contrast our findings with data taken from traditional software inspection conducted on a Lucent project and from open source software peer review on six projects, including Apache, Linux, and KDE. Our measures of interest include the review interval, the number of developers involved in review, and proxy measures for the number of defects found during review. We find that despite differences among projects, many of the characteristics of the review process have independently converged to similar values which we think indicate general principles of code review practice. We also introduce a measure of the degree to which knowledge is shared during review. This is an aspect of review practice that has traditionally only had experiential support. Our knowledge sharing measure shows that conducting peer review increases the number of distinct files a developer knows about by 66% to 150% depending on the project. This paper is one of the first studies of contemporary review in software firms and the most diverse study of peer review to date.

References

  1. J. Asundi and R. Jayant. Patch review processes in open source software development communities: A comparative case study. In HICSS: Proceedings of the 40th Annual Hawaii International Conference on System Sciences, page 10, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. A. Bacchelli and C. Bird. Expectations, outcomes, and challenges of modern code review. In Proceedings of the International Conference on Software Engineering. IEEE, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. C. Bird, A. Gourley, and P. Devanbu. Detecting patch submission and acceptance in oss projects. In MSR: Proceedings of the Fourth International Workshop on Mining Software Repositories, page 4. IEEE Computer Society, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. D. Bisant and J. Lyle. A two-person inspection method to improve programming productivity. IEEE Transactions on Software Engineering, 15(10):1294–1304, 1989. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. F. Buck. Indicators of quality inspections. IBM Syst. Commun. Division, Tech. Rep. TR, 21, 1981.Google ScholarGoogle Scholar
  6. J. Cohen. Best Kept Secrets of Peer Code Review. Smart Bear Inc., 2006.Google ScholarGoogle Scholar
  7. T. DeMarco. Contolling Software Projects: Management, Measurement, and Estimation. Prentice Hall, 1986. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. P. M. Duvall, S. Matyas, and A. Glover. Continuous integration: improving software quality and reducing risk. Addison-Wesley Professional, 2007. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. M. Fagan. Design and Code Inspections to Reduce Errors in Program Development. IBM Systems Journal, 15(3):182–211, 1976. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. M. Fagan. A history of software inspections. Software pioneers: contributions to software engineering, Springer-Verlag, Inc., pages 562–573, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Gerrit. Web based code review and project management for git based projects. http://code.google.com/p/gerrit/.Google ScholarGoogle Scholar
  12. P. M. Johnson. Reengineering inspection. ACM Communications, 41(2):49–52, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. P. Kampstra. Beanplot: A boxplot alternative for visual comparison of distributions. Journal of Statistical Software, Code Snippets 1, 28:1–9, 2008.Google ScholarGoogle Scholar
  14. C. Larman and V. Basili. Iterative and incremental developments: a brief history. Computer, 36(6):47 – 56, June 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. A. Mockus, R. T. Fielding, and J. Herbsleb. Two case studies of open source software development: Apache and Mozilla. ACM Transactions on Software Engineering and Methodology, 11(3):1–38, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. A. Mockus and J. D. Herbsleb. Expertise browser: a quantitative approach to identifying expertise. In ICSE: Proceedings of the 24th International Conference on Software Engineering, pages 503–512. ACM Press, 2002. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. M. Mukadam, C. Bird, and P. C. Rigby. Gerrit software code review data from android. In Proceedings of the 10th Working Conference on Mining Software Repositories, MSR ’13, pages 45–48, Piscataway, NJ, USA, 2013. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. M. Nurolahzade, S. M. Nasehi, S. H. Khandkar, and S. Rawal. The role of patch review in software evolution: an analysis of the mozilla firefox. In International Workshop on Principles of Software Evolution, pages 9–18, 2009. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. A. Porter, H. Siy, A. Mockus, and L. Votta. Understanding the sources of variation in software inspections. ACM Transactions Software Engineering Methodology, 7(1):41–79, 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. Ratcliffe. Moving software quality upstream: The positive impact of lightweight peer code review. In Pacific NW Software Quality Conference, 2009.Google ScholarGoogle Scholar
  21. E. S. Raymond. The Cathedral and the Bazaar. O’Reilly and Associates, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. P. Rigby, B. Cleary, F. Painchaud, M. Storey, and D. German. Contemporary peer review in action: Lessons from open source development. Software, IEEE, 29(6):56 –61, nov.-dec. 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. P. C. Rigby. Understanding Open Source Software Peer Review: Review Processes, Parameters and Statistical Models, and Underlying Behaviours and Mechanisms. http://hdl.handle.net/1828/3258 University of Victoria, Canada, Dissertation, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. P. C. Rigby, D. M. German, and M.-A. Storey. Open source software peer review practices: A case study of the apache server. In ICSE: Proceedings of the 30th international conference on Software Engineering, pages 541–550, 2008. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. P. C. Rigby and M.-A. Storey. Understanding broadcast based peer review on open source software projects. In Proceeding of the 33rd international conference on Software engineering, ICSE ’11, pages 541–550, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. G. V. Rossum. An open source app: Rietveld code review tool. https://developers.google.com/ appengine/articles/rietveld.Google ScholarGoogle Scholar
  27. C. Sauer, D. R. Jeffery, L. Land, and P. Yetton. The Effectiveness of Software Development Technical Reviews: A Behaviorally Motivated Program of Research. IEEE Transactions Software Engineering, 26(1):1–14, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. R. Schwartz. Interview with Shawn Pearce, Google Engineer, on FLOSS Weekly. http://www.youtube.com/watch?v=C3MvAQMhC_M.Google ScholarGoogle Scholar
  29. L. G. Votta. Does every inspection need a meeting? SIGSOFT Softw. Eng. Notes, 18(5):107–114, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. E. Weller. Lessons from three years of inspection data. IEEE Software, 10(5):38–45, 1993. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. K. E. Wiegers. Peer Reviews in Software: A Practical Guide. Addison-Wesley Information Technology Series. Addison-Wesley, 2001.Google ScholarGoogle Scholar
  32. R. K. Yin. Case Study Research: Design and Methods, volume 5 of Applied Social Research Methods Series. Sage Publications Inc., 3 edition, 2003.Google ScholarGoogle Scholar

Index Terms

  1. Convergent contemporary software peer review practices

      Recommendations

      Comments

      Login options

      Check if you have access through your login credentials or your institution to get full access on this article.

      Sign in
      • Published in

        cover image ACM Conferences
        ESEC/FSE 2013: Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
        August 2013
        738 pages
        ISBN:9781450322379
        DOI:10.1145/2491411

        Copyright © 2013 ACM

        Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

        Publisher

        Association for Computing Machinery

        New York, NY, United States

        Publication History

        • Published: 18 August 2013

        Permissions

        Request permissions about this article.

        Request Permissions

        Check for updates

        Qualifiers

        • research-article

        Acceptance Rates

        Overall Acceptance Rate112of543submissions,21%

        Upcoming Conference

        FSE '24

      PDF Format

      View or Download as a PDF file.

      PDF

      eReader

      View online with eReader.

      eReader