在开源领域工作了十多年之后,经历了从初创公司到世界上最大的开源公司,并推出了我的开源项目资助平台(https://www.oss.fund),我终于有了一个想法。“开源”一词并不足以涵盖现代开放软件所有可感知的价值,开源需要一个更广阔的视野,以及一个支持开放治理和开放资金的基础设施。
在过去,开源的价值在于源代码,我们可以从自由软件的自由度和开源定义的发布标准中感知到这一点。但现在情况不一样了。现如今,开源产品的生产速度很快,但腐烂和过时的速度更快。除了源代码提供的价值之外,开源项目还有其他重要的特征。开源的价值在于项目被采用,有时候一个项目会成为某种技术事实上的标准(比如用于消息传递的 Apache Kafka)。开源的价值还在于参与者之间的松散协调、开放的协作和伙伴关系,以实现一个共同的目标(如 Kubernetes SIG 贡献者们)。开源的价值还在于项目的长期可持续性,可以在公司被收购或破产之后继续存在(比如 Oracle 和 Jenkins)。今天,成功的开源模式更多的是用户采用、健康的社区合作和长期可持续性的一个缩影。
首先,我要说的是开源许可。开源许可规定了源代码及其衍生物(二进制文件、服务)可以使用和不可以使用的发行方式。对于很多用户来说,这是一个不容置疑的因素。它决定了一个项目是否是开源的。但问题是,仅凭一个开源许可并不能保证一个项目将为我们带来所有潜在的价值。
其次,我要说的是项目治理。治理模型为重要的项目决策制定规则,并规定项目的“所有者”如何与社区发生交互。有一些项目的治理是通过一个可信任的软件基金会来实现的。基金会提供了中立性、稳定性和透明度,但同时,它也可能导致缺乏灵活性,让社区停滞不前。还有一些项目由单一公司负责管理,这些公司有可能对项目许可做出变更,甚至把开源项目变成专有软件。
作为一个开源项目的用户,我希望项目是开源的,这样我就可以自由地使用它。同时,我希望它能被广泛采用,这样我在遇到问题时就能够找到答案,可以找到相关的博文和最佳实践,可以找到开发人员和支持提供者,甚至把软件当作服务使用。一个开源项目就是一个伪装的营销工具。一个开源项目,如果还没有达到被广大社区所接受的程度,就不能提供全部的价值。今天,开源的价值不仅在于源代码,也在于社区。一个项目的开源许可和治理直接影响着社区的健康。
开源项目的第三个关键因素是长期可持续的财务模式。一个无法为项目贡献者提供可持续经济激励的开源项目,可能在一夜之间就失去了支持者。一个缺少贡献者的项目就是一个充满安全漏洞的项目,一个有安全漏洞的开源项目就是一个死气沉沉项目,没有人会在乎一个死气沉沉的项目。
我们已经无数次看到不具备财务稳定性的开源项目是如何被遗弃的,或者被迫变更开源许可,成为专有的项目。有时候,这类项目由一家公司负责运营,而被一家公司掌握的开源项目并不能带来开放协作的好处,它变成了与公司战略、路线图相一致的公司项目,并与公司的财务健康状况相关联。这不是一件坏事,但也不是真正的开源。
项目维护人员的长期财务健康状况经常是源代码及其社区之间缺失的一环。糟糕的项目资助模式,或者缺乏模式,会影响治理、开源许可的选择,甚至是破坏社区。
这需要一个新的更广泛的开源愿景和基础设施。当我打开 Github 网站,我总是会关注一个开源项目有多少 star 和 fork,这些数字显示了社区的参与度。我关注的第二个东西是项目许可,它告诉我们可以用源代码做些什么。那些准备在开源项目中投入大量时间、精力和专业声誉的人,也会看一下项目的治理模型,看看项目是否属于基金会,看看项目管理委员会的成员都有谁以及他们是如何选举出来的,看看他们是如何修改现有的过程、项目特性,以及谁是看门人,等等。在某些情况下,这些规则会被写在 Wiki 页上,但对于较小的项目,它们不会出现在 Wiki 中,项目所有者可以做任何他们想做的事情,甚至是在没有社区的参与或透明度的情况下。除非项目是软件基金会的一部分,否则就不存在代表最佳实践的开源治理框架。我们无法通过添加一个文件(类似许可文件)来将治理模型应用到项目当中。即使存在治理模型,我们也没有自动化的方法来保证这些治理规则得到遵守。
我关注的最后一个东西是开源醒目的财务健康状况和可持续性指标。正如前面所说的,财务状况不健康的开源项目预示着可能会出现意外的变化和令人头疼的问题。现如今,并不存在一个单一的指标可用来衡量项目的财务健康状况。如果一个项目是软件基金会的一部分,我们可以看看这个项目从这种治理关系中得到了什么好处,但通常来说,这些是为了维护基金会而不是项目本身。如果一个项目是由一家公司负责运营的,就没有办法知道这个项目对公司财务的贡献情况。如果项目维护者使用了 Github Sponsors,我们可以看到项目当前的赞助情况,或者可以看一下 Patreon 的捐款情况,或者去其他地方搜索一下类似的指标。这些开源资助平台功能都不够完善,在开源支持者当中也不是很流行。直至今天,都还没有一个被开源用户广泛采用的长期财务资助平台,也没有任何可信的财务状况指标。
想象一下,在未来的世界里,开源不仅仅是一种开发方法或营销机会。相反,它是一种开放的技术性均衡,在这种均衡中,知识和金融价值得以交换。在这样一个以开源为主导的未来,我希望能够做到:
我知道“开源”原本并不包含软件的治理、社区和融资。但今天,这些是开源项目的关键特征,它们会间接影响用户的自由和长期利益。一个完全开源的项目需要一个更全面的视角,不仅仅是开放源代码,不仅仅是开放开发方法,不仅仅是一个营销机会,不仅仅是一个增加销量的路线图。所有这些都应该是公开管理的,到了那个时候,它们将成为一种去中心化的带有开放治理和开放资金的开源软件。
原文链接:
https://monetize.substack.com/p/a-holistic-vision-of-open-source
延伸阅读:
关注我并转发此篇文章,即可获得学习资料~若想了解更多,也可移步InfoQ官网,获取InfoQ最新资讯~