发布于 2026-01-06 5 阅读
0

开源软件存在免费使用的问题。

开源软件存在免费使用的问题。

开源的必要组成部分之一就是我们免费做一些工作。但是,如果所有工作都必须免费完成,或者至少成为一种普遍的规范,那就存在问题了。

环顾四周。我们确实面临一个问题,是时候采取行动了。

开发人员可以从设计师那里学到哪些关于规范工作的知识

在设计界,反对按需付费的设计工作是一种普遍现象——看看nospec.com网站上的这段话是否也适用于开源项目:

为什么说义务劳动是不道德的?

这些设计师往往无偿工作,并被虚假宣传、夸大其词地承诺未来就业机会;或者只得到其他微薄的报酬。通常,这些被美化的奖励或“诱饵”对刚入行的设计师来说极具诱惑力,并伴随着“对你的作品集有益”或“获得认可和曝光”之类的说辞。

美国平面设计协会(AIGA)作为设计领域的专业组织,也反对按要求完成设计工作

无偿工作是成为顶尖知名开发者的一条常见且有时有效的途径。缺乏报酬不仅对开发者个人不利,还会加剧现有的特权,从而引发社会问题。这篇关于无薪实习的文章很好地描述了无偿工作的种种弊端:

无薪实习的更广泛影响是:(a) 雇主倾向于利用年轻劳动力,以经验作为货币来代替实际的工资;(b) 社会不平等差距扩大,因为低收入学生实际上被排除在这种所谓的“教育”经验之外,而这种经验是他们在自己选择的领域获得充分就业的途径。

我们可以通过像Outreachy这样优秀的带薪实习项目来缓解这种影响,但同时也存在一个更大的结构性问题。

让我们摒弃开源完全是慈善行为的观念。

在软件行业,我们正在将按规范工作规范化,而设计行业曾成功地抵制了这种做法。

围绕开源的说法是,我们做这些事情完全没问题——甚至是一种期望——是为了娱乐和曝光;而大型公司应该因为向一小部分开源项目捐赠微不足道的资金而获得巨大的宣传功劳。

为了娱乐和曝光而做事,或者接受捐赠,这本身并没有错。问题在于,当免费劳动被视为理所当然,而捐赠被视为足够的时候。

当开源维护者要求为所提供的价值付费时,人们似乎真的难以置信。正如凯尔·米切尔所说,这传递出的信息似乎是“我们盈利,你们可持续发展”。

常见的情况是:一两个无偿维护者,他们的工作被付费专业人士在工作中使用该软件提交的拉取请求和问题所淹没。

事实上,开源软件大多数时候并非慈善行为。二十年来,它一直是众多大型盈利企业的重要组成部分。绝大多数开源软件的使用和开发都发生在商业环境中。

当一家公司真的为价值付费,而项目参与者却无法从中获得任何个人收益时,慈善的幌子就彻底失效了……这些钱最终会进入非营利基金,用于奖学金或其他类似用途。诚然,慈善基金的存在本身并没有错,但它并不能解决那些真正为专业人士的专业工作支付报酬才能解决的问题。

如果我们拥有一批专业的独立维护者,不断改进我们赖以生存的代码,开源会是什么样子?

慈善活动最适用于“品牌”项目。

一个“Hello, World”单页JavaScript应用程序包含大约一千个包……我们的初步研究表明,其中约四分之一的包已经完全停止维护一年或更长时间(没有发布,没有提交,PR/issue也被忽略)。除了这四分之一之外,还有更多包维护不足,虽然没有完全停止维护。而且这并非JavaScript独有的问题。

这类应用程序中那些知名的头条新闻套餐可能由大公司维护,或者拥有相当可观的 Patreon 资金……但其他 990 个套餐则不是。

可以自信地拒绝免费的苦力活。

过去,完全付费参与的开源项目发展并不顺利;它们最终要么被拆分,要么被忽视,因为要求用户付费才能参与,使得项目难以获得广泛应用,也难以建立繁荣的社区。我们需要找到一个微妙的平衡点。

