解决开源的搭便车问题

为了使开放组织可持续发展,我们需要解决搭便车问题。这是一个可以着手的地方。
426 位读者喜欢这篇文章。
A person holding on to clouds that look like balloons

Opensource.com

Nadia Eghbal 在她关于我们数字基础设施状况的主要报告中,以及 Jonathan Lister 在他的回应中描述了我们的数字生态系统,都指出了开源软件中存在的公地悲剧。虽然一些项目是可持续的,但许多项目仍然在“搭便车问题”中挣扎。正如 Nadia 所说:

资源是免费提供的,每个人(无论是个人开发者还是大型软件公司)都在使用它们,因此没有人有动力回馈,他们认为其他人会介入。

“心脏出血”漏洞揭示了这种现象的一个极端案例:一位单枪匹马的开发者,拿着微薄的薪水,承担着半个网络的重担。

关于解决这个问题的建议,Jonathan 建议我们借鉴生态系统管理,“生态系统管理本身就是一个行业,拥有相关的专家,他们著书立说,并在会议上发表演讲”。我最近阅读了该领域的开创性著作之一,诺贝尔奖得主埃莉诺·奥斯特罗姆 (Elinor Ostrom) 的《公共事物的治理之道》,我想就它如何应用于开放组织和开源可持续性提出一些初步想法。

奥斯特罗姆论公地

奥斯特罗姆观察到,一些群体显然已经克服了公地悲剧,而另一些群体则没有。她给我们的第一个教训是关注制度,将其作为成功与失败的决定性因素。通过仔细审查案例研究,她提炼出了原则,用于设计制度来管理她所谓的“公共池塘资源”或 CPR。

“公共池塘资源”一词指的是一种自然或人造[原文如此]资源系统,该系统足够大,使得将潜在受益者排除在从其使用中获得利益之外的成本很高(但并非不可能)。

CPR 包括渔业、地下水盆地和森林。“攫取者”是指那些从 CPR 中获取资源的人,而“提供者”和“生产者”则建立 CPR 并使其持续运行。

现在,开源软件在技术上不是 CPR,而是一种所谓的“公共产品”。两者是相似的:防止某人攫取开源软件是很困难的(通过设计!),就像阻止人们在某个区域捕鱼一样困难。经济学家会将它们都称为“非排他性的”。但是,当您捕获一条鱼时,我和您不能同时捕获同一条鱼(当您捕获一条鱼时,我就不能捕获同一条鱼),但是您和可以同时使用相同的软件(当您下载并部署它时,我也可以这样做)。因此,从技术角度来看,经济学家认为 CPR 是“竞争性的”,而像开源软件这样的公共产品是“非竞争性的”。

这种区别意味着奥斯特罗姆描述的生态系统管理并不完全或完全适用于开源软件。但是,CPR 和公共产品存在搭便车问题,而奥斯特罗姆本人也说:

一项专注于个人如何避免搭便车、实现高度承诺、安排新制度以及监督在 CPR 环境中遵守一套规则的研究,应该有助于理解个人如何在其他一些环境中解决这些关键问题。

开源社区中的搭便车行为导致个人过度劳累和薪资过低,并最终导致倦怠。这对个人不利,对项目也不利。这是一个我们需要解决的问题。奥斯特罗姆向我们展示了如何通过有条不紊的制度设计和分析方法来解决这个问题。管理开源软件项目的开放组织可以从她那里学到很多东西,同时认识到我们将需要调整她的建议以适应我们的情况。

User profile image.
我是 Gratipay 的创始人,Gratipay 是一个开放组织,其使命是培养感恩、慷慨和爱的经济。我们帮助公司和其他机构为开源付费——我们通过自己的平台获得资金。在线下,我住在美国宾夕法尼亚州匹兹堡郊外,在线上,我住在 Slack、IRC 和 GitHub 上。

22 条评论

似乎这篇文章想要做的是改变开源的概念。对我来说,开源项目本质上是拿出一些东西供大家免费使用,允许人们贡献,但是否贡献是他们的选择,而作为贡献者,您接受这一点。同样,那些做出贡献的人不是雇员,他们参与其中不是为了听从外界的命令。
组织面临的挑战是找到鼓励人们做出贡献的方法,通过提供帮助、鼓励,尝试充实帮助可能开始的方式,然后在获得帮助时表达感谢,因为这并非理所当然。

当开源开发者表达一种理所当然的感觉,并对他们的工作没有报酬感到不满时,我确实觉得很反感。对我来说,开源是关于内在动机的!如果您不想做开源,那就别做。

