This presentation provides an overview of fairness in general, and specifically, how it can be applied to code reviews. It also describes an empirical study of openstack that shows that fairness in their code review process requires some attention as some participants feel that their contributions are being unfairly reviewed.
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Fairness and Code Reviews
1. “Was my contribution fairly
reviewed”
A framework to study the perception of fairness in
modern code reviews
Daniel M German
University of Victoria
dmg@uvic.ca
17. ICSE experiments:
• 2017
• Structured reviews
• Reviewers were anonymous among PC
• Public “Reviewer guidelines”
18. ICSE experiments:
• 2017
• Structured reviews
• Reviewers were anonymous among PC
• Public “Reviewer guidelines”
• No “subreviewer” (e.g reviews done by students)
19. ICSE experiments:
• 2017
• Structured reviews
• Reviewers were anonymous among PC
• Public “Reviewer guidelines”
• No “subreviewer” (e.g reviews done by students)
• No list of research topics
26. What is ICSE trying to solve?
• Inconsistency of reviewing
27. What is ICSE trying to solve?
• Inconsistency of reviewing
• Bias
28. What is ICSE trying to solve?
• Inconsistency of reviewing
• Bias
• Topic
29. What is ICSE trying to solve?
• Inconsistency of reviewing
• Bias
• Topic
• Interpersonal
30. What is ICSE trying to solve?
• Inconsistency of reviewing
• Bias
• Topic
• Interpersonal
• Lack of transparency
31. What is ICSE trying to solve?
• Inconsistency of reviewing
• Bias
• Topic
• Interpersonal
• Lack of transparency
The ICSE reviewer lottery
32. What is ICSE trying to solve?
• Inconsistency of reviewing
• Bias
• Topic
• Interpersonal
• Lack of transparency
The ICSE reviewer lottery
Some participants consider the process unfair
41. Fair (Merriam Webster):
1.
a. Marked with impartiality and
honesty: free from self-interest,
prejudice, or favouritism
42. Fair (Merriam Webster):
1.
a. Marked with impartiality and
honesty: free from self-interest,
prejudice, or favouritism
b. Conforming with the established
rules
45. Justice (Merriam-Webster):
1.
a. The maintenance or administration
of what is just, specially by the
impartial adjustment of conflicting
claims or the assignment of
merited rewards or punishments
53. Organizational Fairness/Justice:
‣ how to decide and allocate
‣ resources and decisions
‣ in a way that is fair and just
‣ to the individuals and the group as a
whole.
54. In general, we care about fairness
when somebody makes a decision
that affects us.
55. Fairness theory “focuses on explaining
when authorities should be held
accountable for unfavourable events”
68. Distributive Fairness
• Should those that contribute more
receive more?
• How do you measure contribution?
• Is there a minimal standard defined in
the system?
79. Procedural Fairness
• Concerned with the rules/process of making a decision:
• Consistency of decisions across time
• Bias suppression of decision makers
80. Procedural Fairness
• Concerned with the rules/process of making a decision:
• Consistency of decisions across time
• Bias suppression of decision makers
• Accuracy of information used in decisions
81. Procedural Fairness
• Concerned with the rules/process of making a decision:
• Consistency of decisions across time
• Bias suppression of decision makers
• Accuracy of information used in decisions
• Control: those affected should have a voice
82. Procedural Fairness
• Concerned with the rules/process of making a decision:
• Consistency of decisions across time
• Bias suppression of decision makers
• Accuracy of information used in decisions
• Control: those affected should have a voice
• Correctability: there should exist an appeal process
83. Procedural Fairness
• Concerned with the rules/process of making a decision:
• Consistency of decisions across time
• Bias suppression of decision makers
• Accuracy of information used in decisions
• Control: those affected should have a voice
• Correctability: there should exist an appeal process
• Ethicality: the process upholds personal and organizational
standards
86. Interactional fairness
• Individuals are not only concerned with outcomes but how
they are treated
• Respect: actions and signals that reflect the intrinsic value
that a person has for another
87. Interactional fairness
• Individuals are not only concerned with outcomes but how
they are treated
• Respect: actions and signals that reflect the intrinsic value
that a person has for another
• No rudeness/berating/sexism/racism
88. Interactional fairness
• Individuals are not only concerned with outcomes but how
they are treated
• Respect: actions and signals that reflect the intrinsic value
that a person has for another
• No rudeness/berating/sexism/racism
• Invasion of privacy: no disclosure of secrets/improper
questions
89. Interactional fairness
• Individuals are not only concerned with outcomes but how
they are treated
• Respect: actions and signals that reflect the intrinsic value
that a person has for another
• No rudeness/berating/sexism/racism
• Invasion of privacy: no disclosure of secrets/improper
questions
• Psychological safety: no increase of stress
93. Informational fairness
• What information is used/exchanged is important
• Truthfulness:
• Avoid deception: people don’t like to be “lied to”
94. Informational fairness
• What information is used/exchanged is important
• Truthfulness:
• Avoid deception: people don’t like to be “lied to”
• Adequacy of explanations:
95. Informational fairness
• What information is used/exchanged is important
• Truthfulness:
• Avoid deception: people don’t like to be “lied to”
• Adequacy of explanations:
• Reasonable explanations help accepting an
outcome
107. Patches
• Equity: Some patches
• are more important than others
• require more than others
108. Patches
• Equity: Some patches
• are more important than others
• require more than others
• Need: what is the minimal treatment
that a patch should receive?
113. Distributive Fairness: individuals
• Equity vs Equality
• Should core developers receive
preferential treatment?
• Newcomers:
• What preferential treatment should they
get?
144. OpenStack
• Ecosystem of 30-something projects
• Industrial
• Most contributions are by paid developers
145. OpenStack
• Ecosystem of 30-something projects
• Industrial
• Most contributions are by paid developers
• 0.5 M SLOCs by 60k contributors
146. OpenStack
• Ecosystem of 30-something projects
• Industrial
• Most contributions are by paid developers
• 0.5 M SLOCs by 60k contributors
• Using code reviews
157. Equity vs Equality
“A submitter is presented with the
illusion that all submissions are equal,
when in reality the community prioritizes
[code reviews] from known submitters”
158. Newcomers
“I have only tried to make one
contribution. I was so discouraged by
the response from the reviewer I have
not tried again.”
159. Consistency
“I have contributed and reviewed in 3
projects: [A, B] and [C]. I found that [A]
and [B] to be quite reasonable and fair.
As stated above, [C] is a disaster.”
160. Control and Correctability
“[A] core reviewer gave me a -1 which
was not understandable. I asked 4 time
on IRC to discuss it and he ignored
me”
162. Interactional Fairness
“Contributions are ignored unless I beg
for attention. I might have to contribute a
minor improvement. I never have time
to beg for attention. If you don’t want
my help, I got the message loud and
clear”
168. Takeaway message
Fairness is an issue that needs
attention in code reviews
This framework helps understand what
are the issues and how to address
them