【论文总结】Where to Recruit for Security Development Studies: Comparing Six Software Developer Samples

在哪里招募安全开发研究人员:比较六个软件开发者样本

摘要:
研究开发人员是可用性安全和隐私研究的重要方面。特别是,研究安全开发挑战,例如安全API的可用性、开发期间信息源的安全使用或IDE安全插件的有效性,近年来引起了人们的兴趣。然而,招募有软件开发经验的熟练参与者特别具有挑战性,并且通常不清楚安全研究人员可以从某些参与者样本中期望什么,这可能使研究结果难以比较和解释。因此,在这项工作中,我们首次研究了不同平台为安全开发研究招募具有软件开发经验的参与者的机会和挑战。首先,我们在59篇论文中确定了流行的招聘平台。然后,我们基于自我报告的软件开发经验,在六个招募平台上进行了一项比较性在线研究,共有706名参与者。我们使用在线问卷调查参与者的编程和安全经验、技能和知识。我们发现,所有样本的参与者都报告了丰富的一般软件开发和安全经验、技能和知识。根据我们的结果,我们建议从Upwork招募开发人员进行实际编码研究,从Amazon MTurk和一个预筛查调查开始以减少更大规模的研究中的额外噪声。这两个平台以及Freelancer也被推荐用于安全研究。最后,我们讨论了我们的结果对未来安全开发研究的影响。
IDE安全插件:
IDE安全插件是一种软件插件,可以与集成开发环境(IDE)一起使用,以提供更好的安全性和代码质量。这些插件可以帮助开发人员在编写和调试代码时发现潜在的安全漏洞和错误,并提供实时建议和修复建议,从而提高代码的安全性和可靠性。常见的IDE安全插件包括静态代码分析工具、动态分析工具、安全测试工具等。例如,Findsecbugs是一个基于静态分析的安全扫描器插件,可以检测Java应用程序中的常见安全漏洞。SonarQube是一个应用广泛的代码质量管理工具,它能够检测和修复代码中的安全漏洞和其他问题。

一、简介

1.研究的价值

人类因素研究对于提高整体计算机安全和隐私至关重要。特别是在最近几年,开发人员已经受到社区中越来越多的研究关注。以前的工作调查了不同人群和平台的参与者样本,探讨了各种研究问题。参与者具有软件开发、逆向工程、漏洞扫描或软件测试等领域的不同水平的经验、技能和知识。相比于对终端用户的研究,招募专家样本通常更具挑战性,可能需要耗费时间和金钱成本较高。开发人员通常拥有高薪工作和较高的工作量,因此提供激励以促使他们参与可能很困难。因此,更好地了解可用招募平台的优缺点对于社区非常有价值,可以帮助研究人员更有效地招募所需的参与者。

2.过往研究的分析

过去,研究人员使用了各种招募平台,包括计算机科学(CS)学生、社交媒体、在线论坛、自由职业者、专业开发人员或个人网络。例如,众包或自由职业平台被用于招募开发人员和其他领域的专家,但需要逐一招募或进行广泛筛选,并且需要提供高额报酬,类似于他们通常的薪水。在不太昂贵的范围内,社交媒体、直接联系和雪球法是基于口碑工作的,但高度依赖研究人员和参与者的联系。虽然过去曾尝试通过区域论坛或使用实物传单来寻找当地参与者,但这种方法与社交媒体招募相同,受到限制,包括数量和参与者多样性的限制。研究人员还使用大规模电子邮件邀请(例如针对学生,使用大学邮件列表,或针对开发人员,使用GitHub和Google Play)。尽管这种方式可以轻松地接触到许多参与者,但这些电子邮件可能会被视为垃圾邮件,新兴的隐私和数据保护法律进一步限制了这种方法。

3. 本文的价值

尽管一些先前的研究讨论了他们的招募经验,但据我们所知,我们是第一个系统比较以往工作中使用的流行招募平台上具有软件开发经验的参与者样本。为此,我们分析了过去五年中发表的59篇研究安全专家工作的论文,并确定了研究人员从参与者那里需要的常见招募平台、经验、技能和知识。虽然只有24篇这些论文包括安全开发研究并招募有经验的开发人员,但我们使用了整个论文集作为基础真相来构建我们的在线问卷。因此,我们使用先前的调查来开发一份调查问卷,其中包括有关一般和特定工作经验、软件开发背景、安全经验、技能和知识以及人口统计信息的问题。我们对这份调查进行了预测试,并将最终版本分发给了六个样本共706名参与者。我们招募的样本包括计算机科学学生、Google Play开发人员、Upwork和自由职业者平台的成员,以及Prolific和Amazon MTurk用户。

4.研究内容

1)目标

我们进行比较在线研究的目标是回答以下研究问题:
1)我们可以从我们之前的工作中确定的常见招聘平台中期望研究者获得哪些一般软件开发和特定安全开发经验、技能和知识?
2)样本之间的比较有多好,它们之间有什么差异?
3)在考虑进行安全开发研究时,研究者应该考虑什么?

2)努力

<1>识别常见招聘平台:
我们分析了包含具有软件开发经验的参与者的安全研究的先前工作,以确定常见的招聘平台。最常见的方法是使用网络或区域方法,例如通过传单或参加活动进行招募,尽管存在招募大量人员和地区偏见等缺点。然而,在本次研究中,我们决定不使用它们,以避免非普适性的结果,这些结果可能因研究团队而异。我们还发现了许多其他不同的方法,包括在线和离线。在我们使用的平台中,招募计算机科学学生和Google Play参与者是相关先前研究中最常见的。

<2>调查设计:
基于先前工作中使用的调查问题,我们设计、测试并提供一个问卷,收集有关编程和安全经验、知识和技能以及工作角色和组织结构的信息。

<3>比较六个样本
我们对来自六个样本的706名参与者进行调查,并比较他们的调查回答。我们发现,Google Play、自由职业者、Upwork和MTurk参与者报告了最多的专业软件开发经验。在所有平台上,执行安全任务的经验都相似,MTurk参与者总体上报告了最多的安全经验,而Upwork和自由职业者通常也表现出色。我们特别注意到,Google Play、Upwork和自由职业者参与者报告了最多的特定安全任务经验,例如授权/认证、输入验证和使用API密钥。CS学生和Prolific用户报告执行安全任务的经验最少。我们对每个平台进行了深入审查,还确定了一些差异,这些差异可能根据具体的研究设计而重要,例如不同的种族背景和特定编程语言和特定安全领域的专业知识。