在保持这种平衡的同时,有些工作确实没必要免费进行。例如,Mikeal Rogers 建议我们停止免费支持旧版本。以下是一些其他值得考虑的例子:

  • 支持请求。提交错误报告是一回事,但维护者没有理由免费手把手地帮助任何人。可以创建论坛或使用 StackOverflow 让大家互相支持;也可以创建并宣传付费支持选项;如果你不想免费提供,那就别做!

  • 额外版本发布。我经常收到这样的请求:“你能不能现在就按我的时间线做一个特别的一次性版本发布,因为我想要做这个改动;” 我觉得我没有义务这样做。

  • 极高的稳定性。如果我只是为了好玩而工作,只考虑社区用户,那么我破坏功能或清理过时代码的频率会比考虑商业用户时高得多。

  • 法律复选框。对于试图审核其所用代码的大公司来说,许可证元数据注释实践很有帮助,但这很麻烦,而且除了这些大公司之外,没人会在意。

  • 极其严谨的工程设计。极高的测试覆盖率、安全审计和加固,以及任何你觉得枯燥乏味的工作。没有理由去做超出你兴趣范围的事情。

  • 及时审核补丁并进行问题分类。这一点比较棘手,但经验丰富的维护者都知道,每个拉取请求都会占用他们的时间。你没必要因为GitHub 的默认设置就采用面向所有人的社区开发模式;有些项目明确选择不采用这种模式,因为维护者希望专注于自己编写代码。

  • 在安全方面要格外用心。理想的安全流程需要相当长的学习曲线;我们应该在所有地方都使用双因素身份验证;我们应该对软件包进行签名。我们或许会为此感到内疚,但总体而言,开源维护者并没有可靠地做到这些。

每个维护者和项目都会希望以不同的方式划定这条界限。这是一个需要积极探索和协商的领域:如何在不免费提供所有服务的情况下蓬勃发展——尤其是在大型商业用户不为价值付费的情况下,如何避免从事面向企业或商业的枯燥乏味的繁琐工作?

现在很多用户都期望并要求这一切都是免费的。作为行业从业者,或许我们应该更积极地抵制这种期望。设定一些界限是完全可以的。

顺便一提,实际上没有任何项目能够完全满足用户的所有需求。但这些需求之间的界限往往没有明确界定,这导致各方都感到沮丧。

一个解决办法:提高收费!

帕特里克·麦肯齐有一句口头禅:“多收费!”,他认为这是解决许多问题的良方。它对缓解职业倦怠大有裨益。

开发者常常因为以下原因而对开口要钱感到内疚:

  • 他们真的很喜欢自己正在做的工作。

  • 做任何一件事都不需要花费太多时间。

  • 如果有人对我大吼大叫怎么办?

你看,使用你软件的企业根本不会考虑这些因素!他们甚至不用“成本加成”定价法——也就是说,他们不会问“这款软件的开发成本是多少?”然后在此基础上加价10%。相反,他们会问“这款软件对买家来说价值多少?”,然后按价值定价。这叫做价值定价

开源维护者理应采用基于价值的定价模式。你也理应如此。你的用户都在根据价值而非成本向他们的客户收费。而且,无论你的成本如何,他们中的许多人都愿意为价值付费。

按价值收费会降低权利。

Tidelift,一些维护者问我们,付费订阅 Tidelift 的公司是否会觉得有权对维护者提出过高的要求。这听起来似乎有悖常理,但我们的经验恰恰相反;许多软件公司经营者都表示,客户付费越少,所需的维护支持就越多。免费用户是最难搞定的,而不是最容易搞定的。

想了解“不付钱我就有权得到一切”这种现象的无数有趣例子,我推荐ChoosingBeggars子版块。当然,我们这些开源维护者可能也遇到过一些不太好笑的例子。

即使我们做了很多免费工作,设定一个“标价”也很有帮助,可以明确双方的预期。(很多维护者可以经常坦诚地说:“如果我按市场价收费,我刚才帮你做的这个 pull request 审查要 5000 美元。”尽管事实如此,但我们很少有人会真的这么做。)

