Apache 之道,开源可持续成功的秘籍
方法论在人类的发展历史上是至关重要的,很多组织行为、社会学等科学家都认为三次工业革命的本质人类的组织上的变革,而并不仅仅是技术的进化。而以 Apache 为代表的现代软件工业,是最先进的软件生产方式,其方法论“Apache 之道”才是精华所在。
毫无疑问,开源软件是越来越重要了,那么作为开源软件中重要的中流砥柱的 Apache 软件基金会(ASF)也迎来了 20 周年,那么我们是不是应该反思一下关于 Apache 的能够如此长盛不衰?以 Apache 之道为原则的社区驱动开放模式尽管遇到了不少的挑战,但是仍然在开源的生态系统中发挥着举足轻重的作用。
Apache 之道的历史要更为远久一点,该方法论的提出在 24 年前,即该基金会建立之前的原 Apache 小组提出的。该方法论经过时间的证明,是 Apache 成功的一个重要的基础,而且我们认为它对于开源之所以能走到今天是至为重要的。
这么多年下来,Apache 之道尽管修改了不少内容,但它仍然坚持初心:高度的透明性,让所有人可访问的中立的环境中进行社区驱动的协作。
Apache 之道从法律和社会框架两个维度对开源进行了定义,它有助于人们理解是什么让开源变得如此的强大,以及参与开源的过程中的行为方式。本文我们将在基金会的使命的背景下来诠释 Apache 之道:
“Apache 软件基金会的历史使命是为公众利益提供软件。我们由许多志同道合的独立的个人所组成,这些个人通过参于 ASF 的社区活动,来为软件项目提供服务和支持。”
接下来就让我们一句一句的来剖析这段宣言:
提供软件的公共产品
本节的关键点:
- 我们生产的软件是非竞争性的,也是非排他性的。
- 在任何上下文中使用 Apache 软件都不会降低其他人的可用性。
- 用户和贡献者对于基金会、项目以及社区均毋须承诺任何的责任。
- 使用符合开源定义的许可证是必要的,但这并不足以完成我们的使命。
investopedia 站点定义的公共产品的意思是:”一个人可以消费的产品,而不会降低其对另一个人的可用性,并且不会排除任何人。”从字面上来看,似乎我们使用该定义是蛮不错的选择,但是,这其中有一些细微的差别,我们的使命不是生产“公共产品”,而是“为公众利益提供软件”。
若要理解为什么这点差异是如此重要的话,人们必须去思考是什么激励着 Apache 软件基金会去为公众利益而生产软件。
开源软件可以被无限的复制和重用,每一位用户都可以按照自己特定的需要而去更改代码,他们也可以根据需要和其它的软件合起来,他们可以使用自己设计的创新产品和服务,且从中获得切身利益。以上所谈都是可行的,而且也不会影响到其他人对软件的使用。因此,ASF 所生产的软件可以通过许多种不同的方式提供给公众利益。
为了让我们能够完成这部分任务,至关重要的是,我们选择使用法律来保护基金会,即策划了软件的许可证。对于我们来说就是Apache 许可协议版本 2,另外,我们也采用了 入站许可证规定,该规定定义了哪些许可证授权的软件是可以用于 Apache 项目的,该规定可以简略的总结为:
- 协议必须满足开放源代码定义(OSD)。
- 在实践中应用的许可证不得强加超出 Apache 许可证 2.0 的限制。
这也就意味着人们完全可以放心,由 Apache 软件基金会的孵化的软件项目,既是公共产品,也是为公众利益。人们可以基于任何目的去使用 Apache 的软件,而且人们并不会对基金会、项目、以及社区有任何的责任。
这里有一个值得重点强调的事情是,有些软件采用了 Apache 许可证,但是没有遵循相应的入站许可规定,这类项目可能会带来 Apache 许可证所没有涵盖到的限制;因此,仔细检查这些项目的许可政策非常重要。这也就是说,如果只是采用了 Apache 许可协议,而不是在基金会所孵化,注意这而二者之间有着显著的差异。
Apache 项目在很多领域里都是成功的,这要归功于我们所遵守的定义非常清晰的许可证规定。这也让下游的用户可以非常清楚的理解那些事情可以做,那些事情是不能做的。Apache 许可的初衷是希望每个人参与开源的机会是均等的,这个开源是广义的开源,不仅限于 Apache 软件项目,也包括其它的开源项目。Apache 的许可证是被允许修改的,但是修改之后的 Apache 协议,就再也不是 Apache 许可证了,也不会得到 Apache 软件基金会的许可或承认。修改之后的许可证是不可以使用 Apache 的名义的,这也是被严格禁止的,因为这会让用户感到困惑,也会损害 Apache 的名誉/品牌。
虽然我们认识到许多方法可以授权软件,无论是开放源代码还是其他方式,但我们断言,只有同时使用我们的许可证(未修改的)和入站许可规定的项目才能真正遵循并遵守 Apache 之道。
虽然 OSD 批准的许可证和相关政策是成功开源生产所必需的,但我们认为还需要补充一些内容。它们为开源的生产提供了法律框架,但它们没有提供社会框架,这就引入了我们所阐述的使命的后半句话:
我们由许多志同道合的独立的个人所组成,这些个人通过参于 ASF 的社区活动,来为软件项目提供服务和支持。
我们由许多志同道合的独立的个人所组成
本章节的关键点:
- Apache 之道提供了一种治理模型,旨在为协作创建一个社会框架。
- Apache 软件基金会(ASF)发展社区,而社区去开发项目。
- ASF 项目社区开发和重用软件组件,而软件组件又可以在产品中重复使用。
- ASF 软件的用户经常使用我们的软件组件构建产品和服务。
- 我们的模型以及其他类似的模型已经产生了一些规模最大、寿命最长的开源项目,这些项目彻底改变了行业。
这句话虽然很短,但是它蕴含的内容却非常的丰富。理解了这些文字,就基本理解了 Apache 之道所持续发展的软件和其它开源许可证下的软件之间的差别了。而且还特别的强调了基金会本身并不参与软件的开发与生产,这个事实就摆在面前,Apache 软件基金会,软件代码价值超过 80 亿美元,其本身并不开发软件。相比于专注于软件本身,基金会更加倾向于构建和支持协作的社区;软件则是这一目标的附带产物。
这些志同道合的项目社区之所以能够聚在一起,是因为他们分享遇到的共同的问题,且可以在软件的开发中得到解决。常言道:“分享问题,问题其实已经解决了一半。” 通过将具有独特想法和技能的个人聚在一起,我们打破了协作的边界。
Apache 之道经过精心设计,旨在创建一个协作的社交结构,它补充了上面讨论的法律框架。在法律框架确保使用软件的平等权利的情况下,Apache 之道确保了为软件做出贡献的同样的效果,这对于开源软件项目的长期可持续性至关重要。许多非 Apache 项目没有采用类似这样的协作社交结构,但强大的社交结构无疑是 ASF 项目长期成功的关键组成部分。
Apache 之道是完全包容、开放、高度透明、以及基于共识的。积极的倡导供应商中立原则,以防止来自单个公司的不当影响(以及控制)。它可确保任何有价值贡献的个人均有权获得授权,尽管社区成员资格随着时间的推移不可避免地会发生变化,但是它可确保项目可持续性发展。
Apache 项目通常会以不同的方式生成可与其他软件(任何许可证)组合的软件组件,以解决不同的问题。这为参与者提供了大量机会,可以在给定的软件项目中进行协作,而不依赖于他们在基金会之外的关系。这与根据开源许可证将产品作为一个整体来授予许可是非常不同的做法,Apache 之道的模式提供了更多的重用机会,反过来又为社区的人才储备做出了一定的准备。
此外,Apache 之道以实际成绩为基础的制度旨在确保:在社区人来人往的情况下,保持项目的持续前进,总是有人能够代替现有的人。也正因为此,一些独一无二的 Apache 项目能够存在 20 多年,在万维网(WWW)的商业化进程中,功不可没,当然,也有数十个项目也站在时代的前沿,在诸如大数据、物联网等细分的行业内引领创新。
Apache 之道的核心原则是”社区胜于代码”,这句精炼的话深刻体现我们的哲学:健康的社区优先于卓越的代码。一个健壮的社区总能纠正代码的问题,而一个不健康的社区可能很难以可持续的方式来进行代码的维护。健壮的社区确保基金会可以在未来的 20 年甚至更远的未来保持茁壮成长的态势。
Apache 的项目在扩展到其它项目上并没有遇到任何问题,这区别于那些聚焦于法律框架下的开源项目,如果环顾四周,看看和 Apache 项目一起成长起来的项目,就能明显的看到 Apache 在治理模式上的重点倾向。这并非是偶然的事情,是我们精心设计的结果。
为什么 Apache 之道很重要
软件是现代经济中不可或缺的一部分。软件已经触及到现代社会的方方面面,生活的各个角落,而且也反过来改变着人们的日常生活,从生到死,无处不在。
在 Apache 软件基金会,我们深信每一位开发者都明白自己打造软件的驱动力所在。我们尊重他们选择何时以及如何构建软件的权利,包括他们使用非开放许可的权利。
我们也不会去决定什么对开发人员或软件行业最为有利。
相对来说,我们更加软件的供应,这使得我们的用户、贡献者以及公众能够决定什么是最适合他们的。
我们非常欢迎任何人使用我们的软件,也欢迎大家去为项目做出贡献,即使不做贡献也没有关系,完全取决于人们自身。
当然,我们对于商业的要求,是留在 Apache 的大门之外。
无数组织证明,他们在供应商中立环境中协作的团队成员经常将开放式创新流程(例如 Apache 之道)应用于他们的工作。这有助于创造内部效率,并为可能提供额外附加利益的新外部机会奠定基础。
只有带来让人们参与贡献的意愿才是让 Apache 社区更为壮大,也是增强 Apache 品牌的不二途径,且可以赢得大众的信任,更是帮助我们实现为公众利益提供软件的使命。
我们一起学习,共同提高,只为交付出我们所能做出的最好的软件。
Apache 的软件是提供给所有人的。
选择的自由是基金会和 Apache 项目如此强大的原因。
总结
软件工业已经彻底改变,而且改变将会一直持续。而且交付软件的方式也已经彻底改变。身处软件产业的老前辈们有的已经退休,而新人正在积极的跟进。但是这个世界上有些东西是不会变的,那就是我们通过法律和社会框架共同约束下软件开发的协作模式,也是继续保持生产软件的最佳模式。
伴随着用户数量的增加,哪怕是他们没有为代码做过贡献,这对于项目仍然是有益处的,其实对于开源项目来说,多多益善。这意味着一个很简单的道理,越多的用户机会就越多,在 Apache,更多的用户意味着他们在未来有极大的可能成为贡献者。
作为一家在美国注册为 501©(3) 的公共慈善机构,Apache 软件基金会帮助独立个体和组织去理解开源是如何在一个激烈竞争的市场中发挥优势的。二十多年来,我们的重点不是生产软件,而是指导生产软件的社区。Apache 之道对于开源社区的持久发展有着显著的优势:我们所做的一切都是开源的,所有的用户都可以从中受益。Apache 是所有人的 Apache。