无论是想作为贡献者加入开源项目还是要创立开源项目,了解开源项目的治理架构以及贡献者权威是极其重要的。在开源社区中,这称为项目治理(Project Governance)。项目治理是一群由社区选举出来的积极贡献的开发人员,他们能为项目的未来做出技术决策 [1]。每个开源项目都有一个治理模型,而且模型也会因项目的不同而有所调整。本文将描述一些最常见的开源治理模型。
不同的项目可能有不同的治理模型。也就是说,治理模型可以从单个或组织的集中控制(也称为仁慈独裁)到为表彰贡献成都而授予的分布式控制(也称为精英管理)[2]。
下图展示了开源治理模型的类别以及其中的一些项目示例。图片中还说明了该项目是否鼓励来自广泛来源的贡献(集市风格)或是有一小部分专门的核心贡献者(大教堂风格)。例如,Linux 项目鼓励每个人的贡献且发布较为频繁,但治理是由 Linus Torvalds 完成并拥有每个版本的最终决定权。GNU Emacs 项目则遵循另一种方法。Emacs 有一个小型的贡献者团队,发布频率较低。尽管该项目由 Richard Stallman 管理,但也有维护者以更开放的贡献模型来维护该项目。
图1:治理模型范围
我们将在下面介绍不同的开源治理模型。
项目可能遵循一种或多种治理模型。遵循Founder-Leader模式的经典项目示例 是Linux 、 Python 、 Perl 、 SciPy 、 Wordpress 、 Pandas和Vim 。例如 Apache 项目和TARS项目等基金会旗下的开源项目则会遵循基金会支持、选举和Do-ocracy的方式。
为什么需要治理模型?
项目治理模型能给开源项目带来许多优势。首先,它降低了项目放弃或不被维护的风险。其次,项目治理消除了单一供应商控制的问题。当项目开始取得一定的成功时,如果没有治理模型,供应商将有可能做出有利于公司战略但不利于整个生态系统的选择。最后,治理模型为创新提供一个安全的摇篮。也就是说,当项目有一个开放的治理模型时,开发人员能够相信他们的贡献将基于相应的优势和对项目最有利的方式被评估。这种方式能够吸引具有不同经验和背景的人来为开源项目赋能。
尽早采用治理模型对于开源项目的成功至关重要。项目需要选择最佳治理模型并将记录下来让大家查看。这样的话,贡献者们就能够知道该如何参与到项目贡献当中以及在需要时与谁联系,进一步推动项目的可持续发展。
文献参考:
[1] https://developer.ibm.com/articles/open-governance-community/
[2] http://oss-watch.ac.uk/resources/governancemodels
TARS基金会是Linux基金会下的非营利性、微服务基金会,致力于建设一个强大而灵活的微服务生态系统。