<4>招募建议:
我们使用我们的经验和结果为未来的工作提供招募建议。例如,只需要少数有经验的开发人员完成复杂任务的研究应该考虑Upwork,这需要更多的时间进行招募,但更容易过滤特定的安全技能。相反,当需要更大的样本时,MTurk可能是更好的选择,因为招募更快。然而,由于欺诈性回答,MTurk参与者可能会引入噪音;我们建议使用预筛选调查以提高数据质量。

<5>复制包:
为了支持我们的可重复性工作,我们提供以下材料作为复制包:我们使用的筛选和最终调查问题、我们在文献评估中发现的格式化问题收集、招聘电子邮件和工作发布中使用的文本、附加

二、相关工作

1.研究内容

1)比较招募平台和策略:

招募参与者的招募平台影响已被广泛讨论,以下是六个专家用户样本:
<1>Peer等人在2017年实证评估了CrowdFlower和Prolific Academic作为MTurk的替代品。他们报告称,在CrowdFlower和Prolific上,参与者的天真度、诚实度和多样性都比MTurk高,但数据质量有所不同。Prolific表现与MTurk类似,而CrowdFlower提供了最低的数据质量。
<2>Bentley等人在2017年的案例研究中比较了MTurk和SurveyMonkey与市场调研公司招募的样本在产品设计背景下的表现。他们发现,大多数结果在10%的误差范围内,适合每个调查平台150个样本大小的样本。
<3>Schnorf等人在2014年比较了六个调查样本提供商和样本(例如Google Consumer Surveys)。他们分发了一份关于终端用户隐私舒适度的调查问卷,以调查不同调查提供商之间的潜在差异,招募了每个样本835至1115名参与者。他们发现,由于一些招募随机用户,而其他人使用概率方法或自愿选择加入,因此结果因平台而异。
<4>Redmiles等人在2019年比较了Amazon MTurk和通过网络面板和电话获得的普查代表性样本的概率样本。他们发现,MTurk的结果更接近概率样本,因此更接近美国公众,而不是网络面板,这表明平台的选择对结果有影响。
<5>Chandler等人在2019年比较了MTurk和Prime Panels(在线研究小组聚合)。他们发现Prime Panels上的数据质量类似,但参与者更加多样化,并且可以直接访问较少代表用户群体,尽管存在必然的权衡。
本文的工作:
虽然以上研究集中在招募终端用户方面,但我们的工作是首次比较六个专家用户样本,并侧重于参与者的软件开发经验。

2)安全信息工作者的研究:

以往的研究1:
由于在招募具有自我评估编程技能的参与者时误解和高估能力可能成为突出问题,Danilova等人开发和评估了筛选问题的有效性,从多个平台招募了具有和不具有编程技能的几批参与者。他们发现,42%的Clickworker用户宣传编程技能,但不符合他们的标准,可以被过滤掉。
本文的做法1:
这项研究与我们的研究有些关联,因为他们专注于识别开发人员筛选的有效问题,而我们的重点是使用现有文献中的问题进行招募策略。
以往的研究2:
2019年,Tahaei等人的文献综述探讨了以开发人员为中心的安全研究现状,总结了2005年至2019年间发表在19个会议论文或期刊上的49篇包含开发者研究的论文。
本文的做法2:
我们基于他们的工作进行了文献综述,但我们着重于招募策略。
以往的研究3:
此外,2021年Kaur等人进行了一项文献综述,分析了557篇相关的安全研究论文,其中包括普通用户和专家,他们深入分析了48篇专家研究。他们研究了参与者的人口统计学情况,招募方式以及如何将研究目标与研究方法相一致。
本文的做法3:
与此相反,对于当前的工作,除了通过文献综述确定常见的开发者招募方法之外,我们还对我们的文献综述中确定的六个流行平台的开发者进行了调查,并比较了一般和安全技能方面的统计数据。

本文的价值:
据我们所知,开发者研究的招募策略尚未得到全面研究。各种研究会招募计算机科学学生作为代表开发者,因为他们有技术背景且易于招募。如果招募开发人员,则决定谁是专家的标准对每个研究都不同。
我们的研究与以往的工作不同之处在于,我们既提供了顶级开发者研究的全面文献综述,又进行了较大规模的比较研究,比较了不同的招募平台,这些平台都曾在该领域的以往研究中使用过。

三、安全研究中的软件开发员

1.总述

在接下来的部分,我们将调查安全研究中有经验的软件开发人员的招募策略和调查问题。我们的目标是了解先前研究所需参与者的经验、技能和知识,并获取常见的招募策略的见解。
因此,我们收集并审查了五年内在重要的安全、隐私和人机交互领域发表的相关研究。我们从一开始就没有旨在跨所有潜在出版物进行详尽的文献综述,而是旨在了解最近的常见做法。文献综述是我们在后面进行的比较研究的基础。图1概述了我们的整体方法。
(转自原文 Where to Recruit for Security Development Studies: Comparing Six Software Developer Samples 图1)
在这里插入图片描述

2.文献选择

我们广泛选择了关于可用性安全和隐私方面的出版物,并对与安全专家进行用户研究的研究进行了选择。虽然我们只调查了开发人员,但是涉及不同类型专家的研究通常具有相关性和相似性质。因此,将它们包括在内可以使我们得到更广泛的网络,这有助于我们设计一个合适的调查问卷。 我们关注2016年至2020年期间发表在顶级(可用性)安全、隐私和人机交互领域的研究成果:
<1>USENIX安全研讨会(SEC)
<2>ACM计算机与通信安全会议(CCS)
<3>IEEE安全与隐私研讨会(S&P)
<4>网络和分布式系统安全研讨会(NDSS)
<5>可用性隐私和安全研讨会(SOUPS)
<6>人类因素与计算系统大会(CHI)
<7>可用性安全研讨会(USEC) 以及其欧洲分支(EuroUSEC)的研讨会

这些会议基于计算机安全和人机交互的两个会议列表过滤了引用次数,并选择了最相关的会议。除了CHI之外,我们独立地评审了所有自2016年1月至2020年9月发表的文章摘要和标题。在CHI中,出版量比其他会议高得多,因此我们采用了不同的方法。我们搜索了与我们上下文相关的关键字(如安全、隐私、开发、管理、专家和程序),并手动调查结果。此外,我们将自己的论文集与另外两篇出版物列出的开发人员论文进行了比较。这提出了三篇额外的论文,但我们没有学到新的招募策略或调查问题,因此没有将它们添加到我们的列表中。总体而言,我们最初找到了95篇至少有一名作者认为相关的论文。我们审查了所有冲突,并删除了21篇论文,例如没有包括开发人员研究的论文,使我们剩下了74篇论文以供进一步分析。
引用次数:
引用次数是指一个学术论文、专著、科研报告或其他文献被其他文献所引用的次数。在学术界,引用次数常被用作评估一个文献的影响力和重要性的指标。当一个文献被其他文献频繁引用时,说明这个文献是具有重要价值的,可以为相关领域的研究者提供有用的参考资料。因此,引用次数也被用来评估一个学者或研究团队的学术水平和影响力。

