@pockry
2017-11-24T13:56:34.000000Z
字数 2616
阅读 1619
开源
时至如今,开源软件已成为互联网的基石,过去曾敌视开源的公司如今比任何人都更急切的拥抱开源。
虽然开源项目很多,在Github上的开源项目数量已经超过100万,但很多个人项目无人维护,也没有人敢用,由公司创建的开源项目正在主导开源。部分发展较好的个人开源项目转向社区,如鼎鼎大名的Linus创建的Linux成立了基金会,依靠捐助和付费会员来维持开支,但也有另外一些项目走上了另一条路,就是基于开源项目创立公司。Jekins和它的创建者Konsuke Kawaguchi(川口耕介)就是其中的典型代表。
11月18日,由开源社主办的中国开源年会COSCon17在上海召开。Kohsuke Kawaguchi在大会上做了《黑客觅食记——围绕开源项目创建一家公司》的分享,在演讲后,我对他做了一个简短的采访,了解了更多细节。
Konsuke长的非常高大,简直不像个亚洲人,但稍微接触一下,你就会发现他行为举止十分彬彬有礼,十分照顾他人感受,正是典型的日本人做派。
平时,他喜欢称自己为Hacker,意为充满激情,乐于探索未知的那群人。据他自述,Konsuke从初中就开始接触编程,在读书期间就已经开发出一系列的共享软件。正是看上了他这份才能,Sun Microsystems邀请他加入公司。Konsuke接受了邀请,从此开始了在美国的生活。
在Sun Microsystems期间,Konsuke开发出了Hudson,也就是Jenkins的前身,后来正式创立了个人开源项目Jenkins。随后Sun Microsystems被Oracle收购,在工作了一段时间之后,Konsuke选择离开,并创建了自己的公司InfraDNA,再后来InfraDNA与CloudBees合并,现在,他是这家公司的CTO,提供基于Jenkins的企业级持续交付服务。
今天,Jenkins已经是持续交付领域最知名的工具之一,在全球范围内超过50万台机器上运行,影响超过100万开发者,帮助他们进行持续集成和持续交付。今年4月份,Jenkins发布新版本,带来新的用户界面Blue Ocean,大大改进了用户体验。
开源软件是很多开发者的兴趣和激情所在,像Linus一样为开源软件全职工作,可能是很多开发者的梦想。
Linus创建了Linux和Git,两个都是当今互联网的支柱。在Linux基金会成立后,Linus开始全职在家开发和维护Linux内核。
Konsuke在演讲中说,他相信开源是大势所趋,但现在存在一个问题,开源作者虽然花费巨量的时间精力贡献开源代码,为很多公司创造了价值,但他们本身很难从中获取合理回报。基于开源项目创建公司的想法由此而来。
在开源项目基础上做公司并非异想天开,之前红帽公司早已做出了很好的示范。红帽早些年通过维护Linux企业级发行版以及其它开源软件,向企业提供支持服务,目前已经是市值数十亿的大公司。
Konsuke十分推崇红帽模式,并认为与红帽相比,开源作者亲自参与公司运作会在掌控开源项目发展方向、与社区协作等方面更有优势。同时在商业模式上更灵活。
Konsuke总结了基于开源项目公司的商业模式:
Konsuke最终选择了第三种,即他现在所在的CloudBees公司,向外提供基于Jenkins的SaaS服务。
运行一个公司并不容易,其它公司遇到的问题,Konsuke的公司同样会遇到,而有些问题更为独特。比如人才——
由于你需要基于开源项目去开发和提供服务,你需要对这个项目十分了解的人。Konsuke就提到,他们从Jenkins的社区招募了不少的开发者。这样的开发者可以保证他们是合格并且动力十足的,通过雇佣他们让他们在喜欢的项目上工作,可以更快的做出突破性的进展。并且,Konsuke还发现这些开发者来自各行各业,他们背后的企业通常会对项目有需求,因此经常会带来一些销售线索,算是意外之喜。
但从项目招募开发者的前提是,这个项目需要一个运转良好的社区,有大量的开发者可供选择。因此想依靠开源项目做公司,需要有意识的去培养社区。
另外,如果从项目招募了过多的开发者,也有一些风险,开发者会分不清到底是为项目工作还是为公司工作,一旦产生在方向上产生分歧,开发者受到的伤害会更大。另外,人们可能会认为公司正在操纵这个项目。另外开源项目中的开发者都跑去开发商业项目,开源项目的社区会有一些问题。
Konsuke指出,一旦开源项目创始人或重要人物基于项目创建公司,有时会很难把握公司与开源项目之间的边界。
比如,公司员工应该以何种程度参与社区?在为开源项目布道时要不要宣传自己家的商业产品?公司和社区在开源项目发展方向上产生分歧怎么办?这些都是需要仔细思考并妥善处理的问题。
这其中一个较好的策略是尽量回源(work upstream),和开源项目使用同一份代码库,特性在内部开发完成之后合并回开源项目主分支。在开源项目发展方向上,尽早定下路线图,然后按路线图进行开发,避免冲突。
一般开发者可能对于商标等法律术语不太了解,但如果要建立公司,这些是非常重要的,最好在开源项目时就考虑好这些事情。
另外对于公司来说,开源作者的个人品牌对于招募人才、推销产品也是非常有帮助的。
开源项目是有价值的,但开发者的时间也应该是有价值的,Hackers gotta eat,如何靠开源项目养活自己,这就是Konsuke和Jenkins的思考和给出的答案。