为什么我们为开源软件做贡献?

深入研究支持开源生态系统和开发者参与动机的研究。
129 位读者喜欢这篇文章。
question mark in chalk

TeroVesalainen via Pixabay CC0

作为一个整体的组织出于各种原因为开源软件项目做出贡献。

最重要的原因之一是开源开发模式是与其他公司在共同感兴趣的项目上进行协作的有效方式。但他们也希望更好地了解他们使用的技术。他们也希望影响方向。

具体理由因组织而异,但通常归结为在开源中工作有利于他们的业务这一简单事实。

但是,为什么个人为开源做贡献呢?他们大多也看到了某种个人利益,但具体是什么激励了他们呢?

动机的类型

当我们谈论动机时,一种常见的方式是根据激励理论。该理论始于 20 世纪 40 年代和 1950 年代,建立在克拉克·赫尔和肯尼思·斯彭斯等心理学家建立的早期驱力降低理论的基础上。激励理论最初基于这样一种观点,即动机主要由外部奖励或激励的前景推动。

金钱是典型的外在激励因素。赢得奖项、获得成绩或获得可能带来更好工作的认证也是如此。

然而,在 20 世纪 70 年代,研究人员开始考虑内在动机,即除了活动本身之外,不需要明显的奖励。由爱德华·德西和理查德·瑞安开发的自我决定理论后来从比较内在和外在动机的研究以及对内在动机在行为中可以发挥主导作用的日益增长的理解中发展而来。

虽然内在动机可能来自许多不同的来源,但最直接的来源是对特定活动的简单享受。您下班后参加垒球联赛是因为您喜欢打垒球。您享受锻炼、友谊和比赛本身。

研究人员还提出了基于享受的内在动机与基于义务/社区的内在动机之间的进一步区分,后者更多地与遵守社会或社区规范有关。也许您真的不喜欢让亲戚来过感恩节,但您还是这样做了,因为您知道您应该这样做。

今天的心理学文献也包括内化的外在动机的概念。这些是外在动机,例如获得技能以提高职业机会——但它们已被内化,因此动机来自内心,而不是渴望其他人吊在您面前的任何诱惑。

是什么激励开源开发者?

2012 年,苏黎世联邦理工学院的四位研究人员调查了过去十年对开源软件贡献的研究。在他们的研究结果中,他们能够将研究发现分为以下三个类别:外在动机、内在动机和内化的外在动机——以及这些更广泛类别中的一些常见子分组。

金钱作为外在动机出现并不奇怪。在研究期间,与今天的情况相比,与成功的商业支持产品相关联的大型项目较少。即便如此,研究人员检查的大多数开源项目都有相当数量的贡献者,他们的公司付费让他们从事开源工作。

职业显然与薪酬密切相关,但开源软件在这方面与专有软件开发有何不同吗?有一些证据表明它是不同的。

勒纳和蒂罗尔在 2002 年首次提出,“个人开发者在开发开源软件时会受到职业因素的激励。通过发布可供所有人检查的免费软件,他们可以向潜在雇主展示自己的才能,从而提高自己在劳动力市场中的价值。”

最近,有大量经验证据表明,开发代码并使其可供他人查看和使用具有职业优势。在某些行业领域,求职者拥有公开的 GitHub 代码存储库几乎已成为一种期望,这些存储库实际上是他们简历的一部分。

询问这种趋势是否走得太远是合理的。毕竟,许多高素质的开发人员都在从事专有代码的工作。但很明显,公平与否,至少一些职业前景可能专门来自成为开源开发者。

在内在动机中,意识形态和利他主义通常似乎密切相关。

自由软件最初主要是一种意识形态声明,即使用户控制也具有重要的实际意义;几位研究人员在开发者调查中发现了对意识形态动机的支持。

利他主义也可能是开发者的动机,尽管对此的研究结果褒贬不一。一篇论文将“向程序员社区赠送礼物的愿望”确定为开源软件中的关键模式。但其他研究已经限定了利他主义作为动机的重要性,尤其是在获得报酬的程序员中。其他研究发现,利他主义可能是一种动机,但仅限于那些本来就很满意的开发者。

还有乐趣和享受的激励力量,这是一种经典的内在动机。对于任何在开源开发者周围转悠的人来说,这都不应该感到惊讶。几乎所有人都喜欢从事开源项目。一项 2007 年的大型研究确定,乐趣占项目投入工作量(以小时数计算)的 28%。这项研究的一个含义是,开发者通常不太喜欢的活动——技术支持通常位居榜首——可能需要其他形式的激励。

许多关于声誉作为内化的外在动机的研究都特别关注同行认可。您在同行中的声誉可能是您自豪感的来源,但它也向社区内部人士和潜在雇主展示了您的才能。早在 1998 年,埃里克·雷蒙德的论文“开拓 Noosphere”中就提出了声誉可能是贡献开源的重要动机。然而,从那时起,各种调查都支持同行声誉是参与驱动因素的观点。

这一类别的另一个动机是研究人员称之为“自有使用价值”的东西,但更广为人知的描述是类似于“解决自己的难题”——开发自己想要的东西,并在过程中创造对他人有价值的东西。最初的动机本质上来自自私的需求,但这可以演变成更内在的贡献欲望。

研究将自有使用价值确定为一种良好的动机并不奇怪。当然,民间智慧是,许多开发者通过开发自己需要的东西来进入开源领域——例如,当 Linus Torvalds 编写 Git 是因为 Linux 需要一个合适的分布式版本控制系统时。

正如我们所见,开源软件的贡献者有各种不同的动机,但在结尾时值得强调一些普遍的主题。

当过度依赖单一动机时,动机实际上可能会适得其反。一项研究报告称,解决自己难题的开发者“不拘一格”地工作,“修复让他们烦恼的错误,然后退出,直到下一次。”

特别是,不要期望非外在动机承担过多的负担。如果任务实际上并不有趣,那么乐趣就不是一个好的动机。利他主义激励了一些人,但它也无法支付他们的账单。

话虽如此,开发者确实出于并非纯粹关于金钱或其他外在原因的原因做出贡献。学习、同行声誉和认可对许多人来说都很重要(而不仅仅是在开源开发中。)组织不应忽视这些因素在激励开发者方面可以发挥的作用,而应围绕这些因素实施激励计划,例如同行奖励系统。


这篇文章基于作者的开源如何吞噬软件(Apress,2018 年)中的材料。

接下来阅读什么
User profile image.
Gordon Haff 是红帽技术传播者,是客户和行业活动中经常出现且备受赞誉的演讲者,专注于包括红帽研究、开源采用和广泛的新兴技术领域。

4 条评论

当然是为了支持社区!

开源软件声誉的一部分是文档的缺失或不足。因此,学习如何使用它一直是一场斗争。我参与了邮件列表以帮助学习,然后一路走来,我惊讶地发现自己能够帮助他人。这对我来说演变成帮助创建更完整的文档,然后编写或修复 Python 脚本。即使我不太擅长修复错误,我也可以通过解释或完善其他人报告的某种错误的描述来提供帮助。最终,您会得到作为与开源软件相关的社区一部分的积极反馈。

我最终在民意调查中点击了“其他”,因为我为开源项目做出贡献的原因不止一个,并不是说其他一些选项对我来说不重要。毕竟,谁不喜欢玩得开心!

这绝对是多方面的。而且,正如研究表明的那样,如果人们获得合理的报酬,就更容易找到其他贡献的理由。

回复 作者:peter_cheer

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.