3.文献调查

对于剩余的论文集,如果信息可用,我们收集了有关参与者招募和调查问题的信息。我们提取了以下信息:
<1>参与者类型(例如软件开发人员或系统管理员)
<2>招募平台(例如MTurk或CS学生)
<3>参与者人数以及补偿金额和类型。
两位作者独立地详细审查了每篇论文中上述信息。不同意见立即进行讨论并解决。在详细分析过程中,由于缺少安全焦点或未招募专家用户,我们又删除了15篇论文,使我们最终留下了59篇论文。
对于包括普通用户和专家用户研究的论文,我们只考虑专家用户信息。为了收集每篇论文的所有信息,我们首先检查它是否包含在论文、附录或复制包中,并且信息是否可用。对于问题,我们决定仅关注调查问卷,排除了来自面试研究的问题。面试官通常使用开放式问题,并鼓励参与者详细阐述他们的答案,这对于探索性面试非常有效,但可能无法很好地转化为量化调查问卷。
总体而言,我们在58篇论文中找到了参与者招募信息,并在45篇论文中找到了363个问题。在十种情况下,我们无法在论文中找到信息,因此联系了作者。除一个研究小组没有保留原始调查问题,只能向我们提供使用问题的大致估计外,所有人都承认我们的请求并提供所需信息。我们将所有提取的调查问题和答案选项分配给以下类别之一:
1.常规问题。如年龄、性别或教育背景等人口统计学信息。
2.经验、技能和知识。安全和编程经验、技能和知识。
3.量表。已建立的量表,例如系统可用性评分(SUS)或安全软件开发自我效能评分(SSD-SES)。
4.具体问题。针对研究的特定问题,例如任务成功或失败的自我评估。

如果特定问题仅关注于特定工具或开发领域等狭窄范围,我们会将其从调查问卷中排除。如果多篇论文包含具有相同或类似措辞的问题,则我们将它们合并,同时跟踪它们的来源。

3.结果

该调查旨在为第4节中的比较研究提供信息和动力。但是,我们并不打算对以前的工作进行系统化。
分析的24篇论文招募了有软件开发经验的参与者,十篇招募了系统管理员或运营商,另外24篇招募了安全专家。虽然这些安全专家都具备计算机科学和安全背景,但它们之间存在差异,例如在某一职业角色的经验、技能或安全认证方面。在七篇论文中,我们找不到足够的细节来确定参与者的工作角色。其中一篇论文没有提供确切的参与者人数。23篇论文提供了不同数额固定支付的报酬,其中一些使用礼品卡。一篇论文使用基于绩效的支付方式,而另外六篇则在所有参与者中进行抽奖。对于其他论文,21篇没有提到任何奖励,11篇表示他们不会报销参与者。总体而言,我们确定了25个招募平台。在12篇论文中,招募被描述为肤浅的层面,例如社交媒体广告[49]或在线冷呼叫[53]。我们将所有25种策略分配到六个类别中(括号中为论文数量):
<1>未经请求的电子邮件(10)
通过收集参与者的联系信息发送未经请求的电子邮件。例子包括GitHub(5)和Google Play(5)等电子邮件收集平台。

<2>社交或区域联系人(75)
基于一些职业或个人网络(29),雪球抽样(10),以及通过安全相关事件(13)或区域专家聚会(4)招募。还包括传单分发(6)、Craigslist(2)以及计算机科学学生的招募(11)等方法。

<3>社交媒体(10)
在Twitter(5)、Facebook小组(1)、广告(2)以及聊天软件Slack(2)等社交媒体平台上发布研究信息。

<4>在线论坛/博客(33)
依赖于Reddit(8)、在线论坛(8)、邮件列表(15)和专门致力于计算机科学主题的博客(2)等讨论平台。

<5>有偿工作者(4)
有偿工作者策略包括自由职业或众包平台,如Prolific(1)、Upwork(1)和Freelancer(2)。

<6>网络(8)
网络策略基于专业社交平台,如LinkedIn(7)或其德国同行Xing(1)。

四、招聘安全开发人员平台的比较研究

1.总述

我们设计了一个在线比较研究,使用六个开发者样本进行了预测试和实施。
我们收集了他们的人口统计信息以及有关参与者在安全性和编程方面的知识、技能和经验的数据,通过在线问卷调查获得。在招募参与者和进行调查之前,我们使用“认知访谈”对我们研究组中不参与此项目的成员进行了预测试。这使我们能够了解参与者如何理解和回答问题。在我们的认知访谈期间,参与者在回答每个调查问题时分享了他们的想法。我们利用这些发现来迭代地修订和调整调查问题和答案选项,以最小化偏差并最大化有效性。

在第二次预测试中,我们使用类似于其他作品的方法,在Prolific上进行了两轮共20个用户的试点研究,以进一步完善我们的调查。为了筛选参与者,我们基于自我报告的计算机编程和软件开发经验使用了Prolific筛选器。我们根据试点研究的结果稍微调整和改进了最终调查的措辞。

为了招募参与者,我们创建了一个短的筛选调查(参见复制包[46]),询问软件开发经验、当前工作角色和性别,以便在必要时筛选符合条件的参与者。对于我们的最终调查,我们只邀请声称具有软件开发经验的参与者参加。由于我们无法确认Prolific和MTurk用户自我报告的开发经验,因此我们在新的筛选器中使用了Danilova等人[30]提出的两个额外的编程问题,并重复了这些样本。最后,我们进行了先验功效分析来确定我们统计测试所需的参与者数量。我们使用从文献中收集的标准假设效应大小(Kruskal-Wallis为0.25,Chi-square为中等的0.3效应大小,Mann-Whitney-U为0.8)。所有分析都表明,最多需要325个总体和每组29名参与者,而我们在招募方面远远超过了这个数字。

2.问卷结构

基于表3中提取的问题和2020年StackOverflow开发者调查构建了这个调查问卷。我们尽可能直接复制问题和答案选项以确保可比性。但是,当适当时(例如,我们根据当前最佳实践修改了性别答案以更具包容性),我们会添加答案选项或修改问题措辞。
调查结构如图2所示。总体而言,该调查由五个部分组成,共46个问题。这些部分涵盖了从一般到具体的工作经验、组织、编码和人口统计学问题:

