acm-header
登录

ACM通信

贡献的文章

代码评审中种族、民族、性别和年龄的影响


工人双手交叉盯着另一个人

信贷:Mangostar

科技公司经常因工程人员缺乏多样性而受到批评。根据公开的多样性报告,近年来,这些公司通过招聘和留住员工,提高了工程人员的多样性。一个然而,我们对那些传统上代表性不足的工程师在加入一个组织后的日常工作经验知之甚少。b

回到顶部

关键的见解

ins01.gif

软件工程师在许多公司的核心活动是代码评审,一个或多个工程师对另一个工程师的代码提供反馈,以确保软件质量和传播技术知识。1除了软件公司之外,代码评审在开源软件工程中已经实践了很长时间,并且正在成为科学家的一项重要实践。2代码审查从根本上来说是一个决策过程,审查人员必须决定代码更改是否以及何时可以接受;因此,代码评审容易受到人为偏见的影响。事实上,先前对开源项目的研究表明,一些由女性撰写的代码评审比由男性撰写的代码评审更容易被拒绝。16

本文提供了证实的证据,证明一些人口统计群体比其他群体面临更多的代码审查阻力。目前还没有发表过关于企业环境中这种差异的研究。

回到顶部

方法

本部分描述了本研究的背景、我们的理论基础、我们使用的因变量和自变量、我们的建模方法和数据集。虽然我们简要地描述了我们在这里使用的变量,但可以在补充材料中找到完整的描述https://dl.acm.org/doi/10.1145/3474097

设置。谷歌的代码审查是在公司的整体代码库中使用的一个过程。14当软件工程师进行代码更改时——添加新功能或修复缺陷——该代码必须由至少一名其他工程师评审。评审员评估变更的适用性,以及变更的质量。如果他们有顾虑或问题,他们会在代码评审工具中表达这些注释。大多数评审员都是与作者在同一团队的工程师,但评审也可以跨不同的团队执行,例如当软件工程师修复他们使用但通常不会处理的代码中的问题时。作者选择他们的审查员,但是代码审查系统也可以建议合适的审查员。代码评审工具为作者和评审人员提供了相互了解的机会,包括他们的全名和照片(更多内容在补充材料中)。

理论和假设。我们的研究基于角色一致性理论,该理论认为,当对群体的刻板印象与成功扮演某个角色所需的感知品质不一致时,群体中的成员会受到负面评价。3.将此应用到我们的环境中,该理论预测,当代码更改的作者属于一个与成功程序员或软件工程师所感知的品质不一致的群体时,代码评审将被负面评价。我们评估了三个不同的人口统计维度,我们预测代码评审评估将会有所不同:性别、种族/民族和年龄。

关于性别,我们假设对女性程序员的评价会比对男性程序员的评价更负面。其理由是“普遍的文化联想将男性而非女性与原始的智力天赋联系在一起”和一些人认为计算机科学需要很高的“天生的智力天赋”之间的角色不匹配。7同样,我们假设,自认为是黑人、西班牙裔或拉丁裔的人比自认为是白人的人面临负面评价的几率更大,因为正如《综合社会调查》(General Social Survey)所显示的那样,美国人不太可能认为这些群体拥有天生的智力。15另一方面,我们假设那些认为自己是亚洲人的人将比那些认为自己是白人的人面临更多积极的评价,因为亚洲人被刻板地认为在工程领域具有更高的角色一致性。8由于缺乏先前的研究文献,我们没有对印第安人的角色一致性做假设。最近的研究表明,开放源码中白人开发人员的贡献比非白人开发人员的贡献更容易被接受。9就年龄而言,我们假设年长的工程师比年轻的工程师更容易受到负面评价,这是因为两个主要的角色不匹配:

  • 虽然“有一种刻板印象,认为年纪大的员工能力较低……生产率低于年轻员工,”11一个伟大的软件工程师应该具备处理复杂性的精神能力和高生产力。9
  • 虽然有一种刻板印象,认为年长的员工“更难培训,适应能力更差,灵活性更差,更抗拒变化”,“学习能力更低”,11优秀的软件工程师应该思想开放,不断自我完善,不让自己的理解停滞不前。9