我想指出的是,开放组织作为一种经济实体的可能性,它将开源固有的内在动机与经济活力结合起来。我们能鱼与熊掌兼得吗?

回复 ,作者:Greg P

我非常感谢这篇专栏文章,因为我真的相信对“搭便车”的各种探索将阐明关于开放文化和经济学的关键内容。我不认为我已经完全准备好得出结论,认为这对开源项目和社区来说是一个“问题”,“对个人不利”和“对项目不利”。我之前也涉足过并阅读过一些相关资料——只是还不足以做出任何明确的判断。

事实是,我发现关于搭便车对开源项目和社区的影响存在相互矛盾的观点。在《开源的成功》一书中,政治经济学家史蒂文·韦伯 (Steven Weber) 似乎并不认为这是一个与查德 (Chad) 在此处引用的观点相同的问题。事实上,他认为开源之所以能够存在(并成功),正是因为它无视了传统的经济思维,尽管存在搭便车者。我当然不是坚持认为他是正确的——只是指出了讨论的复杂性和此处仍然存在的工作。

我猜想,搭便车作为“问题”的地位取决于我们在描述开源商品、项目和社区时使用的隐喻。我们也没有确定这些隐喻。例如,Lister 的文章提倡在关于开放项目的讨论中采用“生态系统”隐喻(他希望我们停止使用陈旧的“基础设施”语言)。奥斯特罗姆似乎喜欢这种语言来构建某种问题,但查德在此处指出,“奥斯特罗姆描述的生态系统管理并不完全或完全适用于开源软件。”因此,也许道路和桥梁的策略毕竟更合适。我们用于与其他运动和支持来源建立联盟的语言将需要强调我们希望这些盟友采用的代码商品方法。如果那是道路和桥梁——因为我们最终决定这些确实以最适当和最具成效的方式符合“竞争性/排他性矩阵”——那就这样吧。

“搭便车”的概念中包含了如此多的关于开放性的问题,这些问题不断点燃我们对它的迷恋。这就是为什么我会继续阅读任何人关于它的任何评论。谢谢你,查德。

的确,我们甚至无法正确定义什么是搭便车者。为了得出一个公正的定义,我们必须考虑整个社会的背景。假设的搭便车者用该软件做什么?

如果某人使用自由软件和开源软件为他们的公司省钱,以便他们反过来可以赚取更多利润,给该人奖金,从不回馈项目,但随后将所有空闲时间都用来照顾街头的无家可归者,那么将该人称为搭便车者是否公平?

关键是,我们不知道假设的搭便车者是否真的是为了个人利益而搭便车,还是利用这种好处在其他地方做好事。

换句话说,什么是搭便车者需要放在全球社会背景下看待。在全球 70 亿人口中,有多少人为社会做出贡献,又有多少人从社会中获得收益。

以及我们如何将接受者变成贡献者。

当然,为基础设施提供资金的问题是一个重要的问题,但我不会将其简化为搭便车问题。相反,它需要被纳入许多值得我们关注的社会事业之中。

问候,eMBee。

回复 ,作者:bbehrens

我根据经济学中的标准定义狭义地使用“搭便车”:某人使用公共产品而不为其付费。所以,是的,我会将您示例中的人称为搭便车者,因为他们使用了未付费的软件。

附注:有时也会搭便车!“问题”与其说是任何特定的搭便车行为,不如说是对所讨论商品的总体影响。在软件项目的情况下,影响是个人精疲力竭和项目无人维护。

回复 ,作者:eMBee(未验证)

您是否期望我们应该为使用公共产品直接回报?

您是否不允许通过创造另一种公共产品来支付使用一种公共产品的费用?

您认为不直接回报是一个问题?

但这真的有必要吗?

看看其他公共产品,如街道、公园、公共艺术品、教育、无家可归者收容所、慈善机构。几乎没有一个是由其用户直接付费的。它们中的大多数由税收支付,有些由其他志愿者支付。

我们必须直接回报,还是提前支付是可以的?

我不是孤立地看待自由软件和开源产品,而是将其视为所有现有公共产品的更大池塘的一部分。

我正在将公共产品的“使用”和“支付”扩展到整个池塘,以便任何使用该公共产品池塘的行为都可以通过将其他任何东西放回该池塘来支付。

我正在使用“为社会做出贡献”作为一种“社会货币”的形式,因此我声称您示例中的人确实在为使用自由软件和开源产品付费。

我认为街道是一个很好的类比。最初,街道只是通过持续使用而形成的。最终,那些需要街道和桥梁的人加强了街道和桥梁的建设。随着社区的发展,人们认识到整个社区需要照顾街道,并使用当地公共资金来建设和维护街道。最后,一条国家高速公路网建成,由国家税收支付。