1)介绍

我们询问参与者在不同工作角色中的经验。

2)软件开发背景

我们询问参与者关于他们作为软件开发人员的具体经验,例如他们是如何学习编程的,他们在主要编程领域的熟练程度如何,他们在这些领域有多少经验,以及是否包括集成或部署安全机制等方面(参见Q3-Q12)。

3)组织部分

本节包含有关参与者工作场所的问题,包括他们所在组织的员工数量、团队规模以及他们的工作是否包括安全相关任务和决策(参见Q13-Q19)。

4)编程部分

本节包含有关编程经验的问题,包括对不同编程语言的专业知识、认证,以及参与安全事件、Capture The Flag(CTF)比赛和漏洞赏金计划等方面。我们还从安全软件开发自我效能量表(SSD-SES)2中提出了有关漏洞识别和缓解的问题(参见Q20-Q32)。

5)人口统计学部分

最后,我们询问一般人口统计学信息,例如性别、年龄、种族、教育程度和就业状况等(参见Q33-Q46)。

3.问卷分发

1)选择的平台

我们在前面确定的六个不同招募平台上分发了我们的调查:
<1>MTurk:
对于MTurk参与者,我们要求至少95%的批准率和完成100项或更多工作。

<2>Prolific:
在Prolific上,我们筛选自报计算机编程或软件开发经验的参与者。由于我们无法确认Prolific或MTurk参与者自报的编程知识,因此我们还在这些筛选调查中添加了Danilova等人的两个编程技能问题,旨在测试开发技能。

<3>Upwork:
在Upwork上,我们将招聘重点放在至少具有入门级别经验、90%以上工作成功率并具有英语口语能力的自由职业者上。

<4>Freelancer:
对于Freelancer.com的参与者,我们使用内置搜索并基于“软件开发”一词筛选用户。在这两个自由职业平台上,我们使用用户档案确认参与者的经验。

<5>Google Play:
我们从Google Play Store应用程序中提取了76,978个开发人员的公共联系电子邮件地址,并与他们联系。

<6>计算机科学学生:
为了招募计算机科学学生,我们联系了十所美国和五所德国提供CS学位课程的大学,并请求同事将调查分发给他们的学生。

虽然我们不知道以前是否有从Amazon MTurk招募具有软件开发经验的参与者的研究,但我们选择将其包括在内,因为它在可用安全性和隐私研究中普遍受欢迎,并且探讨它在未来安全开发人员研究中的使用程度。

注:我们假设CS学生和Google Play开发人员由于其专业背景至少具有初学者水平的编程技能。

2)排除的平台:

我们没有从所有我们在以前的工作中确定的平台中招募参与者。尽管以前的研究使用GitHub招募参与者,但我们决定不这样做,因为从GitHub提交消息中提取电子邮件违反了他们的服务条款,也可能构成违反欧洲GDPR的行为。
我们还排除了研究团队之间差异显著的平台,这使得产生可推广的结果变得不太可能。这包括依赖作者联系方式的平台,例如Twitter或其他社交网络。
同样,我们排除了需要独家访问小型或本地群体的平台,例如专业公司或开发人员聚会。此外,我们自己的经验以及我们评审中论文作者的反馈表明,从这些平台招募通常会导致样本较小且工作量更大(例如,联系20个邮件列表以获取15名参与者)。

4.数据分析和质量

1)具体操作:

我们的结果仅包括定量数据点。我们使用Kruskal-Wallis (KW)作为一种非参数等价物来比较多个独立组和排名类别(例如Likert量表)。对于无排名分类问题,我们使用卡方检验(χ2)。在SSD-SES的情况下,我们使用更为适当的曼-惠特尼U检验。程序上,我们首先进行总体检验,然后进行成对比较。我们假设显著性假设的α水平为0.05,并使用Benjamini-Hochberg过程校正结果。
Kruskal-Wallis:
Kruskal-Wallis是一种非参数检验方法,用于比较三个或以上的独立组之间的差异。它基于对每个组的秩次进行分析,而不是对原始数据进行分析。这使得Kruskal-Wallis适用于不满足正态分布假设的数据集。与传统的方差分析(ANOVA)相比,Kruskal-Wallis更加鲁棒,因为它不需要假设数据满足方差同质性和正态性的假设。在实践中,Kruskal-Wallis通常用于社会科学、医学和工程等领域的数据分析。
卡方检验:
卡方检验是一种用于确定两个分类变量之间是否存在关联或依赖性的统计方法。它基于度量实际观察到的频率和期望频率之间的差异来衡量这种关联或依赖性的程度。在卡方检验中,我们将一个总体分为几个分类,然后比较每个分类中的观测值与期望值之间的差异。如果差异不显著,则可以得出结论,这些分类变量之间不存在关联或依赖性。卡方检验适用于离散型数据,通常用于医学、社会科学和市场调查等研究领域。
曼-惠特尼U检验:
曼-惠特尼U检验,也称为Wilcoxon秩和检验,是一种非参数检验方法,用于比较两个独立组之间的中位数是否存在显著差异。它基于对每个组的秩次进行分析,而不是对原始数据进行分析。这使得曼-惠特尼U检验适用于小样本量或不满足正态分布假设的数据集。与传统的t检验相比,曼-惠特尼U检验更加鲁棒,因为它不需要假设数据满足正态分布的假设。在实践中,曼-惠特尼U检验通常用于医学、社会科学和工程等领域的数据分析。

2)优化措施:

为了提高数据质量,我们删除了无效参与者,其中包括68名参与者,在最终调查中报告了与在筛选调查中报告的相反的开发人员经验不足的情况。我们还排除了168名未完成调查的参与者和五名在自由文本回答中给出相同答案或写了无意义评论的参与者。我们检查了完成时间,但没有发现任何人在少于三分钟内完成了整个调查(我们使用估计完成时间与Stack Overflow 2020开发人员调查完全相同)。总共,我们排除了241名参与者,留下了706个有效回复。

4.伦理

没有任何涉及的机构要求正式的IRB批准。然而,我们只使用了先前建立的问题,其中始终包括拒绝回答的选项。此外,每位参与者都同意了我们的同意书,其中包含了关于研究、负责研究人员和联系信息、风险、利益以及隐私和参与者权利的详细信息。在调查结束时,参与者有机会不提交他们的答案,以将其排除在我们的分析之外。我们的调查未收集任何PII,除了对抽奖感兴趣的参与者的电子邮件地址,这些地址在抽奖完成后被删除。我们将收集到的数据存储在加密的云服务器上,只有作者可以访问。此外,我们使用随机的六位数字来识别符合条件的提交以获得补偿,但它们不会以任何其他方式进行存储和处理。补偿取决于平台,但我们的目标是至少授予美国联邦最低工资。对于Prolific和MTurk上的筛选调查,我们支付0.15美元用于一分钟的工作时间,在重新运行时增加到3分钟的0.52美元,而我们为完整的调查奖励5美元。虽然我们没有关于确切调查完成时间的数据,但Prolific报告的比率远高于美国联邦最低工资。我们需要通过电子邮件联系的参与者有机会参加20张50美元礼品卡的抽奖。

