Apache启示录 开源社区应该怎么玩?
【IT168评论】开源给软件行业带来的创新效果是显而易见的,以开源为基础所强调的开放、透明、共享的创新理念和分布式的软件开发协作模式已经被越来越多的人开始接受,而作为开源项目孵化器的开源社区则扮演着不可或缺的角色。
Apache软件基金会是1999年注册成立的非盈利性组织,国际知名的开源社区,孵化支持多达300个项目,其中包含162个优异项目。Subversion,OpenOffice, Tomcat, Cassandra, Lucene, Hadoop都出自于Apache,Apache软件基金会自成立以来对开源运动塑造和高新技术产业扩大产生了深远的影响,它的核心观念“Apache之道”被广为人知。
但在中国,为什么就诞生不了优异的开源项目,为什么就诞生不了类似Apache软件基金会这样优异纯正的国际性开源社区?相信这是所有致力于开源事业的人士都在思考的一个问题。
国内有不少文章对如何运营开源社区进行了探讨,也总结了不少问题,比如开源认知问题,国内国外发展阶段不同的问题,文化差异问题等。当然除了思考也有行动,由国内支持开源的企业,社区及个人所组织的一个开源联盟“开源社”应运而生。开源社成员从成立时的25家,半年间发展到了43家,并且还在不断增加。近日在由开源社组织的媒体沟通会上,老鱼专访了Apache软件基金会总裁Ross Gardler,微软开放技术(中国)董事总经理云浪生,GitCafe 创始人兼首席执行官姚欣宇,并就开源社区理念、机制、运营、生态等问题进行了探讨。
开源是一种软件开发模式,代码开源是起点,要有更好的发展,就需要通过“开源”的手段,实现软件世界的资源共享,让拥有各种技能的人各显神通、广泛参与,促进软件世界开发技术的发展。我们耳熟能详的Java,Hadoop,OpenStack,Tomcat,MySQL,Android,MongoDB皆是开源成功典范。
我们知道微软、Google、Apple、Facebook、Twitter等优异企业下面都有不少重量级的开源项目,这些公司在世界范围内对整个IT行业的影响并不单纯是靠公司业绩、股票价格,对世界的影响也并不限于公司的主线产品本身;而是开源技术的影响力,这超越了公司本身经营的产品/服务,以其他的形式为全人类的发展与进步提供了更多的可能。
老鱼一直认为开源是人类社会未来的工作方式。目前来看,开源软件的长项是注重技术含量,劣势是忽略用户体验。但这并非不可改善,瑕不掩瑜,开源符合当前中国信息化发展的需要,国产软件产品与欧美产品有较大差距是客观事实,从软件开发的角度来说,开源是缩短与欧美差距的有效方法。
微软开放技术(中国)董事总经理云浪生认为相对于闭源开发的模式,开源的本质是分享,其中的每个人都有意愿去分享。如果没有这个意愿开源是不存在的。在大家彼此分享的过程中,就形成了开源社区。
如果说开源社区是天然的分布式,那商业公司则是集中式,后者管理上相对更方便,前者则性价比更高。中国需要开源社区,不仅是因为开源社区在推动开源软件发展的过程中起着巨大的作用,扮演开源项目孵化器角色,更重要的是因为它是国内国外开发者交流协作的重要平台。
在探讨开源社区运营前,我们需要明白的一个最基本的问题,开源社区的核心用户群体都是谁?或者说都是谁在为开源社区做贡献?
据Apache软件基金会总裁Ross Gardler介绍,基于对Apache社区的经验分析,对开源社区贡献者主要分为两类:1、企业 2、个人。
Ross Gardler表示,Apache社区的西方贡献者可以用28原理来解答,即80%的贡献代码来自20%的贡献者,20%的工作则是由80%的人来完成。20%的人做了80%的工作的这些人,主要来自企业的雇员。而那些做了20%工作的80%的人,则属于个人,他们都是利用自己的闲暇的时间来做贡献。
当老鱼问道,在Apache开源社区中来自中国贡献者主力是谁的问题时,Ross Gardler表示并未统计过,但他预估来自企业雇员的贡献量可能达到百分之百。这说明在国际开源社区贡献中,国内IT公司的技术人员是绝对主力。而国内的个人开发者相比国外生活压力相对较大,没有自由的时间和一定经济基础做保障,很难全身心投入开源,使得开源在理念和应用方面会有所影响。
国内有比较成功的开源社区吗?中国开源社区有那些?这是老鱼在专访GitCafe 创始人兼首席执行官姚欣宇(Thomas)时提到的两个问题,姚欣宇认为,这要看对开源社区的定义,如果是纯正的开源社区,国内几乎没有。即使不纯正的开源社区在姚欣宇看来也是极少的。
国内开源社区现状令人堪忧,社区少、项目少、贡献者少是不争的事实。开源社区里的“社区”概念在国内理解很抽象,原因对非营利性组织的理解就很抽象,而开源社区实际上是非营利性组织的一个分支。国内最早对开源的误解是“开源等于免费”,之后理解又演变为“可以收费”和“为了收费”,而这逻辑背后的现实是越来越多“开源项目+商业社区”被自称为“开源项目+开源社区”。
在Apache软件基金会总裁Ross Gardler展示的一张全球贡献图中,Ross Gardler表示Apache的贡献者非常多元化,来自不同的国家。但有一个遗憾,在中国却缺乏广泛的覆盖性(即来自中国的贡献很少)。至于原因,Ross Gardler分析有以下4点:
1、中国对开源的认知与国际相比不够成熟。(其实西方早期做开源也经历过类似的情况。)
2、开源商业模式不清晰。(开源不等于商业模式。任何一种商业化的商业模式,都可以用在开源软件上。关键的是要找到产品或者服务开发的哪一个部分可以使用开源的方式去进行。)
4、国际开源社区以及西方的开发者缺乏对中国文化的了解,缺乏对中国开发者所做的工作的认识。中国对国际开源社区贡献不足,同样,西方的开发者对中国开源社区的贡献同样也是不足的。
不过,Ross Gardler对此持乐观态度。他认为只要双方能积极交流,比如通过开源社这样的组织和相关活动打破存在于中西方开源社区的之间的壁垒。
为什么现在西方的开源会有很好的发展?Ross Gardler表示这需要更多志同道合的开源人士去努力推动,Apache软件基金会的发展道路,也是经过了多年的铺垫期后才开始快速的增长。所以在中国要做的就是把前面早期阶段的积累时间缩短,尽快的进入快速发展期。
Ross Gardler特别强调,推动开源进程,其中成功案例的示范作用不可忽视,也是最具有说服力的。西方有大量开源商业上成功的案例,市值10亿美金的开源软件公司有很多。
对于开源项目的健康而言,如果该项目由单一的厂商主导,则会出现玻璃天花板的限制,是十分不利的。非盈利性组织的社区让用户更容易接受,在社区更中立的引领下,很多的用户会转换成贡献者,甚至还会提供很多代码改善的意见。而厂商也可以在其中找到盈利的机会,因为这些开源项目的用户也都是厂商的潜在客户。
Ross Gardler表示,回顾历史,在当时Henrik Ingo主导大概200个大型开源项目中,我们发现,位居前9的项目,不管是从总的参与人数,还是活跃程度,都是十倍于其他一百多个项目的总和。这9个项目(Linux,KDE,Apache,Eclipse,Perl+CPAN,Mozilla+Addons,Gnome,Drupal and GNU)成功的一些共同点,就是它们都是由非盈利性组织的社区进行治理,而不是由哪一个技术厂商主导。这说明什么问题?非盈利性组织的社区更容易成功。
同时可以看到,开源基金会的存在就是为了解决两个问题:复杂的项目和庞大的社区,Linux/Apache/OpenStack/GNOME无不是如此。
总的来说,国外很多开源项目都有强大的开源软件基金会或者公司支持。国内的开源软件项目尽管也会有一些大的公司和资深的开源爱好者支持,但力量有限。对于国内开源社区来说制度、资金、组织、人力等方面的支持还有很大的提升空间。
“Apache之道” 体现为几大要点:(1)构建最常见的社区流程;(2)有效地识别最优的方法;(3)确保听到每个人的声音,又要避免无休止的争论;
1、Apache提倡以最简洁的规则保持社区的运转,以保持开源社区的活力和自主性。Apache项目没有负责人,人人却是自愿者和激励者。
2、授权而非指挥:Apache倡导开源社区治理必须基于共识做决策。因而Apache摒弃了等级分明的公司管理模式,因为命令和投票的决策方式并不能消除分歧赢得共识。相反,辩论是促成共识或发现非常好的方案的有效途径。
3、如果你提出反对意见,必须有理有据,同时给出可替代的解决方案。同时,Apache认可“懒惰共识”的原则,它体现了高度的自治性,社区成员无需经过繁琐的辩论甚至冗长的决策过程而拖慢了行动的步伐,只需执行即可。
开源项目的发展模式不是单一的,也不存在一定之规, 比较典型的有三种发展状态:
(1) 分叉型:分叉型式开源社区最不想看到的一种,分叉意味着分离社区,项目的分叉让你无法从开源社区获利,离开的时间越长,你的债务越多。
(2) 融合型 共享部分代码,但是按照自己的需求进行修改,也会返回来提交共享代码。曾经分叉的项目会在某个时刻融合。
(3) 并行型 开源项目多样化也是一件好事,这时候需要识别出一个核心,并且大家一起分享核心,但也允许在外围各自项目百花齐放。 例如各种版本的Linux发行版,就是一个最好的例子。 以共享核心代码和异化授粉的方式,可以让并行的开源项目都健康发展。
众所周知,大型开源社区的开发者、维护者基本都是志愿的,虽然可以得到部分商业公司的支持,但相对于整个社区来说是杯水车薪。如何保证不拿工资的开发者、维护者们的工作质量呢?是否会出现人员走马灯似的换呢?
GitCafe 创始人兼首席执行官姚欣宇从人性的角度阐述了他的观点,姚欣宇认为要激发贡献者的热情与保证工作质量,需要了解贡献者的动机。姚欣宇认为开源社区的贡献者动机可分为三类:为名、为利、为知识。只要满足了贡献者的需求,激发贡献者热情与保证贡献者工作质量将不是问题。
而Apache软件基金会总裁Ross Gardler则从管理制度的角度分享了Apache经验。Ross Gardler表示社区要成长除了创新之外必须要有2个框架:法律框架和社会框架(治理模型)。从Apache的角度,做开源社区和开源项目,首先要有一套完整的结构化的制度来实现在代码方面的分享和讨论。这些规章条例制订的原则就是少而精,“做事应该是尽量做到简洁,但是不能够偷工减料”。
Apache社区的决策是通过统一意见达成共识来决定的,而不是以投票的机制。Ross Gardler认为投票机制反而会导致分裂。在Apache中有一个叫“时光机”的工具。如果贡献者对某一个代码有不同的修改意见,可以去修改。如果贡献者提出来之后,其他人不同意,还可以使用“时光机“回到前一个版本的代码。但一定要有所为,以动制静。
Apache是以人为本而不是以流程为核心,Ross Gardler表示,在Apache没有所谓的领导者对社区的参与者发号施令,但是却有驱动者,激励者,来帮助社区的每一个人找到自己所需要的东西,从而满足各自的需求。
开源并非 “高大上”的运动,开源社区的发展是群众运动,关键在于教育和培养广大开发者的兴趣与分享意识,因此注定是一个长期的过程。而围绕开源项目建立社区更将是一项缓慢而艰巨的工作,其成功取决于很多因素,如项目,资金,人才,组织等,国内开源社区还有很大的提升空间,而成功案例的示范作用不可忽视,且最具说服力,会让开发者真正感受到开源的意义和价值,而优异的社区制度建立则是社区走向成功的必要条件,加强国际开源社区间的交流打破存在于中西方开源社区的之间的壁垒,构建成熟的开源生态系统都并不是一件简单的事情。球速体育官方入口
您可能感兴趣的文章
- 10-26华为云 DTSE 团队通过开源专业服务助力马来西亚 X 集团平滑迁移上云
- 10-26四方云动 工信部处罚阿里表明了什么信号?
- 10-26IBM在“宽松的”Apache许可下发布最新Granite基础模型
- 10-26ALC (Apache Local Community) Beijing是什么?
- 10-26什么是Apache?Apache是什么意思?
- 10-24如何在网站上开启HTTPS功能呢?
- 10-24德国主权技术基金两年内向开源领域投资超过 2490 万美元
- 10-24知道创宇:从创宇盾感知Apache Log4j2 曝光前后惊魂24小时态势
- 10-24频频出现拼写、音标、翻译等内容错误 莫让词典类APP误人子弟
- 10-23Apache配置文件中文版
阅读排行
推荐教程
- 10-03法语助手法汉-汉法词典 apache是什么意思_apache的中文解释和发音_的翻译怎么读
- 09-25亚马逊AWS将OpenSearch开源搜索项目移交至Linux基金会实现社区主导治理
- 10-08鄱阳湖读bo还是po?鄱阳湖位于哪个省?
- 08-2531个绝对惊艳的数据可视化作品让你感受“数据之美”!
- 08-30漏洞利用接踵而至:Apache为Log4j发布2170新版补丁修复
- 06-29Apache中国下载镜像开通
- 08-29Apache HTTP Server 2451 发布 - OSCHINA
- 06-24Apache服务器迎来5年内首次重大更新:云计算支持
- 06-24数据可视化|看得懂的数据
- 08-30Apache基金会正式宣布Apache InLong成为顶级项目