作者 | 郭炜

编辑 | 肖滢

出品 | OSC开源社区(ID:oschina2013)

开源是一种商业模式吗?郭炜给出了否定回答。“开源既不是商业模式,也不是获客模式,而是一种协作开发的方式。”但他认为,从可持续发展的角度来看,开源还是要变现,否则不会有那么多人持续烧钱来支持开源。

郭炜,人称“郭大侠”,创建了 Clickhouse 中国社区,曾任易观 CTO,现在是 Apache 软件基金会成员,Apache DolphinScheduler PMC ,以及Apache SeaTunnel 的导师。关于开源项目商业化,郭炜提出的一些观点颇有意思,在此分享给大家。

01

开源商业有六大要素,但最重要的是社区

开源商业有六大要素:核心开源产品、社区、商业级产品、配套服务、销售转化、生态。

毫无疑问,关于开源的一切,都是围绕开源代码展开。所以,必须要有一个核心的开源产品,这是最基础的部分。

其次是围绕开源代码形成的社区。这个开源社区有用户、贡献者、布道师,甚至还有“砸臭鸡蛋的”,各种角色的人都汇聚在一起。

接下来,要有商业级的产品。如果没有商业级别的产品,就算社区很热闹,用户不知道买什么,那只能算是叫了个吆喝,开源项目也跑不出一条商业化的路。

四是要有配套服务。在中国,光有商业级产品还不够,还要有与之相匹配的服务——优质的、标准化的服务。需要强调的是,不是定制化服务,那是项目公司的活儿。

有了商业逻辑的核心——产品和服务,最后还要有客户渠道。客户渠道主要有两方面,一是销售转化,即开源版本用户能够转化为商业用户;二是生态,一些基于开源产品来开发组件的公司,很有可能成为商业合作伙伴。因为它们往往需要借助开源商业公司的力量,来确保开源产品在其组件中具备良好的使用体验,同时也能有效地跟上社区发展节奏,减少自己二次开发的成本,专注于在自己擅长的领域深耕。

对开源商业而言,这六大要素缺一不可。其中,最重要的是社区,而不是代码。

在 Apache 软件基金会,提倡“Community Over Code”,即社区大于代码。有了社区,即使产品不完善,也可以通过开源的方式向前迭代;即使商业化还不成熟,也可以通过发展、壮大社区,吸引更多有需求的用户,继续探索商业化之路。

很多人都知道代码很重要,以为只要代码性能达到某种程度,就能把开源项目推广出去,所以会一门心思扎到代码里。

这其实是不对的。我们要做的事情是,把社区发展起来,引导别人为项目贡献代码,而不是你自己一个人把系统设计得特别好,然后脚踩其它社区,感觉自己很厉害,这其实失去了社区的信任。

社区建立的过程,就是信任建立的过程。倒不如老老实实承认,现在这个项目的确不大好,看哪位大神能帮忙改一改。让社区成员一起参与讨论,共同创造出一个特别厉害的产品,这才是开源的魅力。

而且,开源打破了公司与公司之间、国家与国家之间的界限。试想一下,能有哪一个软件,能够汇聚阿里、腾讯、头条等各种各样的“技术大咖”在里面做贡献?只有开源可以。

02

开源不是商业模式,也不是获客工具

开源有很多种商业模式,比如 Open-Core 模式、Hosting 模式、Professional Services 模式、Marketplaces 模式等等。

但开源本身,并不是一种商业模式,而是一种构建软件、协作开发的方式。开源起到的作用,是让企业基于高效协作,从而快速迭代产品,最终在市场上获得竞争优势,有更多变现的机会。

一个担任 CTO 的朋友,从事 NLP(Natural Language Processing,自然语言处理) 平台开发。投资人总撺掇这个朋友把平台开源,还说,一定要开源,一开源它就活了,不会只挣这点钱。

问题是,他开源之后,竞争对手岂不是第一时间就获得算法相关的代码了?商业客户不就被撬走了?开源可以更好地建生态,但不是唯一的途径。有很多项目并没有开源,但是生态建设好了,一样可以让大家挣到钱。

还有不少企业,把开源当作获客的工具,往开源项目里砸钱做营销,就跟前几年烧钱投资互联网一样。

这是有问题的。开源不是噱头,也不是公关营销的工具。最终,钱烧没了,用户也没了,项目的下场如何更不必说。反而是一些没有多少资金的草根项目更有价值,因为它是自然发展起来的,有韧性。

开源是需要用心经营社区的,用钱砸不出来,即使能砸出来,也不会长久。真正的开源,不是自己吭哧吭哧写半天代码再开源出去,而是要去找到第一个贡献者。只有别人主动贡献代码了,社区才能构建起来。