五、结果

报告和讨论我们在所有六个样本中进行的调查结果。由于我们无法找到显著差异,因此我们合并了英国和德国学生样本,并将它们统称为学生,以减轻在不同国家/地区的样本研究时的区域偏见。由于我们的一些问题允许多种回答选择,因此我们报告的百分比可能不总是加起来等于100%。

1.参与者的人口信息统计

1)其它领域的经验情况

总体而言,共有947名参与者开始了我们的调查:
我们在亚马逊MTurk(101)、Prolific(122)、Upwork(72)、Freelancer(100)、Google Play(103)和学生样本(208)中考虑了706个完整且有效的回应用于分析。

在所有平台中,我们发现参与者除了开发领域外还报告了其他领域的经验,但程度各异。
<1>最常见的是,开发人员也具有软件测试经验(58.2-70.0%)。
<2>我们发现,在Google Play上,网络技能最普遍(45.6%),在Upwork(22.2%)和Prolific参与者(21.3%)中最不常见。
<3>反向工程知识普遍较少,Freelancer最多为22.0%。它在Prolific(10.7%)或学生中最不常见(13.5%)。

2)参与者基本情况

在所有样本中,参与者主要认为自己是男性(83.4%),CS学生(µ:24.6)居首位,其次是Upwork(µ:27.4)和Prolific(µ:28.0),来自Google Play(µ:37.5)的参与者最年长。大多数参与者(74.8%)学习计算机科学。但是,除了MTurk自报研究专注于计算机安全的比例为21.8%之外,在其他平台上,最多只有4.0%的人报告了这一点。此外,只有少数参与者报告了残疾,并且只有在Freelancer(45.0%)和MTurk(41.6%)上,我们发现大部分人是儿童、老年人或残疾人的主要看护者。

3)文化背景:

所有样本的参与者报告了各种不同的种族(详见复制包[46]中的图9)。总体而言,我们发现在Prolific(86.1%)、Google Play(76.7%)、MTurk(71.3%)和CS学生样本中(59.6%),大多数参与者报告自己是白人或欧洲血统。

4)语言能力

美式英语是MTurk大多数参与者(78.2%)的母语,这可能是因为他们中的大多数位于美国(71.3%),而Google Play(40.4%)和学生样本中的大多数参与者则报告德语是他们的母语。 Prolific、Upwork和Freelancer的参与者报告了各种母语,没有任何一种特别突出。尽管只有MTurk用户是唯一一个拥有大多数以英语为母语的样本,但在五点Likert量表上,所有平台中的大多数参与者(89.0%)都表示非常舒适地用英语回答调查问题。

5)教育和就业

MTurk(76.2%)、Upwork(63.9%)和Freelancer(53.0%)的大多数参与者报告拥有学士学位,而Google Play(27.2%)最常见的是硕士学位。虽然不是大多数人,但学生(32.2%)和Prolific(38.5%)中学士学位最为普遍。此外,在学生样本中,多数人报告是学生(60.1%)或兼职雇员(22.1%),而其他样本中则大多数是全职雇员或自雇人士。唯一的例外是Prolific,在那里26.2%的参与者报告是学生,仅次于全职雇员(45.9%)。总体而言,大多数参与者报告从事软件开发工作(78.9%)。没有其他特别突出的工作角色,但总体上,34.8%的参与者报告作为第二普遍的工作角色从事工程师工作。工作角色分布在平台之间并没有太大差异,只有学生报告具有数据科学或ML专家(20.7%)和学术研究人员或科学家(20.2%)等角色比其他平台更多。

6)工作场所规模和工作时间

在所有平台上,大多数参与者(70.1%)报告在少于500名员工的小公司工作。此外,学生(µ:22.7)报告每周总体工作时间最短。Freelancer(µ:39.0)的参与者紧随其后,其次是Google Play(µ:37.0)和MTurk(µ:36.0)。这强调了除了更常见地兼职工作的学生以外,大多数参与者都是全职开发人员。

关键点|参与者的人口统计数据

软件开发经验是最常见的。参与者还具有(较少的)安全相关领域的经验,例如反向工程或漏洞研究。目前的工作角色主要涉及开发。我们的大多数参与者学习的专业是计算机科学,没有安全方面的重点,许多参与者在较小的公司全职工作。残疾非常罕见。照顾(儿童)仅在MTurk和Freelancer上很常见。我们在平台之间发现了各种族和母语。学士/硕士学位很常见。

2.一般编程经验和知识

1)开发经验

(转自原文 Where to Recruit for Security Development Studies: Comparing Six Software Developer Samples 图3)
在这里插入图片描述

我们要求参与者报告他们的总体和专业开发经验年数(见图3)。Google Play参与者报告了最高的总体(µ:17.8)和专业开发经验(µ:11.0)。相反,学生在总体(µ:7.0)和专业经验(µ:2.1)方面都最不具备经验。对于总编程经验,我们没有发现显着差异,而在专业经验方面,Google Play比Upwork(KW,H = 7.43,p < 0.01)或学生(KW,H = 11.31,p = 0.03)高显着水平。

2)每周开发任务时间

(转自原文 Where to Recruit for Security Development Studies: Comparing Six Software Developer Samples 图4)
在这里插入图片描述

我们还问参与者每周花多少小时在软件开发任务上。大多数Freelancer(79.0%),Google Play(61.2%)和Upwork(63.8%)的参与者报告每周工作超过20个小时,证实了他们通常报告全职状态的之前发现。相反,在Prolific(60.7%)和学生样本(65.8%)以及MTurk参与者中超过一半的人报告工作时间少于20小时。编程、脚本和标记语言的熟练度:作为开发者研究的重要招募标准,尤其是那些有实际任务的研究,是具备特定编程语言[57、58、69]或开发领域[82]的能力。因此,我们要求他们评估前15种编程、脚本或标记语言(见图4a)以及不同的开发领域(见图4b)的熟练度,两者都来自StackOverflow Developer Survey的结果。

3)总结