因变量。我们的预测模型中的因变量是飞机推迟起飞,定义为“当审查员阻止变更请求时,在代码评审中感知到不必要的人际冲突。”5在之前的工作中,我们没有提供人口统计分类,我们比较了几个定量信号,预测负面评价从两个方面与角色一致性理论相关:1)审查员要求过多的更改,2)审查员拒绝批准。当代码评审有大量的轮数(即作者和评审人员之间的来回),评审人员花费大量的时间,以及作者花费大量的时间来解决评审人员的关注点时,个体工程师自我报告的反对意见的最强预测因素。在这种工作中,这种带有高阻力的评论将出现在90年代th每个指标的百分比:超过9轮评审,48分钟评审,作者花费112分钟。在本研究中,我们采用该综合度量作为自变量,通过建模评价是否可能被识别为高阻力,或简称为“阻力”。

独立变量。主要关注的独立变量是性别、种族/民族和年龄。在这里,我们主要使用谷歌作为美国法律报告要求的一部分而保留的既存人口类别。至于性别,报告的类别是女性或男性。种族/民族包括亚裔+、黑人+、拉丁裔+、印第安人+和白人+,其中“+”表示工程师可以选择多种种族/民族身份。对于年龄,我们将年龄离散成范围。

独立的控制变量。借鉴之前关于代码评审的研究,5131417作为控制的自变量是基于变化的属性、作者的属性和其他变量:

  • 对于更改的属性,我们对更改的行数、审阅者的数量、更改是否包含对用编码语言编写的文件的至少一次修改,以及检查的几个特殊属性的日志值进行建模:
  • 评论是否需要一个“可读性”的审稿人4也就是说,一个被认证为编程语言编码标准专家的审稿人?
  • 审查是可读性认证过程的一部分吗?在这个过程中,评估作者在编程语言编码标准方面的专业知识?
  • 评审是由本地代码所有者或全球授权者批准的大规模更改(或LSC)吗?
  • 对于变更作者的属性,我们包括了评审人员的级别(资历)、他们在谷歌工作的时间以及他们的工作家族——例如,软件工程师、站点可靠性工程师等)。
  • 我们捕获的其他变量是主要审稿人的工作族以及主要审稿人和作者之间的关系。所谓“主审稿人”,我们指的是评论最多的审稿人,或者在平分秋色的情况下,是第一个发表评论的审稿人。当作者和主要审稿人在同一个团队工作时,我们将关系建模为“内部人士”;否则,我们将其定义为“局外人”评论。虽然内部评审更为常见,但当作者需要更改另一个团队的代码时(例如修复对某个API的下游依赖),外部评审是必要的。所有变量的描述性统计数据可在在线补充材料中找到。

独立变量的交互。之前的工作16作者和审稿人之间的关系调节了性别偏见效应。为了解释这种调节效应,我们对关系(内部或外部)和每个自变量(性别、种族/民族和年龄)之间的相互作用进行了建模。

建模方法。由于因变量是二元的——无论改变是否被标记为受到抵制——我们使用了混合效应的二项逻辑回归模型。在这个模型中,为了尝试控制同一工程师在代码评审中作为作者或审查员重复出现,我们使用作者和主要审查员身份作为随机效应。就像我们之前对反推的研究一样,5我们用主要自变量的比值比以及统计显著性来描述效应大小。我们解决潜在的多重共线性问题,执行方差膨胀因子(VIF)和广义方差膨胀因子(GVIF)6自变量检验;由于所有连续变量的VIF得分低于1.3,而类别变量的GVIF得分低于1.5,我们假设多重共线性对我们模型的解释不是一个实质性的威胁。我们还通过在不同的数据集上复制研究来确保我们分析的稳健性;我们发现性别和种族/民族效应是非常一致的,而年龄效应在很大程度上是一致的(见补充材料)。