自由软件和开源软件也遵循类似的发展。它始于人们为自己的需求创建软件。社区正在发展并为其自身发展提供资金。最后,我们认识到存在一套几乎每个人都在使用的全球基础设施,现在我们正在努力弄清楚如何为此付费。

也许,像国家高速公路一样,它可以由税收支付?

顺便说一句:“搭便车者”一词也暗示着利用某些东西来谋取个人利益。任何生产公共产品的人,最肯定的是没有利用任何东西来谋取个人利益。

问候,eMBee。

回复 ,作者:whit537

当我达到这一点时,我变得模糊不清并退回到远处:在未来,更多的资金朝着相反的方向循环(推动而不是拉动),并且……我们有一天醒来并意识到我们不再需要钱了?我们会达到那个地步吗?转型是如何运作的?那到底是什么样子的?我还没有深入思考过。

我认为,无论您做什么,只要能够让您的日子充满感激、慷慨和一起工作的乐趣,都是很棒的!

我现在在旧金山(我从匹兹堡来访)撞墙(其中一件事)的是一种企业心态,而不是个人心态,即除非必须为了获得某些价值,否则人们不会为事物付费。对于公司来说,事先为价值付费真的很容易,而事后为价值付费真的很难。就自由软件而言,公司收获了很多价值。我们如何发展我们的公司来为这种事后价值付费?说自由软件开发者从公司本身生产的商品中获得非货币利益是否足够?这在实践中是否得到证实?

回复 ,作者:eMBee(未验证)

实际上我还没有读过《开源的成功》,所以感谢您在此处将它引入讨论!我将不得不研究一下。

通过“各种探索”,我感觉到暗示了斯蒂芬·沃利 (Stephen Walli) 最近的挑衅,即“搭便车者对于成功至关重要”,这在他的 All Things Open 演讲中以及此处的 Meme #6 中有所体现:

https://open-source.net.cn/business/16/4/12-memes-explain-open-source-softw…

在他演讲结束后,我和他实际上就此进行了一次有趣的交流。我认为他是对的,“现有的“开源商业模式”实际上本身不是开源商业模式,而是从开源社区的生态系统中收获价值(见与 Lister 的框架的联系)、增加额外价值并在市场上销售价值的商业模式。”

正如我在另一条评论中提到的,我想指出的是真正开放的开源经济实体的可能性。一种将我们在开源项目中发现的内在动机和最高级别的个人自主性与传统企业的经济活力相结合的东西。

我们已经弄清楚了如何在市场内部的某种泡沫中存在的开源项目中产生价值。解散分隔两者的膜会是什么样子?真正开放的开源经济会是什么样子?

回复 ,作者:bbehrens

这是一个经典的错误前提。“心脏出血”漏洞的发生是因为用户对安全性漠不关心。如果有一个昂贵的(支付了足够的安全性)和一个廉价的(没有安全性),您可以预期用户会选择廉价的。如果昂贵的那个营销得当,就没有理由关心安全性。看看所有主要的病毒中心:Microsoft Windows、[以前的?] MS Office、Android、Flash 等。所有这些都得到巨大利润的支持,并且对于任务成功至关重要。但是,在客户期望之前,没有人会认真对待安全性(Office 可能设法变得稍微安全一些,但这对于 Windows 来说为时已晚)。

查阅“柠檬市场”。这才是问题所在,而不是开源。开源不存在“搭便车”问题,因为搭便车者对项目没有任何压力。如果搭便车者不喜欢他们得到的东西,并且仍然拒绝贡献,那就是经典的柠檬市场。柠檬市场在专有系统中也运作良好。

另外,我小心地没有说搭便车导致了“心脏出血”漏洞。它可能导致了,也可能没有,但无论如何,该事件确实揭露了一个搭便车的极端案例。

回复 ,作者:wumpus(未验证)

对于开源来说,更多的是程度问题,也许是重点问题。如果很多人搭便车,那很好。即使大多数人搭便车,也没关系。事实上,它不可能以其他方式存在——我用来输入此评论的笔记本电脑上有数千个开源软件包。我可能是一位天才程序员,将每一刻都奉献给开源软件,但我仍然会搭便车使用我使用的大多数软件。这真的是它的美妙之处之一;只要一定比例的人做出贡献,我们所有人都会获得所有这些美好的东西。如果您看看 Linux 及其生态系统,显然已经有足够多的人没有搭便车,使其在许多领域占据主导地位。即使在桌面领域,不搭便车的人数也足以制造出一些相当好用,甚至很棒的系统——即使使用份额在 1-2% 的范围内。想象一下,如果 10% 的人都在使用 Linux 桌面,Linux 桌面会多么令人惊叹!当然,如果这个比例能稍微高一点就更好了,但整个系统总体上运行得非常好。