总体而言,MTurk参与者报告大多数编程语言和开发领域的评分较高,尽管没有一种语言突出。 Rust的熟练度在几乎所有样本中都被评为最低,其次是Go和Ruby。虽然Java被计算机科学专业学生和Google Play开发人员高度评价,可能是由于Java是一门流行的教学语言,并且是Android开发的基础,但我们发现SQL在Freelancer上最为熟知,在Upwork上HTML / CSS的评分也非常高。当考虑不同的开发领域时,我们发现前端和全栈开发在整体上得到了最高的评分。这可能是由于它们是非常广泛和普遍的领域,这得到了StackOverflow Developer Survey的支持,在其中他们是最常被提及的三个角色之一。在给定领域中,Google Play参与者的移动开发自评分最高,这是值得注意的最高分。

关键点|编程、脚本和标记语言的熟练度

Google Play开发人员报告了最多,学生开发人员报告了最少的年份经验。在Freelancer、Google Play和Upwork上,我们招募了大多数全职开发人员。MTurkers报告了大多数开发领域和编程语言的最高熟练度。

3.安全经验、知识和技能

1)安全经验、知识和技能

我们要求参与者报告他们的计算机安全经验年限,包括学习或工作(见图3)。Google Play参与者自报最高的安全经验(µ: 4.4),而Prolific用户最低(µ: 1.3)。然而,我们没有找到样本之间的统计学显著差异。根据SSD-SES量表[79],我们发现参与者对其安全开发技能的信心存在差异(Freelancer.com: µ: 26.4; MTurk: µ: 26.0; Upwork: µ: 24.1; GPlay: µ: 22.6; CS Students µ: 21.9; Prolific: µ: 18.8),而学生们的信心明显较低(曼·惠特尼U检验,U = 370–1107,p ă 0.01)。

2)实施特定的安全功能

我们有兴趣了解参与者实施特定安全功能的经验,例如加密或存储用户凭据等(。我们的参与者报告实施输入验证、授权和认证功能、使用API密钥、使用加密和存储用户凭据的经验最多,并且报告使用密码学密钥管理、数字签名和防欺诈功能的经验最少。我们还发现,来自Upwork、Freelancer和Google Play的参与者报告实施特定安全功能的经验最多。相反,来自MTurk和Prolific的参与者报告经验最少。CS学生处于中间。

3)在代码中发现安全问题

此外,我们询问参与者使用特定技术发现其代码中安全问题的频率,包括自动或手动代码审查、扫描其代码中存在漏洞的库的工具和渗透测试等。总体而言,我们发现这些技术的使用频率在样本之间并没有太大差异(请参见复制包中的图8)。对于大多数技术,参与者表示曾经或偶尔使用过它们(20.2-47.5%),或根本没有使用(16.9-65.9%)。在所有技术中,渗透测试是最不常见的(37.6-65.9%的人表示未使用或考虑使用),这很可能是由于它们的巨大开销。我们发现MTurk参与者报告的频率通常较高,其中25.7-45.6%的人声明他们至少在所有构建或发布中都使用每种技术。总体而言,代码审查比其他技术更为普遍,无论是其他开发人员的手动审查(32.1-47.0%在每个构建或发布中)还是自动代码扫描工具(22.6-45.6%)。

4)接受安全培训

我们询问参与者过去接受的安全培训,包括在工作中、在学校或大学、在线和自学培训(见图6)。除Prolific外,几乎所有样本中超过三分之一的参与者在工作中接受了与安全相关的培训,其中Google Play(53.4%)和MTurk(54.5%)参与者报告了特别高的数字。相反,只有10%到20%的所有参与者(除了MTurk的30.7%之外)参加了由雇主组织的专门的安全培训。总体而言,我们发现参与者最常参加安全相关的事件或之前披露漏洞。然而,在Google Play开发人员中,只有高达22.3%的人参加了任何活动,而较少经验的学生中有42.3%的人表示曾经参加过与安全相关的事件。然而,我们发现,学生参与者通常将安全相关的事件与安全相关的课程混淆。同样,MTurk参与者在除了公开漏洞之外的其他方面报告了令人惊讶的高数字。

5)安全团队还是个人工作

为了检查安全经验是否因独立工作或团队工作而异,我们首先询问参与者团队中的同事数量。我们区分了报告没有或至少一个同事的参与者,对于后者,我们将其视为在团队中工作。此外,该块中的问题措辞略有不同,引用参与者的团队或仅自己。最终,我们发现所有平台上大多数参与者(64.7%)都在团队中工作。

6)目前活动领域的安全重点

Freelancer的大多数参与者(52.8%)报告团队内有安全重点,而学生则最不频繁报告此项(26.2%)。然而,具有安全重点的数字总体上很高,可能是由于我们问题中“安全重点”的定义过于宽泛或模糊。对于单独工作的人来说,在MTurk上具有安全重点的参与者占最大比例(46.7%),而Google Play(12.2%)、Prolific(10.4%)和学生(9.0%)则普遍缺乏安全重点。

7)安全相关任务

同样,我们询问参与者是否或他们的团队是否从事安全相关任务。大多数MTurk(54.7%)和少数Freelancer(49.1%)的参与者报告在团队中从事安全相关任务,而其余参与者大多报告只从事部分或根本不从事(例如,36.9%的学生)安全相关工作。对于单独工作者,大多数Prolific(54.2%)以及Google Play(34.1%)和学生样本中的大多数(49.3%)都没有从事安全相关任务。

8)安全关键决策

此外,我们想知道是否有任何其他人(以及谁)参与了安全关键决策的咨询,因为这些决策从组织的角度来看可能非常敏感。我们发现所有平台上工作的参与者大多数(61.4%)会与他们的团队一起做出安全关键决策。所有平台上单独工作的参与者大多数(53.6%)都会独自做出安全关键决策。

9)安全专家

最后,针对在团队中工作的参与者,我们想了解他们的团队中是否有安全专家。虽然大多数团队中的参与者报告称要与团队一起做出安全关键决策,但MTurk上最多只有45.3%的参与者报告拥有安全专家,这意味着团队内缺乏指定的安全专家。总体而言,我们发现相对于独自工作的人,注意安全的频率对于团队中工作的参与者更为普遍。这可能是因为安全被视为比纯功能更低的目标,因此似乎不太相关,特别是当工作量无法与其他团队成员分担时。

要点|安全人口统计学

MTurk以及自由职业者和Upwork参与者报告了大多数安全相关问题的最高值。计算机科学学生和部分Prolific参与者报告的最低值。已使用安全开发功能,但并非大多数人都使用。最常见的功能包括输入验证、授权和身份验证、API密钥、加密和存储密码。超过三分之一的参与者报告在工作中接受了安全培训。大多数样本中安全活动并不常见。我们发现,在团队中,安全关注和任务比独立工作者更为普遍。