让更多人参与进来,汇聚全球的人才共同创造一些什么东西,这才是开源的目标。而不是什么都不顾,只盯着获客,只想着怎么利用开源给投资人吹泡泡,这是不可取的。

要多想一想,用户为什么要用你的软件?他们为什么愿意贡献代码?回答了这两个问题,其实就明白了,要怎么做好开源。

开源社区有各种各样的规矩,有些是明面上的,比如开源协议、贡献者协议、社区行为准则,还有一些是约定俗成的,比如帮助他人,项目整体价值大于个人贡献等等。无论是公司还是个人,都要遵守这些规则,这是构建信任的开始。

一些流行的开源许可证,比如 Apache 2.0、MIT、BSD 等宽松型许可证,并不强制要求回馈代码。但站在开源方的角度看,肯定是希望用户能有所回馈的。所以作为用户,尽量不要白嫖,可以提供一些商业支持,有钱出钱,有力出力。

03

投资的理由,以及付费的理由

开源代码往往可以免费获得,不过它跟商业并不冲突。从可持续发展的角度来看,开源最终还是需要变现。没有投资人会为无法变现的开源产品持续烧钱。

要做好开源项目的商业化,首先是要做好产品定位。有些开源项目,代码写得很好,但是没人用,很多人就以为是运营没做好。其实并非如此。很可能是这个产品没有解决用户痛点,也就是产品定位不准确。

从商业逻辑的角度来看,产品定位和产品定义,会第一时间影响投资人对于产品的认知。你有的产品,大家也有,你怎么挣钱?哪部分是开源的,哪部分是非开源的,你会通过什么方式把它推出去?

其次,要为开源产品选择足够广阔的赛道。如果赛道很窄,就算开源产品做得特别好,用户很多,也很难把商业化这条路走通,因为已经没有商业产品的空间了。

一个朋友,做了一款前端组件,虽不是 Vue.js 那样的大项目,但用户也挺多,每个用户的付费金额在几千块钱左右,供他自己开个公司绰绰有余。不过,要是想获得更多融资,进一步把盘子做大,就很难了,因为他选择的赛道很窄。

ClickHouse 在中国也面临一样的问题,尽管社区很活跃,但是要说商业化,还得琢磨琢磨。

近两年,开源在国内备受关注,并且颇受投资人热捧。但越是这时候越要警惕。可能一开始,很多开源项目都有融资需求,就和以前烧钱投资 O2O 互联网一样,但其实真正能走出来的,还是少数。

所以不要被投资人忽悠了,冲动地跑去创业,要自己先想明白,你的开源项目究竟适不适合商业化。不是所有开源项目都一定要走向商业化。

第三,商业版本跟开源版本之间,还是要有不一样的地方,让用户有为其付费的理由。

社区是一个松散的组织,贡献者来自不同的公司,尽管在开发过程中,社区已经很努力地去完善软件,并且会利用自动化工具进行测试,但整体来说,测试流程不如公司完备,开源产品天然会有 bug,跟商业产品还是会有差距。如果商业产品在功能方面比开源产品更加全面,同时具备更好的稳定性,想必会赢得一些企业的支持。

对企业级软件而言,开源本身就是一种很好的开发方式。比如红帽会借助社区资源,集成一些开源项目,对外提供发行版。它还会利用开发到生产的这一段等待时间,将贡献者为中间件提交的补丁集成到商业版。

要做到这些,也是要投入的,不仅要在上游雇人开发,还要有专门的维护团队、测试团队来保证质量,帮用户兜底。这些都是让大家付费的理由。

在瑞典,法律规定,如果将开源软件用于生产环境,必须把软件中的 bug 先改了。也就是说,如果哪一个公司要用开源软件,就必须有所投入,要么直接购买商业版,要么专门养一个技术人员来改 bug。在海外,为开源软件准备一笔钱,这种情况非常流行。

在这方面,国内的法律和氛围正在不断提升,越来越多的企业认识到,开源不能免费,优秀的开源产品和社区需要贡献或者付费来维护社区的活力。一个社区的沉寂,其实是所有用户和开发者共同的损失。

作为开源项目商业化本身来讲,也要想好让用户付费的理由和资本投资的理由,毕竟开源不是一个商业模式,只是一个先进的产品研发组织模式。基于开源项目合理、有效的商业模式,才能可以打造一个卓越、可持续的开源项目,为爱发光不能填饱肚子。只有填饱肚子,才有力气让开源项目发扬光大。

总之,卓越的商业化生态才是卓越开源项目的可持续发展之路。

有奖问答

你有关于Netty、Java、源码的相关问题吗?

欢迎前来提问

还有技术书籍赠送哦

扫码立即参与问答