开源的成功理应是什么样子?

或许你会想到现有的开源项目如Linux、Android、OpenStack之类的,但是具体让你描述的话,可以衡量的事项,你是否能够准确的形容出来呢?或者这篇文章能带给你些许灵感。

图片:适兕在云计算开源产业大会2018的演讲现场

引子

视角不一样,评价的尺度不一样,那么最终衡量一款开源软件或项目的成功与否,就会有完全不同的结果。现在,请你环顾四周,问周边的人们一句:“你理解的开源成功的标尺是什么?有哪些?” 能解决实际问题、用户多、有公司赚到钱了、名声足够响亮 ……不一而足。那么假如现在将你手头上的项目开源的话,你认为会成功吗?是不是应该去找出一些事项,开源的成功究竟有哪些关键的因素?

大教堂与集市

在开始讨论之前,我们先回顾一下 Raymond 在2001年发表的天才著作《大教堂与集市》,创新性的将传统的软件开发模式视为过时,而未来是属于开源的,即集市式的开发模式,并以Linux的开发方式为例,证明了其观点的正确性。其中Raymond令人信服的提出,通过集市化过程生产出来的系统产品,一般在技术上优于那些由大教堂式过程中生产的同样产品。

  • 首先,从进化的视角来看,市场会选择拥有最佳设计的模块。
  • 其次,将一个新的模块同时放到数百个测试者那里,会更快的发现其中的缺陷,从而催生更加可靠的产品。
  • 最后,缺陷被修复的更好,因为市场化的选择机制同样作用于缺陷的修复过程。

[综上所述][2],集市过程是作为这样一个全新的模式出现:它同时作用于产品构建和协同的过程,团队成员通过电子化的手段彼此联络,天各一方、互不熟识。

回顾一下所谓的成功

成功的开源项目正在增多,虽然相对于失败的项目,成功占的比例还是很少,但是从更高处看待整个领域的话,开源至少已经在基础设施领域占据大壁江山。我们不妨按照领域来列举一下:

领域 开源项目 备注
操作系统 Linux
容器 Docker
大数据 Hadoop
编程语言 Go、Python
Linux发行版 CentOS、Debian
版本控制系统 Git
持续集成 Jenkins
关系型数据库 MySQL、PostGreSQL
web服务 Apache
浏览器 FireFox
容器编排 Kubernetes
流的消息服务 Kafka

挂一漏万,以上列出的仅仅是非常成功的开源项目,限于篇幅,这里无法一一列出,在此表示歉意。

成功的衡量有哪些

笔者斗胆在这里列出一些个人以为的衡量标准:

  • 一定是解决了特定问题的软件,这是其能够存在的根本,无论是前所未有的创新,如Docker、Git、Go,还是商业产品的替代,如Linux、Hadoop,均能够解决其领域内的问题。
  • 项目是深受 欢迎 的,正在被很多人使用,而且理想的情况下会是处于增长状态。
  • 项目是 健康 的,拥有活跃的贡献者,和社区形成良性的互惠关系。
  • 项目是得到 支持 的,维护者是拥有一定的资源来管理项目,并且能够让社区健康的发展

这里特别提到的资金,资金充足,只能保障项目的可以得到支持的,但是不能保证项目的受欢迎(想想那些投资者支撑的但却不成功的基础设施项目),或者是让项目健康发展(而这是取决于社区的人的)。

用不同的立场或视角来看待开源的成功

首先我们以个人的身份来看下,这个个人的身份,首先一定是和开源相关的,要么是开源项目的创始人,要么是开源项目的参与者,又或者是开源项目的投资人,以及开源哲学的布道师等等,总而言之,ta是一位和开源有关系的角色,不是外来者,或者是无关的其它行业的。那么以个人的一些成功标准的话,我们可以随意的举一些例子:如享誉全球的Richard Stallman、Linus Torvalds,如赚钱赚到爆的Peter Fenton,如定义开源的Bruce Perens

