Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Expressions of Sentiments During Code Reviews:Male vs. Female

作者:Rajshakhar Paul , Amiangshu Bosu , Kazi Zakia Sultana

单位:Wayne State University,Montclair State University

出处:SANER19

原文:pdf


简介

最开始计算领域的工作是以女性为主,但是近几十年来从事计算机的女性占比急剧减少,大多数软件开发组织都以男性为主导,许多女性开发者遇到负面的工作场所体验。男性同事的歧视性咒骂或负面批评可能会进一步加剧这些感受。作者想要研究女性开发者锐减的原因,本研究的主要目标是确定在code review中男性和女性开发人员之间情绪表达的差异。之前也有学者研究过对软件工程(SE)的commit mesages、issue tracking system、code review comments、Stack Overflow posts、mailing-lists的情感表达,但是没有进行性别区分。

作者挖掘了六个流行的开源项目的code review仓库:

  • 使用半自动化方法利用名称以及多个社交网络来识别开发人员的性别。
  • 使用SentiSE(一个针对软件工程领域的定制的最先进的情绪分析工具)将每个交互分类为消极,积极或中立。
  • 计算每个开发人员使用的情感词,表情符号和咒骂的频率。

结果表明,在code review期间使用情感词,表情符号和咒骂的可能性因开发者的性别而异,因为女性表达情绪的可能性明显低于男性。女性开发者对男性同事比对另一位女性更加中立,六个项目中有三个项目的男性开发者不仅写了更频繁的负面评论,而且还对拒绝女性同事积极鼓励。证明女性开发者所遇到的负面工作经历可能是导致SE行业中女性人数减少的原因。

背景

软件工程中的性别问题

之前有研究表明女性开发者在FLOSS(Free/Libre and Open Source Software)项目中贡献率极低(2%-5%),但是这其中存在项目排斥女性贡献者的行为。近来Debian、GNOME等一些项目采取举措吸引女性贡献者,贡献率回升到11%,但仍不到从业占比(24%)的一半。

在行业内,女性被分配的工作劣于男性是常见的。Github报告如果用户可被识别为女性,那么她的Pull Request更难被接受。

情感分析

现在对SE过程各个部分进行情感分析的研究很多:在Github上,安全相关问题的讨论更多负面情绪表达,分布式问题的讨论情感表达更积极,JAVA项目比其他语言项目更负面;Gentoo社区的问题报告和邮件列表讨论,作者的活动与他们的情绪表达之间存在显着的相关性…

最近有研究情绪对不同活动的影响:负面情绪问题通常与较长的解决时间相关;积极情绪的开发者更容易提交更长的commit messages。

code review

同行代码审查:开发人员将他代码发送给同行,以便在合并到项目代码库之前识别可能的缺陷。常用工具如Gerrit,Phabricator和ReviewBoard。当作者创建补丁集(即,在单个修订中添加或修改的所有文件)以及更改的描述并将该信息提交给代码审查工具时,基于工具的代码审查过程开始。审阅者和作者都可以指出改进意见或回应别人的改进意见。在审核之后,作者可以上传新的补丁集来解决评论并启动新的评论迭代。此审核周期将重复,直到审阅者批准更改或作者放弃更改为止。代码审查工具捕获作者和审阅者之间的交互(即审查评论),以促进事后分析。

研究问题

表达情绪的可能性是否取决于开发人员的性别?

开发人员在跨性别互动过程中表达情绪的方式是否与同性别互动时的情绪不同?

使用的情感词类别是否因开发者的性别而异?

使用表情符号的可能性是否取决于开发人员的性别?

使用咒骂词/咒骂的可能性是否取决于开发者的性别?

研究方法

A.数据收集和预处理

挑选OSS项目符合标准:

i)要求每一项变更都提交给Gerrit进行审查

ii)项目贡献者至少进行了30,000次代码审查。

选定的六个项目共完成了564,891次(即“合并”或“被遗弃”)代码审查。

手动检查排除机器账号,即账号名包含: ‘bot’, ‘auto’, ‘CI’, ‘Jenkins’, ‘integration’, ‘build’, ‘hook’, ‘recheck’, ‘travis’, ‘verifier’.

合并同一个人的账户,使用Levenshtein Distance算法识别相似名字。

Levenshtein Distance只将长度为x的字符串转换为长度为y的字符串所需增加、删除、替换的最小步骤

相似度 Similarity = (Max(x,y) – Levenshtein)/Max(x,y)

img

【定义】非临时开发者Non-casual developer:对项目至少提交了5次修改。

B. 性别判定

采用genderComputer工具采用半自动性别识别,并使用社交网络上公开可用的信息进行手动验证。 genderComputer工具使用来自全球204个国家的221,854个名字的数据库,可将名字分为四类:男性、女性、男女皆宜、无。