问题是当每个人都搭便车时。而且总会有一些事情没有得到关注,看起来很无聊或不引人注目,每个人都只是想当然地认为一切都还好。“心脏出血”漏洞之类的事件向我们表明,我们不能完全依赖于一种纯粹基于注意力的方法来做出贡献。我认为在边缘领域进行一些规划是有空间的,例如基金会或政府可以站出来,审视整个生态系统/基础设施,并帮助那些被忽视的重要领域/部分。

好观点。

问题的关键不是搭便车,而是缺乏对我们都依赖的关键工具的关注。

回复 ,作者:Purple Library Guy(未验证)

让我们注意区分免费搭车(不付费)和免费蹭用(不工作)。免费蹭用很好也很健康,只要我们不是都在免费搭车就行。我们必须以某种方式回报!

回复 ,作者:Purple Library Guy(未验证)

“我们必须以某种方式回报!”
那句话是写在哪块石碑上的?这可能是道德/伦理上的事情,但并非绝对要求。

您对免费“搭车”和“蹭用”的区分是基于您的个人定义的人为区分。您只是在玩弄语义。

作为一名程序员,我受雇开发工资应用程序。但是,我也碰巧开发了各种软件工具来简化编程过程。软件工具开发不是我的工作描述的一部分。很快,其他程序员也开始使用我开发的工具。他们是在搭便车吗?我从没期望或想要为创建这些软件工具获得报酬。我感到痒痒,我就挠了挠,其他人也从中受益。

开源软件的情况类似。很多开源软件的开发是因为有人觉得痒痒,而不是因为他们被告知要开发特定的应用程序。“搭便车”的概念是由雇佣兵程序员发明的,他们期望为他们编写的每一行代码都获得报酬。对他们来说,编程只是一份工作,而不是一个创造过程。

回复 ,作者:whit537

我认为 dragon 的评论非常精彩。

虽然我认为这篇文章是一篇精彩的、发人深省的、引发对话的文章……但我通常称其关于搭便车者的主要观点为胡说八道。

虽然我强烈赞同 Dragon 的“痒痒”类比,但我也会将“搭便车者”重新标记为“重要的反馈机制”。一家主要的软件生产商在最终发布版本的产品的调试和完善上花费了多少时间和金钱(是的……不要嘲笑 MS 永远不够完美)?

其他人提到,3 个用户的操作系统和 300 个用户的操作系统之间存在差异。虽然他们朝着不同的方向发展,但我坚持认为,拥有 300 个用户的操作系统正在走向更加稳定和更加成功。那是 300 个“免费”的 beta 测试人员,他们发现了错误或损坏的代码,以帮助该给定项目向前发展和蓬勃发展。当然,像样的、可行的反馈可能只占用户的一小部分比例(让我们假设 5%)……因此,按照这个计算,您需要尽可能多的搭便车者来提高有用测试和反馈的水平和数量。(回到 5% 的 3 有效为 0,而 5% 的 300 是 15 个 beta 测试人员,他们为程序员的项目提供了宝贵的服务——再次是免费的)。

因此,我们拥有价值。因此,我们拥有更多搭便车者带来的更多重要价值。因此,搭便车者对于 OSS 来说是一件好事。

回复 ,作者:dragonmouth(未验证)

我不得不在此表示不同意。 “心脏出血”漏洞暴露的不是“搭便车”或“免费蹭用”(用查德的话来说)的问题,而是项目管理的问题。唯一的项目贡献者/选择了长期不积极寻求任何帮助。他显然从未读过《开源之道》:

https://www.theopensourceway.org/wiki/Introduction

如果他读过,他就会拥有创建和发展活跃贡献者社区的工具。我认为对于任何想要运营开源项目的人来说,这份资源都是必读的。

附注:对我来说也很清楚,有压倒性的证据表明,搭便车或免费蹭用都没有问题。例如,我对 OSS 的唯一贡献是在少数几个项目的留言板上发帖以及一些非常偶尔的错误报告。按照查德的衡量标准,我是非常大的问题的一部分。我认为根本没有问题。只有极少数孤立的案例是有人搞砸了社区的发展。

回复 ,作者:Purple Library Guy(未验证)