数据集。我们分析了在2019年1月初至2019年6月底的6个月内,在谷歌的主要代码评审工具之一中执行的代码评审,受以下约束。评审必须至少有一名评审人员(这排除了一些实验、紧急情况和文档更改),并且作者和所有评审人员都必须是在美国工作的全职谷歌员工。来自拥有不完整人口统计数据的作者的更改被排除在外。总的来说,该分析包括了来自30000多名作者的200多万次代码评审。

回到顶部

结果

图1显示混合效应回归预测代码评审延迟的结果。图表的左半部分显示了模型的自变量,以及括号中它们的p值。右半部分显示每个自变量的比值比。比值比小于1.0意味着较低的概率;比值比大于1.0意味着更高的赔率。

f1.jpg
图1。回归分析预测控件(a)、主要的人口学预测因素(b)和外部交互(c)的代码评审阻力的比值比。对于不显著的结果,我们省略了比值比。

图1 (a)显示我们的控制变量。例如,第一行表示在代码评审中更改的行数的日志与推回显著相关(p<.001)。更改更多的代码行会增加评审被标记为返回的几率。另一方面,与非LSC评审相比,本地批准的大规模变更(LSC)评审(通常是低风险的变更)被识别为延迟的几率要低得多(0.02)。如图所示,每增加一个审查员就会增加被否决的几率(2.73),审查员是否属于可读性认证过程的一部分(1.58)以及是否需要获得认证的可读性审查员(1.58)也是如此。没有代码的评审——例如,只有文档——比用代码评审的变更更不可能被标记为回推(0.4)。

作为图1 (a)表明,与工作相关的作者特征也会改变被拒绝的几率。比起入门级工程师(级别3),高级作者的评论更不容易受到反对。这证实了之前工作的发现5更高级的工程师不太可能遇到阻力。同样,在谷歌工作不到一年的评论作者比在该组织工作时间较长的评论作者更有可能遭到反对。在我们的模型中包括这样的经验协变量有助于隔离人口统计学因素——否则可能会混淆结果的协变量。例如,谷歌的2020年多样性报告指出,女性的流失率往往低于男性,印第安人+员工的流失率高于白人+员工。

与最常见的软件工程角色相比,软件工程师或eng_soft -由其他类型的工程师(ENG_OTHER,如研究科学家工程师)和非工程师(other,如技术运营员工)撰写的更改更容易受到抵制。我们没有发现站点可靠性工程师(ENG_SRE)与常规软件工程师(基线)相比对更改的抵制几率有统计学上的显著差异。由于对SRE作者的阻力并不显著,我们省略了SRE的优势比和其他几个地方图1对于非重要因素。


一些人口统计群体比其他人面临更多的代码审查阻力。


图1 (b)显示评估我们的假设的结果-人口统计预测阻力。由于我们的模型使用了人口统计数据和关系之间的交互效应,第一组人口统计数据应该被解释为适用于内部人员——也就是说,当作者和主要审稿人在同一个团队中时。

关于性别,与在GitHub上观察到的性别相关性一致,16女性的改变受到抵制的可能性比男性高1.21倍。同样,与白人+工程师相比,黑人+(1.54)、西班牙裔或拉丁裔+(1.15)和亚裔+(1.42)的作者被否决的几率更高。就年龄而言,研究结果显示,即使考虑了资历和任期因素,来自年长工程师的改变受到抵制的几率也高于年轻工程师。例如,一名60岁以上的工程师所撰写的变更,其遭到抵制的可能性是18至24岁的同级别和任期作者的三倍多。

图1 (c)显示外部代码评审的结果。总的来说,结果表明,来自与作者不同团队的工程师的代码评审有更高的阻力(1.15)。对于种族/民族和性别,内部和外部代码评审在统计上几乎没有显著差异——也就是说,与之前的工作不同,16关系不是一个实质性的中介因素。在统计上有显著交互作用的情况下,效果是复合的。例如,与18- 24岁的内部人士相比,该模型会天真地预测30-34岁的外部作者的评论被否决的几率会高1.36(30-34岁的作者的评论被否决的几率为1.18 x外部作者的评论被否决的几率为1.15),但交互系数表明,这一群体的实际被否决的几率甚至更高,为1.77。