然后我们再来看看企业,企业的本质是为社会产出价值,然后收取一定的回报,仅仅以这样最低层次的标准而言,就可以列举出无数和开源相关的企业,如大名鼎鼎的红帽公司,以订阅模式提供Linux、JBoss、Gluster、Ceph等等开源项目的支持与服务;再如2014年之后,全新的微软公司,发力Azure云计算,认定客户既然愿意使用开源在云上运行其负载,于是大规模投入参与开源中来,一举夺得GitHub贡献者第一的头筹,当然营收也是超级可观的;再如Google,做了十几年的GSoC,支持开源深入人心,获得一代又一代的开发者信任,占据未来影响力的开源项目Kubernetes和TensorFlow,具上个季度的财报,Google云计算也在持续的盈利,更主要的是其获得的赞誉与影响力,这个更为深远。

再来看非盈利的基金会Apache,19年过去了,Apache 从一个单一的修修补补的web服务,到占据互联网半壁江山的今天,为世界贡献了很多。Apache 2017 年度报告 一文道尽其中改变世界的证据。那么稍具商业性质的Linux基金会,最初只是希望保护Linux的正常,不被过多的分支所干扰,到现在发展到孵化各种项目的大帐篷,如CNCF、Node.js、CloudFoundry等子基金会,俨然成为了新的行业标准

回到最初的动机与目标,也就是我们常常所说的初心,人类最初提出开源是为什么?要达到什么目的?仍然是为了人类本身,社会正义也罢、民主化也好,所有人都希望能够更好的生活下去。那么开源的社会效应,开源之道曾在阅读专栏中的开源书籍推荐 ————《路与桥——现代世界数字基础设施那些隐藏的劳动》一文中专门提及,开源软件已经成为这个世界的基础设施,犹如我们日常的公路与桥梁,渗透到了人类活动的日常。这才是改变世界的根本,才是真正意义上的成功。

总结一些形而上的特征

开源的成功的基石,是开源软件的项目的成功,只有项目成功,软件被成功的开发出来,被很多人使用,产生价值,才能被更多的世人所认可,也才能够被社会所接纳,被历史所铭记。那么我们就不妨总结一下开源项目的成功的一些特征:

  • 技术的民主化
  • 具有普适性
  • 为了把事情做好而做好的匠人精神
  • 分布式的社交性质
  • 人们通过实力而获得尊重
  • 快速迭代

开源是进化方式

在文章的最后,我想以最近MIT媒体实验室主任伊藤穰一和《众包》的作者杰夫.豪合著的新作《爆裂:未来社会的9大生存原则》来结尾:

理解开源成功的读者,马上就会明白,开源的哲学、方法论和未来的这些原则是多么的契合。开源之道写过一篇文章:开源软件是开放式创新的最佳注脚。开源过去20年的历史证明,它一直在壮大,一直在进化,其快速试错、快速迭代的方式能够确认什么是市场最需要的;其人人可以无障碍获取的特性又是人人可以参与的最佳捷径;其对权威的反抗恰是民主化和创新的源头;而且想参与全凭自身的兴趣,没有人告诉你该怎么做;没有去推动任何人去做任何事,只是我在做了,你随便的态度;来自全球各地,不同时区,部分年幼老少,一个倡导多样化的社区等等均是契合《爆裂》的九大原则的。

从进化论角度来讲,开源就是未来!

参考资料:

[1]: What success really looks like in open source

[2]: 《设计原本:计算机科学巨匠Frederick P.Brooks的反思》,布鲁克斯 (Frederick P.Brooks Jr.) , 机械工业出版社,ISBN: 9787111416265

[3]: 《大教堂与集市》,Eric S. Raymond ,机械工业出版社,

[4]: Open Source and Standards Team: How Red Hat Measures Open Source Success

[5]:爆裂:未来社会的9大生存原则