根据六个项目中3,570名非临时开发人员,genderComputer工具将贡献者分类如下:2,633名男性,325名女性,496名男女皆宜,116名无。为了确保所识别性别的准确性,作者对937名非男性(即女性,男女通用或无)贡献者采用了以下五步手动验证策略。只有当前面的所有步骤都失败时,才进入下一个解决步骤。如果所有五个手动验证步骤都不成功,仅39个贡献者(1%),从后续分析中排除了开发人员。虽然性别决议步骤仅利用公开信息,这个研究方法已经过机构审查委员会(IRB)的审查和批准。

  1. Gerrit 头像
  2. Google Plus的个人资料,通过邮箱查找。
  3. LinkedIn的个人资料,通过邮箱的名字和后缀的公司名,例邮箱kai.chen@intel.com,搜索“kai chen+intel”。
  4. Facebook,同上。
  5. Google搜索他的其他信息,只有<3%的人群使用这种方法。

C.情感分析

研究人员最近为SE领域提出了几种自定义工具,SentiCR,Senti4SD,SentiStrength-SE,和SentiSE 。本文选择SentiSE,因为 i)它拥有四个工具中最大训练数据集13K SE交互; ii)SentiSE的训练数据集包含2,800个代码审查意见,这些意见是本研究的焦点; iii)SentiSE提高了最高准确度(86.9%),最高的kappa (0.788),以及所有三个类别的最高F-measure,即positive(86.9%),neutral(89.0%)和negative(82.1%)。

作者使用SentiWordNet 3.0(LREC2010)来编译表达情绪的单词列表。 SentiWordNet是一组synset,其中每个synset包含一个或多个具有相同含义的单词。 SentiWordNet使用唯一ID,positive score,negative score和defination来识别每个synset。 SentiWordNet包含可能表达情绪的14,021个单词。该研究的目标(即RQ2)还要求将情感词分类,最后根据SentiSense(LREC2012) 分为了14类。

img

作者利用在SentiSE 中编译的表情符号和咒骂词/咒骂列表。咒骂词/咒骂列表包括来自英语的84个常用词。表情符号列表有107个,其中46个表示积极情绪,其余61个表示否定。

结果

表III显示了五个研究问题的卡方检验结果,以找出男性和女性开发者之间统计差异。

img

RQ1 性别与情绪

男性开发者更有可能撰写表达正面/负面情绪的评论评论。

图4显示了来自六个项目的男性和女性开发人员撰写的负面和正面评论评论的比率。

img

在表达情感的评论评论中,负面情绪的比率高于所有六个项目的正面情绪由于代码审查的主要目标是识别代码中的错误,因此负面情绪的比率高于正面可能并不令人惊讶。

六个项目中的五个(即,OmapZoom除外)表明(表III:RQ1)负面评论与性别相关。

这些项目中超过85%的代码审核评论是中立的(即,不表达任何情绪)。女性开发者撰写的评论评论超过90%为中立。

RQ2:相同的性别和跨性别

在六个项目中的五个项目中,女性开发者更倾向于向另一个女性表达情感而不是男性。 然而,在六个项目中的三个项目中,男性对女性更为严厉,不仅提供更多的负面评论,而且还提供不那么积极的鼓励。

计算了male->male/male->female/female->male/female->female的四种情况的负面和正面评论分布,这六个项目的分布存在显着差异(表III:RQ2)。六个项目中的四个(即,除了Couchbase和Chromium OS)显示女性在与另一个女性的交互过程中比在与男性的交互过程中更频繁地表达正面和负面情绪。在Couchbase中,女性在与另一位女性交流时有更多的负面情绪、更少的正面情绪。然而,Chromium OS显示出一种例外情况,即女性对其他女性的负面情绪低于男性。

男性的结果好坏参半。在Qt,Chromium和oVirt男性在与另一名男性的互动过程中表现出更多的积极和消极情绪,而不是在与女性互动时。但男性开发者似乎对他们在Android,Couchbase和Omapzoom的女同事都很苛刻,因为男性不仅更频繁地写负面评论,而且在与女性互动期间比在与其他男性互动期间更少地写出正面评论。

img

RQ3: 性别和情绪词

男性开发者使用情绪词的可能性明显高于女性。 此外,在情绪表达中,女性使用表达强烈情绪的词语的可能性低于男性。

作者计算了男性和女性开发人员撰写的评论中属于SentiSense的每个单词的频率。在SentiSense的14个类别中,属于“模糊”类别的词语根据其背景假设情绪取向。此外,属于“绝望”类别的词语在数据集中的评论中很少甚至没有发生。因此,排除这两个类别。

img

img

在六个项目中的五个项目中(Android除外),男性开发者使用情感词比女性更频繁(图6)。图7显示了六个项目中男性和女性开发人员编写的每100K字的12个SentiSense类别的出现情况。

使用SentiSense单词时男性和女性之间的显着差异(表III:RQ3)。

在六个项目中的三个项目中(即Android,Couchbase和OmapZoom除外),男性更有可能使用属于强烈情绪类别的单词,如 ‘Surprise’,’Sadness’, ’Love’, ‘Joy’, ‘Hate’, ‘Disgust’,’Fear’, ‘Anger’。男性和女性之间的 ‘Like’, ‘Anticipation’, ‘Calmness’ , ‘Hope’之类的温和情感词汇的频率非常相似。来自Android,Couchbase和Omapzoom的女性更频繁地表达 ‘Anger’ ,‘Disgust’,这可能是由于男性同事的负面态度。