六、限制

1.文献调查受限。

我们与2018年[73]和2021年[47]的文献综述进行了交叉检查,这些综述还包括研讨会和较低排名的会议,未发现任何重大疏漏,并相信已经确定并包含了所有相关论文。由于筛选问题、支付类型和过滤标准的多样性,我们无法在所有测试平台上完美地复制所有以前的工作。

2.招募策略受限

我们决定不使用某些招募策略,因为它们太容易受到研究团队位置的影响(例如安全事件或聚会)或个人/专业联系(例如社交媒体、LinkedIn),或者不能让我们招募足够数量的样本。学生样本是一个例外。虽然它们也受到位置的影响,但我们认为它们对于大学研究人员来说很容易接触,并且在我们的样本中,我们决定合并若干学生样本以减轻偏见。Upwork和Freelancer上的参与者能够直接与我们沟通,并且通常对其他工作很感兴趣,这可能是一种激励,使他们报告更高的分数以留下更好的印象,尽管我们发现两个平台的表现并不比其他平台显着好。

3.官僚主义原因

对于某些平台,由于官僚主义原因(即与我们机构的支付有关),我们需要多次运行或停止,从而导致这些样本的数据收集时间更长。

4.多次参与

此外,可能存在同一人通过不同平台参与多次的情况。但是,我们询问了参与者在哪些招募平台上活跃,参与者平均报告了三个额外的平台。我们认为由于其他方面的差异(例如族裔背景),参与者大规模地重复回答的可能性很小。

5.文化/社会环境影响

对于德国学生样本,由于翻译和不同的文化和社会环境,参与者可以选择不同数量的答案来回答性别、主修学科和照顾问题。我们发现这对数据没有显著影响。最后,随着招募渠道的变化,我们相信应该定期重复进行这类研究。

七、讨论

在本节中,讨论了在这项研究中使用的招募平台的经验,并提供了适用于某些安全研究类型的平台建议。由于研究人员需要考虑他们的目标人群来决定是否选择招募平台,因此本文会在下面的结果讨论中提供有帮助的招募决策见解。

1.参与者特征

1)开发经验、技能和知识

开发经验和技能是安全开发研究常见的选拔标准。我们的研究结果为研究人员提供了洞见,依据他们的研究需求沿着经验谱系的各种点进行选择。我们发现学生具有最少的经验,而Google Play开发者具有最高的整体和专业开发经验。MTurk和自由职业者参与者分别被报告有第二高的整体和专业开发经验。

开发者招募的另一个相关标准是参与者可能具有的特定技能集,例如对某种编程语言或开发领域的知识,这对于想要研究Python编程安全方面的研究非常有用。
<1>我们发现MTurk最为多样化,参与者报告了大多数开发领域和语言的高熟练水平。
<2>Google Play开发者报告更擅长Java和Kotlin,
<3>CS学生擅长Java和Python,
<4>自由职业者和Upwork上的参与者则擅长SQL和HTML/CSS。
虽然这些结果可能有些偶然性,但发现Android开发人员擅长Java、而Java和Python是学生流行的教学语言似乎是合理的。

研究人员通常需要权衡他们的经验和技能需求与招募所需的努力程度。虽然我们能够在所有我们采样的平台上招募到开发人员,但我们发现在某些平台上,招募速度或难度更低。这在Prolific和MTurk尤其明显,因为研究人员可以批量筛选和雇用开发者,而Upwork和自由职业者则专注于合同工作,因此需要研究人员一次雇用一个参与者。

2)安全经验、技能和知识

<1>调查结果

总体而言,我们发现参与者在安全开发的各个领域都有经验。关于安全功能的经验,我们发现输入验证、身份认证、API密钥、加密和密码存储的使用最为普遍,尤其是在Upwork、Freelancer和Google Play上广泛使用,这表明他们比其他样本具有更广泛的安全开发经验。关于使用安全开发工具查找代码问题的频率,MTurk参与者报告了比所有其他样本更频繁的部署;我们没有发现其他样本之间有任何重要的差异。虽然我们的分析只涉及到具有开发背景的参与者,但我们询问了一些其他领域的经验,并在我们的样本中发现了与安全相关的职业角色,这使得在Freelancer上招募反向工程师等更可行的选择,而在Prolific或Google Play上则不太可能。

<2>结果分析

总的来说,MTurk参与者对大多数与安全相关的问题报告了最高的值,这表明在那里招募开发人员更容易。这包括工作角色的多样性,特别是在反向工程或漏洞研究等与安全相关的学科领域,以及他们的安全经验和安全知识自信度,这些都是通过SSD-SES进行评估的。虽然MTurk看起来很有前途,但我们在最初的运行中遇到了大量无效和非常相似的答案,这可能是由于多重账户造成的。这要求我们使用Danilova等人提出的编程技能问题进行调整后重新进行样本采集。因此,我们建议使用MTurk时要谨慎,并采用类似严格的筛选要求来提高数据质量。虽然我们在Prolific上没有观察到这个问题,但我们也只能依靠自我报告的技能,并决定使用同样的筛选器重新进行这个平台的样本采集。未来的工作应该更详细地研究我们的发现,以更好地评估MTurk用户在安全开发研究中的招募情况。作为另一种选择,Freelancer和Upwork的参与者也经常在安全相关问题上报告高分值(有时比MTurk还高)。它们是研究人员试图获得多样化样本时的其他可行选项。另一方面,我们发现学生以及Prolific参与者在安全方面的经验较少,他们报告的安全经验年限最少,最不经常使用安全功能,并且SSD-SES得分最低。我们还发现,与独自工作的人相比,团队合作的参与者更有可能在他们的工作中关注安全或从事与安全相关的任务。这是再次指向使用MTurk等平台,因为相对较多的参与者在团队中工作,可以招募到更多的安全专家。

反向工程:
反向工程是指通过分析和破解现有产品或软件,了解其设计、实现方法和工作原理的过程。它可以帮助人们理解并学习已有的技术,也可以帮助识别和纠正错误或弱点,从而改进和优化产品或软件。在计算机领域中,反向工程通常涉及对二进制代码进行逆向分析,以还原程序源代码或找出其中的漏洞和安全风险。

3)样本的多样性