别忘了,当你按价值收费时,你就是在给人们创造价值。

许多公司都渴望获得那些我们无法免费可靠完成的额外繁琐工作。虽然很难量化,但试想一下,如果有几百名全职的独立维护人员在维护你上千个依赖项……每当你因为文档缺失、bug、功能缺失、依赖地狱等等问题而感到沮丧时,想想付费给维护人员的价值吧。

从有能力支付的公司的角度来看,强制支付往往对它们更有利。一般来说,公司无法进行可选项支付。如果没有销售人员引导他们完成内部流程,他们也可能无法支付。将付款方式变成类似“小费罐”的自愿支付方式并不妥当,因为公司很难接受这种付款方式。

当然,也存在一些实际障碍。

如果你修改项目 README 文件,写上“嘿,我不会免费做 A、B、C 类繁琐工作”,你可能会发现事情并没有那么简单。

  • 你会听到来自世界各地那些自以为是的乞丐们的抗议嚎叫。

  • 其中一些抗议者将是高薪软件开发人员,他们或许会因为参与开源项目而获得某种形式的报酬,但他们同时又认为独立维护者不应该获得报酬,因为开源应该是慈善事业。

  • 您的项目可能太小(只是上千个依赖项之一),公司可能不会参与进来,也难以通过他们的采购部门审批。

  • 你需要建立一个最小可行业务,包括销售、付款、会计和税务等环节。

在许多开源项目中,尽量减少摩擦至关重要。开发者在使用某个项目时,可能需要提交 PR 或 issue,或者向维护者提出其他一些小请求;理论上,他们可能愿意为此支付 300 美元,但实际上,很难从雇主那里一次性拿到 300 美元。对大多数大公司来说,花钱是一个流程繁琐且成本高昂的过程。每次与开源项目进行微小的交互都要重复这个过程,显然是不合理的。

这意味着,如果有人提交问题或在聊天中提出请求,而你作为维护者说“我不能免费做这件事”,你实际上就等于让他们碰壁;他们什么也做不了。在我的项目中,我发现这让我不愿采取强硬立场。

对于开源世界来说,这是一个值得深入探讨的问题。

综上所述,无偿工作存在一些问题:

  • 社会公平——目前,开源加剧了科技行业的多元化问题我们也是问题的一部分。

  • 缺乏维护,我们赖以生存的许多项目都处于停滞状态,维护不善。

  • 权利意识:当我们不重视自己的时间时,人们就会认为它的价值很低。

  • 维护者们热衷于从事他们最熟悉的项目,他们只是需要收入来让他们有时间去做这些工作!

我希望我们能更深入地探讨以下问题:

  • 哪些类型的工作需要无偿进行,开源社区才能蓬勃发展?

  • 为了使开源项目拥有收入稳定的独立维护者,还有哪些其他类型的工作需要获得报酬?

  • 项目如何才能让用户清楚了解预期,并为公司提供为所获得的价值付费的途径?

  • 最受欢迎、最受关注的项目如何帮助解决依赖关系图中其他部分的问题?

潜在的好处,重申一下:一个更加多元化、更受重视、更专业的独立维护者群体,不断改进我们所有人都依赖的代码。

当然,这与我们在Tidelift 的工作息息相关——这家公司正是在讨论这个问题以及其他相关问题时应运而生的。我们的总体使命是让开源软件更好地服务于所有人。目前,我们正致力于通过Tidelift 订阅服务,为订阅用户提供一种向其应用程序依赖项的维护者付费的方式,以获取更多增值服务。

但我们希望看到更多这方面的努力和讨论。我们相信还有许多尚未探索的途径。社交媒体上关于新许可证和开源商业模式的讨论往往集中在热门项目和风投支持的公司上,而不是规模较小的独立项目和库。然而,在虚拟打赏和1亿美元融资之间,存在着广阔的解决方案空间值得探索。我们希望与大家一起参与到探索的过程中来。

文章来源:https://dev.to/tidelift/open-source-has-a-working-for-free-problem-1k4i