总之,这些结果表明,不管作者和主要审查员之间的团队关系如何,来自某些人口统计群体的作者在代码审查期间比其他人面临更高的阻力。女性作家比男性作家面临更高的被拒绝几率;亚裔、黑人和西班牙/拉丁裔作家比白人作家面临更高的几率;年龄大的作者比年轻的作者面临更高的几率。

最后,我们以优势比的形式展示了效应大小,但这些差异在实际中意味着什么?我们通过近似计算代码评审过程中推退的额外成本来回答这个问题,特别是在额外的评审轮方面,推退的一个组成部分。5我们通过对一个变更所经历的评审轮数进行建模,从作者是白人男性所需要的轮数的预测中减去这个数,然后估计作者在一轮评审中处理评论所花费的时间(详细信息在补充材料中,包括说明)。我们估计,在研究期间花费的额外时间总计为每天1050个工程师小时,或大约4%的估计工程师花在回复评审意见上的时间,这一成本由非白人和非男性工程师承担。虽然这一数字提供了一种对阻力影响的看法,但我们建议读者谨慎解读这一估计。

回到顶部

讨论和结论

之前的研究发现,当性别明显时,一些女性面临的代码审查不太成功,16这篇论文的结果表明,不仅女性作者作为局外人和圈内人都有更大的可能性遭到抵制,而且这种影响还延伸到其他人口统计群体。

与实验不同的是,像我们这样的横断面追溯研究不能确定人口因素和阻力之间存在因果关系。可能存在我们无法控制的潜在第三变量。例如,与我们从角色一致性理论中假设的相反,我们发现亚裔工程师比白人工程师面临更大的阻力。这里隐藏的第三个变量可能是工程师是否把英语作为第一语言。那些以英语为第二语言的人在讨论代码评审时可能会面临更大的困难来表达他们的意图和基本原理,从而延长了成功地为代码评审辩护的时间,并表现为反对。更广泛地说,可能存在其他隐藏变量,例如在审查的更改中的代码质量。我们的分析在其他方面也受到限制,我们在补充材料中列举了这些方面。

我们估计,每天有超过1000个小时花在谷歌上,以应对“过度”的阻力,这一成本由非白人、非男性或年长的工程师承担。将这种估计概念化的一种方法是将其视为机会;如果我们能减少这些工程师群体的阻力,他们就可以把时间花在其他地方。但也有一种相反的方式来概念化这项研究:白人、男性和年轻的工程师比其他人口统计学特征的人受到的阻力更少。无论哪种情况,我们都认为减少人口统计群体之间的差距是一个有价值的目标,我们期望我们的软件在我们尝试这样做的过程中得到改进。

在谷歌,一个全公司的目标是使我们的工作场所公平,这篇论文提供了一种衡量实现这一目标进展的方法。我们为此采取了广泛的行动,包括消除偏见的培训c匿名作者代码审查。10我们期待这些措施能否促进不同组别的工程师在工作场所获得更公平的待遇。

回到顶部

致谢

我们感谢Alison Song, Alyson Palmer, Amir Najmi, Andrea Knight, Annie Jean-Baptiste, Ash Kumar, Asim Husain, Ben Holtz, Caitlin Hogan, Collin Green, Dan Friedland, Danny Berlin, David Patterson, David Sinclair, Diane Tang, Elvin Lee, Jill Dicker, Liz Kammer, Luiz André Barroso, Maggie Hodges, Mark Canning, Matthew Jorde, Melody Meckfessel, meloney Parker, Nina Chen, Rachel Potvin, Ted Smith,以及匿名评论者在整个研究过程中的帮助。

uf1.jpg
数字观看作者在独家报道中讨论这项工作通信视频。//www.eqigeno.com/videos/the-pushback-effects

回到顶部

参考文献

1.Bacchelli, A.和Bird, C.现代代码评审的期望、结果和挑战。软件工程国际会议(2013), 712 - 721。

