Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Quid Pro Quo: An Exploration of Reciprocity in Code Review

Quid Pro Quo: An Exploration of Reciprocity in Code Review

Presentation for MSR Virtual Hackathon 2022

Tweet

Other Decks in Research

Transcript

  1. Quid Pro Quo: An Exploration of Reciprocity in Code Review

    Carlos Gavidia-Calderon DongGyun Han Amel Bennaceur MSR Virtual Hackathon 2022
  2. — Code Reviewer at Microsoft (taken from “Code Reviewing in

    the Trenches: Challenges and Best Practices” by MacLeod et al.) “It’s just this big incomprehensible mess… then you can’t add any value because they are just going to explain it to you and you’re going to parrot back what they say.” Lydia Pintscher - https://commons.wikimedia.org/wiki/File:How_to_get_Wikidata_code_review_done.jpg On Code Review
  3. Reciprocity “Social life within an ayllu circulates through reciprocal appropriations

    of energy and skill … the most basic of which is called ayni. For example, brothers-in-law labour in each other’s fields; if Luis helps Serafeo today, Serafeo owes Luis a day’s work in the near future.” Machula19 - https://commons.wikimedia.org/wiki/File:Q%27ero_shaman_from_Hatun_Q%27ero_community.jpg —Catherine J. Allen (“RIGHTING IMBALANCE: Striving for Well-Being in the Andes”, 2019)
  4. Granger Causality “We consider that unidirectional reciprocity influences the behaviour

    of a developer if, in their VAR model of time series (r t , c t )′, a formal test shows that c Granger-causes r or vice versa… we identify reciprocity if, for a given developer, the number of code reviews they perform can be predicted by the number of code reviews they receive.”
  5. Identifying Reciprocity in Code Review We extract pull-request data from

    GitHub. From this data, we extract time series r t and c t per developer, and use a Granger-causality test to detect reciprocity.
  6. Results GitHub Repository Pull Requests Active Developers Valid VAR Models

    Reciprocity Found Apache Kafka 10.2K 7 3 1 Eclipse Jetty 2.8K 5 5 0 Deeplearning4j 3.5K 2 1 0 ReactJS 8.4K 5 3 2 GraphQL 2.2K 1 1 0 Kubernetes 47.2K 3 2 2 Visual Studio Code 10.2K 9 5 1 TypeScript 13.7 4 3 0 TensorFlow 17.3K 6 1 0
  7. This presentation template was created by Slidesgo, and includes icons

    by Flaticon and infographics & images by Freepik ACKNOWLEDGMENTS This work was supported by the Engineering and Physical Sciences Research Council [grant numbers EP/V026747/1, EP/R013144/1].