非常发人深省,查德。这让我想到,定义我们认为搭便车的问题是什么是有帮助的。由于开源复制成本为零,因此人们使用代码而不做出贡献本身并不是问题。我想说,问题来自于您可以称之为“净负面贡献”的东西,即以无益于整体的方式做出贡献。我自己也曾犯过这种错误——半生不熟的拉取请求,或者带着一种权利感来要求新功能,这种权利感来自于突出一个新的用例。还存在依赖于相对于其他依赖项和安全风险而言变得过时的东西的问题。

这是一个思考激励因素的好点。正如 Bryan 的文章 [1] 所讨论的那样,人们出于各种原因做出贡献,尤其是不想错过他们想看到的变化或挠痒痒,而且似乎很自然的是,并非每个人都有兴趣在他们最初的成就之后继续发展。如果您想雇用某人来创建、维护和改进一个新的软件项目,您就不会选择这种态度,但我认为对于那些开始使用和依赖开源项目的人来说,他们很容易患上身份认同错误症。

[1] https://open-source.net.cn/open-organization/16/1/employees-wont-work-paych…

首先引用 http://www.thondomraughts.com/2009/03/making-money-with-free-software.h…

“我们今天看到的软件行业在 60 年代和 70 年代并不存在。在那些日子里,软件开发主要发生在学术和研究机构。开发软件的人是学者,他们像分享传统知识一样分享软件及其源代码。对他们来说,软件只是知识的另一种形式。人们开发软件、共享源代码、共享修复程序、进行修复和更新,然后也共享它们。软件的增长就像科学一样,通过分享和积累贡献。”

现在,如果自由软件开发者不在大学工作,那么文章中有这样的建议:

“……有很多成熟的自由软件赚钱方式。一些值得注意的方式是:1) 提供支持 2) 多重许可 3) 双重版本 4) 定制服务 5) 托管服务。”

最后,一个有趣的评论:

“值得记住的是,最近一次自由软件公司收购案,即 Sun Microsystems 收购 MySQL,金额达到了 10 亿美元。”

是的,一些公司成功地从开源生态系统中获取价值,增加他们自己的价值(支持、法律保证等),并以利润出售其增值服务。正如 Stephen Walli 在 #ATO2016 上指出的那样,这实际上并不是一个“开源商业模式”,而是一个使用开源作为原材料的专有商业模式。

如果真的存在一个真正的开源商业模式呢?如果我们能教会公司如何为开源软件*本身*付费呢?

回复 作者: Máté Wierdl (未验证)

有趣的文章,Chad。在阅读这篇文章和上面的评论时,我有三点想法。

首先,即使是搭便车者也提供了价值。一个只有三个不直接为工具做贡献的用户的开源项目,与一个有 30 万个不直接贡献的用户的开源工具,无论如何都不是同一性质的,仅仅是因为很难想象一个有 30 万用户却只有一个贡献者的开源项目。

第二点是,为开源项目做贡献所需的努力和知识量,可能需要项目的发起者花费更多的时间,使项目真正对贡献开放,而不仅仅是对使用开放。我想我们大多数人都知道一些开源项目,即使不是对贡献者有敌意,至少也是对贡献者漠不关心的。我想我们大多数人都曾决定切换到开源解决方案 B,而替代方案是为开源解决方案 A 做贡献以使其变得更好,无论是由于 A 对贡献者漠不关心,还是因为考虑到通过贡献所能获得的预期收益,学习曲线似乎太大了。

第三点是,多少贡献才算足够?如果我点击“捐赠 10 欧元”按钮,这足够吗?项目所有者是否应该承认,从那时起,我正在以有意义和直接的方式做出贡献?如果我贡献了一个补丁呢?或者一个“好主意”呢?既然我在我的思想中已经做出了贡献,我应该期望得到什么样的认可呢?

多少才算足够,取决于项目的需求。例如,对于 openssl 来说,回流到其中的贡献显然是不够的。

多少才算足够,在每种情况下都会有所不同,这取决于用户对社区的其他贡献(无论是整个世界社区还是项目社区,或者介于两者之间的任何社区,任你选择),并且它取决于项目本身的需求,以及用户的需求。

有些项目运行良好,他们不需要任何贡献。而有些项目则正面临资源匮乏。

这取决于用户社区去发现他们的需求是否得到满足,如果他们没有得到满足,那么就去增加贡献,直到他们的需求得到满足。

在 openssl 的案例中,随着额外资金的出现来支持其发展,这种情况发生了。

现在仍然存在的问题是,还有哪些其他项目需要更多资源来满足用户的需求?这也包含着一个隐藏的问题,即是否所有用户都知道他们正在依赖需要更好支持的软件。对于 openssl,大多数用户(我在这里计算的是任何使用基于 Linux 的手机的人)过去不知道(现在仍然不知道)这一点。

回复 作者: clhermansen

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.