2.查海登,e。Mozilla计划试图调试科学代码。自然新闻501, 7468(2013), 472。

3.对女性领导者的偏见的角色一致性理论。心理评估109, 3(2002), 573。

4.伊比,l.t.,麦克马纳斯,s.e.,西蒙,s.a.,和拉塞尔,J.E.门徒对负面指导经验的看法:分类的发展。职业行为学J. 57, 1(2000), 1 - 21。

5.Egelman, c.d., Murphy-Hill, E, Kammer, E, Hodges, m.m., Green, C, Jaspan, C,和Lin, J.阻力:在代码评审中描述和检测消极的人际互动。实习生。软件工程研讨会(2020), 174 - 185。

6.普氏,王晓明。广义共线性诊断。美国统计协会的J. 87, 417(1992), 178-183。

7.Leslie, s.j., Cimpian, A., Meyer, M.和Freeland, E.对才华的期望是跨学科性别分布的基础。科学347, 6219(2015), 262-265。

8.Leong, F.T., Hayes, T.J.亚裔美国人的职业刻板印象。职业发展季刊, 2(1990), 143-154。

9.Li, p.l., Ko, a.j.和Begel, A.优秀软件工程师的区别是什么?经验软件工程25, 1(2020), 322-352。

10.莫菲-希尔,迪克,J.,霍奇斯,M., Egelman, c.d., Jaspan, c.n.c., Cheng, L., Kammer, L., Holtz, B., Jorde, M.A, Dolan, A.M.K,和Green, C.匿名作者代码评审的工程影响:一个现场实验。反式。软件工程。(出现)。

11.Nadri, R., Rodriguez-Perez, G.和Nagappan, M.关于开发者可感知的种族和民族与OSS贡献评估之间的关系。反式。软件工程。(出现)。

12.工作场所中的年龄刻板印象:常见的刻板印象、审查员和未来的研究方向。管理硕士学位35, 1(2009), 158-188。

13.为什么谷歌在一个存储库中存储数十亿行代码。ACM的通信, 7(2016), 78-87。

14.Sadowski, C., Söderberg, E., Church, L., Sipko, M.和Bacchelli, A.现代代码评审:谷歌的一个案例研究。实习生。软件工程研讨会:软件工程的实践(2018), 181 - 190。

15.史密斯,t.w.,戴文,M.,弗里斯,J.和摩根,S.L.综合社会调查(2019)。

16.特雷尔,J.,科芬克,米德尔顿,J., Rainear, C.,墨菲-希尔,E.,帕宁,C.和斯托林斯,J.开源中的性别差异和偏见:对女性和男性的拉请求接受度。计算机科学3e111(2017)。

17.Yu Y., Wang H., Filkov, V., Devanbu, P.和Vasilescu, B.等一等:Github上的拉请求评估延迟的决定因素。采矿软件仓库工作会议(2015), 367 - 371。

回到顶部

作者

爱默生Murphy-Hillemersonm@google.com)是谷歌的研究科学家。

Ciera Jaspan是谷歌的软件工程师。

卡洛琳Egelman是谷歌的一名定量用户体验研究员。

局域网程是谷歌的一名定量用户体验研究员。

回到顶部

脚注

一个。https://www.aboutamazon.com/working-at-amazon/diversity-and-inclusion/ourworkforce-datahttps://www.apple.com/diversity/https://diversity.fb.com/readreport/https://diversity.google/annual-report/,https://www.microsoft.com/enus/diversity/

b.在本文中,为了方便起见,我们将参与代码评审的人称为“工程师”,尽管我们将看到,非工程师也参与到代码评审过程中。

c。https://rework.withgoogle.com/guides/unbiasing-hold-everyone-accountable/steps/give-your-own-unbiasing-workshop/

更多在线内容:本文的在线补充材料可以在以下网站找到https://dl.acm.org/doi/10.1145/3474097


cacm_ccby.gif这部作品是根据法律授权的http://creativecommons.org/licenses/by/4.0/

数字图书馆是由计算机协会出版的。版权所有©2022 ACM, Inc.


没有发现记录

Baidu
map