RQ4:性别和表情符

与之前的结果相反,女性开发者在代码审查期间使用表情符号的可能性低于男性。

图8显示了男性和女性开发人员撰写的每1000条评论评论中正/负表情符号的分布。 一般来说,开发人员使用积极的情绪因素比消极情绪更频繁。 两个“笑脸”表情符号,即“:)”和“:–)”,占每个项目表情符号用法的75%以上。 在负面表情符号中,悲伤’:(‘和吐舌头’:p’是最常见的。表情符号在男性评论中比在女性评论中更频繁(除了Chromium OS中的正面表情符号)。使用表情符号的男性和女性开发者之间的差异在六个项目中的四个项目(Chromium OS和OmapZoom除外)具有统计显着性,如表III所示,但性别和特定表情符号没有显着联系。

img

RQ5: 性别和咒骂/咒骂词

在六个项目中的五个项目中,女性开发者使用咒骂的可能性显着低于男性。 即使女性使用咒骂,她们也避免了男性经常使用的某些高度攻击性的咒骂。

图9显示了男性和女性开发人员每100k字的咒骂/咒骂词的分布。

男性开发者比女性更频繁地使用咒骂/咒骂词。 对于六个项目中的五个(即OmapZoom除外),这些差异也具有统计显着性,如表IIIRQ5所示。

‘crap’, ‘damn’, ‘screw’ 是男性和女性最常用的咒骂。一些高度攻击性的咒骂,如‘bitch’, ‘bastard’, ‘fuck’, ‘jerk’ 只被男性使用。

img

讨论和意义

在本节中,作者将结果与其他领域之前的结果进行比较,并讨论研究结果的可能原因和含义。

对女性的言语虐待

这项研究的主要目标之一是确定女性是否比男性更容易收到负面意见。6个项目中的三个都表现了男性对女性会有更多的负面评论更少的正面评论。相应地这三个项目中女性也会使用更多表达”愤怒“和”厌恶“的情绪。

RQ5中显示男性使用咒骂用语远高于女性。在一些SE项目特别是OSS项目中存在针对女性的“toxic culture”。最近在Apple,特斯拉和UploadVR中也报道了类似的toxic culture,其中粗俗和性别歧视的笑话经常使女性员工感到不舒服。

和其他领域比较

一些结果支持其他领域之前的结果,一些结果在SE背景下完全相反:

先前发现男女互动有点轻浮,而女性对女性则比较公开的支持。相反,作者的研究结果表明,女性在与男性互动时保持中立,但男性对女性同伴的负面评价更多。女性对女表达了更多的正面和负面情绪。

先前的研究发现,女性有更强烈和更长久的情绪,并更清楚地表达它们。然而,作者的六个项目中有五个表明与男性相比,男性比女性使用更强烈的情绪。

就表情符号的使用而言,之前发现女性使用表情符号的频率高于男性。这里研究结果不仅发现女性的表情较少,而且没有发现基于性别的任何显着差异。

尽管最近的研究表明女性在使用咒骂或咒骂词时打破了传统的刻板印象,但在SE背景下没有观察到类似的趋势。

女性开发者的不表现

作者就这个结果产生的“为什么女性开发者不像社交媒体中那样在SE环境中表达他们的情绪”的问题提出了猜想:

OSS项目中女性太少,女性在表达感受或情绪是容易被误解为有攻击性。

在软件工程中女性前辈也太少,缺乏引导。女性只占硅谷公司高管的11%。

来自男性同事的不安情绪。87%在硅谷工作的女性报告了男性同事的贬低评论。更令人担忧的是,60%的女性报告性骚扰,比其他地区报告相同的女性比例高出1.5倍(41%)。

道德上对女性不能使用激进或严厉的词语要求更高。

意义

比男性更频繁接受负面评论贬低的词语可能导致女性人数减少。作者认为本研究将是从另一个角度开启SE领域性别偏见研究的机会,有助于克服女性人数的减少。

威胁

内部有效性

选择同一代码审查工具Gerrit是合理的:

1)所有代码审查工具支持相同的基本目的,即检测缺陷和改进代码

2)大多数代码审查工具的基本工作流程相同(即作者发布代码,审阅者评论代码片段,以及需要在整合之前获得审阅者批准的代码)

3)在本研究中没有使用任何特定于Gerrit的特征/属性

4)评论评论中表达的情绪可能不依赖于Gerrit独有的任何特征。

构建有效性

2633名男性虽然没有手工验证是否分类错误,但是作者随机选取了200名男性检查只有1名为女性(0.5%),影响小。

SentiSE有13%的错误分类风险,但是错误分类与性别相关时才能影响结果,作者认为这种情况没有经验支持。

外部有效性

作者无法明确确定样本代表整个OSS。由于OSS项目因产品,参与者类型,社区结构和治理等特征而异,所以无法从这项研究中得出关于所有OSS项目的一般性结论。