Paper discussion: Bacchelli and Bird [1]

We discuss the paper “Expectations, outcomes, and challenges of modern code review[1] by A. Bacchelli and C. Bird

Paper

  • Appeared at ICSE 2013
  • Very strongly cited

People

  • Alberto Bacchelli is a prof at the University of Zurich (former TU Delft)
    • Extensive work on all aspects of code review
    • Also work on commmunication and team work
    • Intern at Microsoft
  • Christian Bird is a researcher at Microsoft Research Redmond
    • Multifaced work on how software teams work together
    • Started with OSS communities, Microsoft-centric etc
    • Also, work on code analysis

Motivation

  • Git revolutionalized not just version control, but also code review
  • Code review is (was) changing: From rigid processes, we go to per commit or per feature changes
  • We don’t know the processes that emerge and the challenges that developers face
  • We need to discover them to inform the design of tools

Research method

We started without a priori hypotheses…:

  • observed 17 industrial developers performing code review
  • interviewed these developers using a semi-structured interviews
  • manually inspected and classified the content of 570 comments
  • surveyed 165 managers and 873 programmers

This is called a grounded theory approach

Research method schematically

Results

  • Why do programmers do code reviews?: Find defects, Code Improvement, Alternative Solutions, Knoweledge Transfer Team Awareness (self-reported)

  • Outcomes of code review: Improvements, finding defects, knoweldge transfer (through comment analysis)

  • Challenges when code reviewing: Understanding the code and the impact of the change, context is important, communication is important

Questions

  • What is Grounded Theory?

  • The main outcome of the paper is: “Code review is not (much) about quality improvement, but for sharing team knoweledge” How does this reflect your experiences?

  • How could we validate the findings of this paper

  • Read the paper: Modern Code Review: A Case Study at Google What analogies do we find between the two companies?

  • Why is this paper important?

Discussion summary

by Zequn Zhou

Q: What is a socio-technical system? A: It is a process on which both the interaction between people and technological aspects have effect. They should both be taken in consideration when solving a problem. For example, nature is a technical system because people are independent of the nature itself. But a system involving both nature and people would be a social-technical system.

Q: How does code review improve team awareness? A: People need to communicate when solving a problem. Then they will have a deeper understanding about the goals and what each member of the team is working on.

Q: What kind of defects are found during code review? A: Code style, logic error and some corner cases

Q: How should one find out if the theory holds? A: Collecting data to confirm or finding a counter example

Then grounded theory was discussed. Grounded theory is often used when having no concrete idea of what to explore, for example in the form of a concrete theory.

Q: Why is this paper important? A: This paper introduces the concept of modern code review using grounded theory and useful data are obtained from quantitative exploration.

Paper discussion: McIntosh et al.[2]

We discuss the paper The impact of code review coverage and code review participation on software quality: A case study of the Qt, VTK, and ITK projects, by McIntosh et al.[2]

Paper

People

Motivation

Research method

Results

Discussion / Implications

Questions

Technical questions

Meta questions

Discussion summary

by Zequn Zhou and Zina Wang

Q: What are the good aspects of this paper? A: It is a very detailed paper and the methods used in the paper are explained pretty well.

Q: How does the paper select the systems on which research is performed? A: According to the number of reviews.

Q: Why do they choose Gerrit? A: All code review messages are saved and easily retrievable, as opposed to previously used systems.

Q: How did team members discuss about their code before the invention of Gerrit? A: Through email. Then Gerrit was created. Then GitHub was created, which has a lot of users nowadays.

Q: What is a drawback of this paper? A: According to the extracted data, the delay before starting a code review cannot be discovered, which may affect the result.

Q: What is the optimal size for a code review group for highest efficiency? A: Someone thinks it should be 5 because in this case group members can be quite familiar with each other, which is helpful to the code review. But someone else feels like 5 members are too much because there will be too many code to review. 3 people would be better.

Q: Besides coverage and participation, what other code review related property can be considered to have an impact on software quality? A: Getting paid or not when doing the code review. It can improve the quality because people are motivated because of the money. But meanwhile it may decrease the quality because people just focus on the money.

References

[1]
A. Bacchelli and C. Bird, “Expectations, outcomes, and challenges of modern code review,” in Proceedings of the 2013 international conference on software engineering, 2013, pp. 712–721.
[2]
S. McIntosh, Y. Kamei, B. Adams, and A. E. Hassan, “The impact of code review coverage and code review participation on software quality: A case study of the qt, VTK, and ITK projects,” in Proceedings of the 11th working conference on mining software repositories, 2014, pp. 192–201.
[3]
M. Beller, A. Bacchelli, A. Zaidman, and E. Juergens, “Modern code reviews in open-source projects: Which problems do they fix?” in Proceedings of the 11th working conference on mining software repositories, 2014, pp. 202–211.
[4]
C. Bird, T. Carnahan, and M. Greiler, “Lessons learned from building and deploying a code review analytics platform,” in Proceedings of the 12th working conference on mining software repositories, 2015, pp. 191–201.
[5]
M. E. Fagan, “Design and code inspections to reduce errors in program development,” IBM Systems Journal, vol. 15, no. 3, pp. 182–211, 1976.
[6]
G. Gousios, M. Pinzger, and A. van Deursen, “An exploratory study of the pull-based software development model,” in Proceedings of the 36th international conference on software engineering, 2014, pp. 345–355.