虽然参与者的经验、技能和知识是招募的重要方面,但人口统计学数据的多样性对于研究项目也可能至关重要。在我们的调查中,Google Play开发人员报告了最高的平均年龄和最宽广的年龄范围,与他们的工作年限很高相一致。CS学生最年轻。关于性别,我们发现所有平台上男性参与者占压倒性优势,这在安全研究中很常见。只有在Prolific(26.2%)和学生样本(20.1%)中,我们发现女性参与者的比例相对较高。关于种族,我们发现Freelancer和MTurk的样本最为多元化,而Google Play和Prolific则呈现出非常欧洲中心的样本。我们认为由于这些发现,MTurk和Freelancer在其样本内提供了最广泛的多样性程度。

人口统计学数据的多样性:
人口统计学数据的多样性指的是在一个研究项目的参与者中,人们的年龄、性别、种族、文化背景等方面的差异和多样性。这些差异和多样性可以帮助确保研究结果的广泛适用性和可靠性,并帮助避免偏见和不完整的分析。

2.具体的招募策略

1)众包

<1>平台

MTurk和Prolific这两个众包平台提供了一个简单的招募过程。虽然除了现有的、潜在缺失的筛选器之外,它们都没有提供筛选机会,但设置额外的筛选调查以寻找合适的参与者是很容易的。

<2>不足

然而,我们发现在MTurk上存在多重账户的情况,这要求我们使用特定的基于技能的筛选问题。在这两个平台上,可以轻松快速地收集大量参与者,但样本的控制受限于可用的筛选器,当需要针对特定人群时,这些筛选器可能不足以满足需求。这也可能导致偏斜的人口分布,例如在非常欧洲中心的Prolific中,或者受在线趋势的影响。

<3>建议

我们建议MTurk适用于需要更多参与者的大型研究,其中数据中的一些噪音(即欺诈)是可以接受的。对于需要较少参与者的研究,应该使用Freelancer或Upwork等平台,这些平台的数据噪音较少。此外,对于小型研究来说,招募速度较慢应该不是一个大问题,研究人员可以通过参与者的个人资料收集更多的信息。

2)自由职业者

<1>平台

Freelance和Upwork

<2>不足

在Freelancer和Upwork上创建工作岗位更加复杂,因为这些平台是专门面向招募一些自由职业者来完成更复杂的实际任务,例如编写网站程序,从而导致每个工作的最低工资相对较高,为10美元或5美元。为此,我们需要在设置过程中提供更多有关工作以及参与者期望方面的信息,但我们可以直接沟通并足够过滤合格的参与者。然而,这也导致一些用户试图与我们讨价还价,比众包平台更耗费时间。

<3>建议

在Upwork上,可以将筛选问题包含在工作职位中。在这两个平台之间,我们发现在Upwork上招聘更少复杂且更直观,并且具有更容易和更快速的付款选项等好处。此外,我们在Freelancer上只收到了两个申请,这迫使我们手动联系参与者。因此,我们特别推荐Upwork招募有经验的开发人员进行实际编码研究或类似的大型任务。

3)电子邮件邀请

<1>方式

通过电子邮件联系了Google Play的开发人员和学生。

<2>不足

虽然可以使用大学邮件列表来联系计算机科学专业的学生,但并不是所有研究机构或非附属研究人员都可以获得访问权。尽管我们只使用了从Google Play获取的公共联系信息,但从GitHub提交中收集电子邮件地址的常见做法是一个法律灰色地带,研究人员应该注意这一点。此外,我们发现许多开发人员的电子邮件地址已不再使用,或者导致无法到达开发人员的票务系统。

<3>建议

总体而言,通过电子邮件分发调查是最快速和最便宜的方法,但回应率却最低。由于没有处理付款的平台,提供补偿更加复杂。最后,发送未经请求的电子邮件邀请越来越被认为是垃圾邮件,并且收集和使用非公开的联系信息受到新兴隐私法律(如欧盟的GDPR)的限制。

招聘建议的关键要点:

在所有平台上都存在开发人员。 Google Play的开发人员经验最丰富,但主要专注于Java和Android。学生比其他平台的开发人员经验不足。虽然Prolific上也有开发人员,但他们在安全主题方面的经验较少。众包平台应仅通过筛选问题进行过滤,特别是MTurk。自由职业平台需要大量手动工作,并且更加昂贵。尽管电子邮件更便宜,但回应率较低。

八、总结

在这项工作中,我们首先确定了招募具有软件开发经验的参与者进行用户研究的常见策略。我们从这些论文中提取了相关的调查问题,并设计和测试了一个问卷,以研究参与者的一般编程知识、技能和经验以及安全编程方面的知识、技能和经验。最后,我们在六个样本中对706名参与者进行了调查,并提供了他们调查回答的详细见解。总体而言,我们发现不同样本的参与者差异显著,而不同招募策略的特点极大地影响了它们适用于不同类型的研究。未来的工作应该研究更多被我们排除在外的招募平台,以获取安全开发研究的可行招募方法更广泛的视角。类似地,未来的工作可以研究具有不同重点的开发人员样本,例如系统管理员或安全工程师。最后,虽然我们发现MTurk参与者在大多数情况下自我报告的整体和安全经验、技能和知识都很高,但这一特定发现应该进一步研究。

个人思考

一、个人总结

本文首先确定研究的问题是,在不同平台中招募有软件开发经验的熟练参与者中的差异,以及基于研究结果为招募有软件开发经验的熟练参与者提供可行建议,为此本文首先查找了大量相关论文,确定了本文研究的主要流行招募平台,通过研究相关论文,确定了研究人员从参与者那里需要的常见招募平台、经验、技能和知识,并以此为基础制作了调查问卷,通过将问卷发放给六个招募平台上的样本,将测试结果进行对比,分析了六个平台招募人员的数据,并基于分析数据给出了在六个平台上招募的可靠建议。

二、思路剖析

1.确定研究的问题。
2.查找大量相关论文,确定研究人员对参与者关心的内容,以此作为调查的目标平台和目的内容。
3.分析招募者的组成和基本信息,并调整调查问卷,排除文化/区域/语言等影响
4.针对六个平台的招募者进行问卷调查。
5.分析六个平台招募者的经验、技能、知识等安全开发经验,以及各个平台招募难度和优缺点。
6.总结六个平台的优缺点并给出在六个平台上招募的实质性建议。

三、值得学习的点

1.做调查问卷时需要考虑地区/文化影响,因为六个招募平台涉及的人员是全球性的,在设计调查问卷时需要考虑语言/文化等的影响。
2.在确定调查平台和调查内容时以顶会论文的涉及内容为参考,即确定了本文的研究应当以为顶会论文发布者们提供帮助为基准。
3.在分析数据时,采用了多种分析方式以全面的评析数据。
4.统计数据时排除了诸如多个账号、重复答题等情况,祛除了噪音数据

四、大胆揣测

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值