开源软件的商业模式演变分析
2020-12-06 13:36:20 阿炯

本节转自蚂蚁开源社区的思齐大神的文章,感谢原作者。

什么是开源软件

2018年的互联网世界,有两个重大的并购事件,上半年先是Microsoft买下知名开源社群GitHub,下半年蓝色巨人IBM买下开源软件公司Red Hat,被并购的两间公司有个同样的关键字,开源。

什么是开源(Open Source)?开源这个词是相对于闭源,简单来说,开源就是将软件代码向所有人分享,包含完整的开发代码,并可自行复制、修改、散布,不会有收取您版权费用的问题。而闭源就是版权是属于某个人或组织的,其他人要使用,必须先取得授权(有偿),且就算获得使用权,也无法拿到完整的开发代码,更不用说复制、修改、散布了,盗版软件就是违反了闭源软件的版权费。

当然,哪家公司会把辛苦开发出来的软件拿去开源分享给所有人?这样不就什么都被别人拿去了?而且还分不到钱!但近十年来,越来越多的软件公司,纷纷将自己的底层技术开源,就连Apple、Microsoft这些相对封闭的公司,也都把一些技术开源了,为什么呢?

网络时代前的闭源软件商业模式

开源这个概念其实已经存在几十年了,但目前较常接触到的软件,大部分还是闭源的,像是微软Office、苹果iOS、SAP ERP等等,因为在2000年之前的软件时代,绝大多数软件公司的商业模式是,培养自己的工程师,发展自己的技术,开发出自己专有的软件版本来,刻录成软碟、光碟,拿到市面上卖,卖一套就赚一套,而盗版会严重损害到软件公司的利益,因此那个年代,软件公司都在想办法防止盗版,更不用说把软件开源出去了。

网络时代带来新的商业模式

2000年之后进入网络时代,随着网络基础建设的普及,以及开发技术的演变,全世界的网络人口越来越多,而会写编程的人也越来越多,任何人都可以参与网络上的事情,包括开发软件,很多的软件开发者非常愿意参与开源软件的开发,因为这是一种很好提升自己技术的方式,在开发的过程中,跟全世界的人互相交流学习,能快速提升技术能力,是自己闭门造车绝对无法达到的事情;而同时,也可累积在网络上的名声,因为程序是开源的,任何人都可查看程序的品质如何,一切都是公开、无所遁形的,程序写的好,大家都会为你赞叹!

全世界最著名的开源社群是GitHub,上面有众多的开源软件版本,征求全世界的开发者帮忙开发,对于开发者来说,如果有参与里面某个知名软件案例的话,是件非常骄傲的事情,国内很多知名软件公司的面试,甚至就直接问有没有作品在GitHub上。

这导致了什么结果?因为任何一间公司的资源都是有上限的,就算养了再多的工程师,也多不过全世界的开发者,而如果把软件开源,就代表着全世界的人可以来帮忙开发软件,再加上目前云端技术的成熟,使得依靠开发软件公司的商业模式开始转变,从以前的卖断套装软件盈利,转为提供平台,订阅服务,发展自己的生态系统,这样就会促使越来越多公司把一些技术走向开源,这样的新商业模式究竟怎么运作,就留到下文来谈。


开源软件的商业化

开源软件在几十年前刚起步发展时,最主要的理念是打破闭源软件公司的垄断,也就是Microsoft、Apple、IBM等这些闭源软件公司,期望让所有人都能无条件使用软件,开发者间可以彼此互相学习,也因早期的开源软件是针对开发者,比较不在意UI/UX,但这对于非开发者而言,非常不友善,一般使用者基本上是不会去直接使用的,再加上当时网络还没大量普及,使得开源软件的传播就只局限在软件开发技术圈里,但开源软件的高性能和灵活性,还是透过开发者的口耳相传,在软件开发界慢慢传播开来。

而如上面所说,最早开源人士的理念是所有人都能无条件使用,因此对于将开源软件拿来商业化,一开始非常反弹,认为怎么可以拿来盈利!但后来随着时间推移,也逐渐调整想法,为什么?

因为大家体会到,要先生存下去,才有能力去做更多想做的事情,如果开源软件完全不能用在商业行为,那开发出来的意义在哪里?

况且只靠理想是很难吸引到更多人加入开源的行列,毕竟「有付出也有收获」是大部分人的基本需求。因此怎么将开源软件商业化,也经过了一段时间的争论,后来社群组织协调出透过授权License来取得平衡,这部分有点复杂就不多说了。那为什么现在开源软件能越来越蓬勃发展呢?下面从几个角度来探讨:

从软件公司角度:底层开源,节省开发成本,决战上层商业模式

为什么原本的闭源软件公司,渐渐愿意开源了呢?因为不管是软件或硬件,所有技术的发展都像金字塔一样,底层技术要越宽广,上层的发展才能越高。先来看硬件产业的技术发展,任何产业在一开始,一定都是垄断生意,因为在底层技术还不够广时,很容易就被某间公司独占,但随着技术一直拓展,各家都有自己的独占技术了,就会开始互相牵制。

而随着技术领域一直拓展,市场就越来越难被少数厂商垄断,而当几家大厂商掌握的底层技术架构都不一样,反而会造成整个产业的发展是被卡住变慢的,因此当产业发展到一定规模后,几大主要竞争者发现既然没人能完全垄断,只好大家坐下来谈规格整合,让所有硬件商在统一的底层规格上,去开发产品。

软件的发展也类似,软件技术发展到21世纪,牵扯的底层技术范围也一直拓展,渐渐不再是单一公司能独立承担的,没有任何一家能独占所有技术,而彼此的底层技术架构不一样,会造成两个影响,首先,若想让自己的产品更广泛的被使用,就必须花更多时间去开发底层技术,导致开发成本增加;另外更重要的是,代码安全的问题,因为软件运行时是看不到的,若没看过程序代码,谁也不知道里面是否藏有后门,要用别人的底层技术都会有所顾虑。

因此各大软件公司开始思考,若把底层技术开源,一方面吸引更多人来帮忙开发、检查、维护,不但降低了开发成本,程序的品质反而更好,此外大家也都看得到里面有没有恶意程序,就不用担心安全的问题,可以提高技术传播率。到了现在这个阶段,想办法让更多人使用自家的底层技术,来开发上层应用程序,反而是现在软件公司极力推广的,因为使用者越多,自家产品的影响力就越大,也可以排挤竞争对手的技术。

那底层技术开源了,各公司间怎么竞争呢?此时各大软件公司就不再纠结于独占底层技术,毕竟这其实是吃力不讨好的。

虽然不可能完全不研发底层技术,但是将底层技术交由全世界广大的开发者来协同开发,可以省下这方面的资源,转而专注在中上层的应用程序APP,应用程序就不是开源的软件,而是闭源了,也是各家借以盈利的核心。

同时决战于商业模式策略,这才是软件公司打的如意算盘,关于商业模式的发展后面会再谈。

从产品角度:降低销售成本,快速取得市场回馈

从产品的角度来看,原本的闭源软件要做销售,其实是件很辛苦的事,要说服别人来使用自家的产品,需要花费许多销售成本,这也是为什么在所有的盈利公司中,销售部门都扮演很重要的角色。而反过来看开源软件,使用者可以先自行下载,了解基本的架构和功能符不符合自己的需求,同时靠着社群内的口碑传播,产品传播的速度绝对比原本一家一家上门拜访的销售模式,更能触及到大量的使用者,若使用者对基本免费的功能满意了,觉得需要更进阶的功能,就会考虑去买商业化的应用程序,这就可降低销售人员的成本。

同时,更多使用者也代表了可以取得更多的市场回馈,更能针对回馈去调整产品,让使用者体验更好,形成一个良性循环,这也是敏捷精神的一个延伸。

因此从产品开发及销售的角度来说,开源也是有正向帮助的。

从使用者的经营者角度:减低使用与转换成本

对所有经营者来说,成本永远是要去考虑的事情,而一般考虑使用系统的成本,主要有几件事:使用成本、维护成本、转换成本、使用风险。原本常见的闭源软件收费模式,通常是先一笔高额的授权费用,再加每年的维护费用,而开源软件的收费模式,不需要高额的授权费用,首先就降低了使用成本,而且也不需在还没使用前,就要付这笔授权费,降低了使用风险;同时在产品的选择上也更有弹性,不会被一家绑死,因为开源,更容易找到其他公司的应用程序,转换成本也可以降低。因此使用开源软件也可降低营运成本。

从开发者角度:一辈子的履历,持续了解最新技术

那为什么开发者愿意无偿去协助开源软件呢?现在这个时代,人才的流动越来越频繁,开发人员若都是开发闭源软件,因为牵扯到商业机密,能让外人看的东西其实很少,这表示开发者的技术能力只有少数证据能佐证,若要转换公司,能谈判的筹码就比较少。但在开源社群里的贡献,是全部公开的,所有人都能看到,对开发者来说,这是可以跟随一辈子的履历若技术有一定的水准,在社群里面更是可有效建立个人名声,说不定是软件公司直接来挖角,因为这对雇主来说,也是件好事,可以减低雇用到技术不及格的人员的风险,也因此,现在很多软件公司,会直接请应征者展示在开源社群上的贡献。

同时,随着全世界的开发者越来越多,技术的演变也越来越快,以前学到一个好工具,可能三到五年不用再学新的,但现在可能半年就有一个效率更好的工具出来,因此若没有在社群里持续交流新经验,很容易就落后别人。

不过原本开发者参与开源专案的贡献,除了上面说的名声,无法获得什么实质的收入,但这几年有个新的技术,让参与开源专案的人,也能获得收入了,什么技术呢?那就是分散式帐本技术(Distributed Ledger Technology),也就是区块链,以后会再找时间来介绍区块链相关的事情,而我认为区块链会是未来网络时代一个很重要的底层技术,当然它现在还处于早期的开拓摸索期,无法大量实际应用,但未来它将占有一席之地。

开源软件有这么多好处,所以未来所有的软件都会开源吗?

从上面几个角度可以看出,这就是为什么近十年来,不管是软件公司、开发者以及使用者,都越来越接受开源软件的原因,那这样下去,未来所有的软件都会开源吗?我认为不太可能,就像在前面提到的,软件公司愿意将底层技术开源,但不会将上层的应用程序开源,因为这是他们赖以获利的核心,

而现在会愿意将底层技术开源,只是因为从整个赛局来考虑,这样做可以让他们降低在底层技术的成本,转而专注在核心技术,来达到更好的获利,但绝对不会什么都开源,如何盈利还是公司最关心的事,而独占生意还是利润最高的生意。

下文就来谈谈,开源软件一路以来的商业模式是怎么演变的。


上面两篇谈完了开源软件的发展背景,以及这几年会蓬勃发展的原因,接着来谈究竟开源软件的商业模式如何发展。


开源的定义与授权条款

在正式谈商业模式之前,必须先介绍两个概念,否则会有很多人误解,许多人认为开源软件一定是免费的,而且可以随便引用分发,这都是错误的概念。

开源不等于免费:开源软件的定义是,任何人皆可不受限制的获得源代码并执行、研究、修改、分发,至于分发者要不要收费,不在限制内,只是因为外面都找得到源代码,所以干脆不收钱,重点还是在后续的技术服务。开源软件的详细定义可看此「开源软件」。

授权条款(License):并不是所有的开源软件,都是可以任意引用的公有财产,这是著作权的问题,但可以通过授权,来让别人使用。比如我在网络上发表了一篇文章,可以在最后标注「未获作者同意,禁止转载」,或是「欢迎引用,但需注明出处」,这就是一种授权,也是一种智慧财产权的保护。当任何一个作者将自己的作品(文字、程序等)公开的同时,不代表放弃了著作权利,而软件开源之后,可以通过授权的方式,来限制别人如何来使用作品。早期的授权非常严格,只要最原始的程序是开源的,后面任何引用它的衍生程序也都要跟着全部开源,这也是为什么一开始所有闭源软件公司绝对不接受开源的原因,因为以那样的条款,一旦底层技术开源了,上层的衍生应用程序也必须跟着全部开源。后来开源社群发现这样不利推广,才出现一些新的较宽松授权,允许衍生程序采用不同的授权条款,甚至可将衍生程序改为闭源,这也是为什么这几年Microsoft、Apple愿意开源的原因之一,它们都采用较宽松的授权条款。详细的授权使用条款。

开源软件界最著名的公司

在分析商业模式前,先说结论,要以开源软件当作一个公司的产品,其实受限的地方非常多,没有天时地利人和很难成功,也因此成功的开源软件公司屈指可数。接下来我会以开源软件界最有名、也存活最久的公司Red Hat红帽当主角来分析,它的发展见证了开源软件从早期到目前的历史,而随着技术与环境的演变,它的商业模式其实也一直在调整的,否则不可能生存到现在。

要讲红帽,必须先知道它最有名的产品,甚至我觉得红帽能成功,选对这个产品是一个很大的关键,什么产品?那就是Linux,它是一个开源的底层操作系统,而一般使用者最常使用的Windows和MAC,就是个人电脑的两大操作系统,操作系统重要在哪里?没有操作系统,任何的硬件都无法被操控,下图是硬体层到应用程序层的示意,中间两层就是操作系统在做的事情,一般的使用者都是只使用最上层的应用程序。



而Linux是近十年,在硬件设备上安装数量最多的操作系统,什么?最多的操作系统不是Windows和MAC吗?在个人电脑上是这两个操作系统最普遍没错,但其他硬体的底层操作系统,则几乎都是安装Linux,目前手机的两大操作系统之一,Android就是以Linux为核心发展出来,给手机用的操作系统,这也是为什么除了苹果,其他手机商几乎都是用Android系统。为什么用它?我前一篇开源软件的商业模式分析(二)有提到,底层技术开源的优点在于,减少开发成本、避免被某家软件绑架、降低安全风险,所以开源软件要能商业化,我认为最适合的产品选择就是底层技术,越底层越能成功,而Linux就是占据了最底层的技术,这是地利。


再来进入正题,对于开源软件的商业模式,到目前为止,因为时代背景限制的关系,大致可以分成三个时期:

第一代商业模式:软件免费,服务收费

时代背景:1.网络尚未普及;2.授权条款严格,只要用到一点开源程序,整个程都要开源。

红帽成立于1993,一开始主要的收入是贩售Linux套件的光碟及相关产品,因为那时网络尚未普及,不要说一般民众,连很多公司都还没有网络,而红帽推出的Red Hat Linux版本,整合了在网络上的Linux版本,并加上自行开发的RPM安装程序包,让使用者能更方便安装Linux,因此大获好评,若使用者有能力到网络下载,是不用钱的。此时红帽的营收来源,来自销售光碟及技术咨询服务。也因红帽的技术能力出色,藉由贩卖Linux套件赚到了钱,才有机会在1999年上市,融资到更多钱,撑过接下来的网路泡沫化,这是天时。

网络泡沫化使得整个资讯界包括红帽都惨淡了几年,但泡沫化结束后,整个网络发展开始高速成长,此时红帽做了个很重要的策略,开始转型,专注在服务企业客户,首先在2001年采取订阅模式,不再靠贩售光碟盈利,全心发展软件技术服务,接着在2002年推出企业版Linux(Red Hat Enterprise Linux),企业版和开源社群上的版本有什么不一样?因为社群版的Linux,是任何人都可以去添加功能,优点是五花八门什么都有,缺点就是没有经过整合并大规模的测试,因此较不稳定,而企业版就是将社群版去芜存菁,将企业最需要的功能整合、优化、规模测试,企业版同样是开源软件,可以完全获得源代码,但若没有订阅服务,红帽是不会提供技术支援的。

这个阶段的开源软件公司,除了Red Hat之外,有另一个公司也是成功的,只是因为在2008年就被收购,所以名声没有Red Hat大,但所有互联网界的人都一定知道,那就是MySQL,这是个很广泛被运用的关联式数据库管理系统,2008被升阳(Sun)收购,2009年甲骨文Oracle又收购了升阳,不过它的商业模式跟红帽有个不太一样的地方,它采取了双授权模式,因为MySQL的版权是完全归MySQL公司所有,虽然都是开源软件,但公司拥有版权,可以决定如何贩售,有兴趣的可以再另外去研究,这两者都可以说是这个时期成功的开源软件公司。

再来的时间点进到2005年到2010年间,网络开始普及,加上授权条款开始松绑。

第二代商业模式:提供企业加值版

时代背景:1.网络开始普遍;2.授权条款松绑,若只是连接开源程序,而没有包含或修改,可以不开源。

前一个阶段的商业模式,主要是靠定制与咨询等相关技术服务来获得收入,这对公司长期的经营其实是个很大的挑战,如果只单靠技术服务收费,会有两个很大的问题。首先,因为客户需要服务的次数,在一个时间内总是有限的,有可能一段时间内都不会再购买服务,这就无法产生稳定的财务收入;另外,每个客户的定制服务内容不同,也很难累积边际效益,也就是付出一次成本,无法持续产生收入,每次都要重新投入成本,能重复利用的地方很少,这就表示边际效益低,这些都违反公司长期经营的基本原则,因此开源软件的商业化,仍然要思考怎么获得持续产生的稳定收入。

第一代的开源软件公司之所以能生存下来,是因为它们产品的市场够大,Red Hat是操作系统,MySQL是数据库系统,它们占据了整个生态链的最底层,在这个越来越数位化的时代,拥有最大的市场,但如果新创开源公司的产品市场不够大,是很难支撑公司营运的,必须想办法获取稳定的收入。

而这个时期的授权条款开始松绑了,原本稍微使用到开源程序就要整个开源,现在若只是连接开源程序,而没有包含或修改,就可以不开源,因此新创的开源软件公司,就汇整社群上的版本,并加上公司内部研发的管理工具(只连接,但不包含开源代码)成为增加值版,让企业可以更方便使用和管理开源软件,增加值版的工具就是要收费的。

此阶段的代表公司是Cloudera,两者主要的产品是Apache Hadoop,一种分布式跨机器管理系统,一般的小客户较没有这样的需求,主要的客户集中在中大型企业客户。这样的模式可以产生较稳定的现金流,让营收更漂亮,因此即使产品没有像操作系统或资料库系统那么大的市场,但也有不错的表现,但到2018年为止,两间公司仍处于亏损状态,是靠投资人的资金在营运。

再来就来到2010年之后,因为网络的普及,云端应用开始大幅成长。

第三代商业模式:用云端提供客户解决方案

时代背景:1.网络已经普及,开始走向云端;2.授权条款更松,就算衍生程序包含或修改了原始代码,皆可由最新发布者来选择,衍生程序要开源或闭源。

2010后,网络已经普及,再加上虚拟主机及相关技术如SDN、NFV的成熟,整个云端应用能力大幅成长,这几年常听到的几个商业模式IaaS(Infrastructure as a Service)、PaaS( Platform as a Service)、SaaS(Software as a Service),这些服务都是建构在云端应用上。而这一代新创的开源软件公司,大部分都采用了SaaS的商业模式,也就是说,客户直接付费使用开发好的软件,什么写程序、底层架构等技术问题,交给软件公司来就好,这样的模式对于非软件公司、对资安要求不高的中小型企业,是很吸引人的,不用聘雇太多的开发人员来管理机房,减少了公司的固定支出,而且只要有网络,走到哪都可以工作,甚至连软件都不用安装,可以直接在浏览器上运行,客户只要付费,就可以享用这些便利的服务。

也因相关云端技术的成熟,订阅制的收费模式开始大行其道,因为可以准确的掌控客户使用了多少流量,这是十年前的技术无法做到的,但在越来越数位化的时代,这些都逐渐成真了。GitHub、Docker和MongoDB等公司就是这个时代背景下的新创开源软件公司,但同样也都尚未实现获利,仍处于亏损。

虽然说有第二、第三代的商业模式,但都还是靠投资人的资金在支撑,获利模式仍等待市场验证中,因此为什么讲到开源软件界最成功的商业公司,目前没有别人,就是红帽,它已经持续获利超过15年了。

讲完开源软件发展至今的商业模式后,下一篇来谈开源软件公司目前的目前的处境及未来可能会遇到的挑战。

本节翻译自李政霖BLOG。


开源项目要商业化应该关注什么

作者:郭炜

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

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

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

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

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

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

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

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

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

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

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

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

这其实是不对的。我们要做的事情是,把社区发展起来,引导别人为项目贡献代码,而不是你自己一个人把系统设计得特别好,然后脚踩其它社区,感觉自己很厉害,这其实失去了社区的信任。 社区建立的过程,就是信任建立的过程。倒不如老老实实承认,现在这个项目的确不大好,看哪位大神能帮忙改一改。让社区成员一起参与讨论,共同创造出一个特别厉害的产品,这才是开源的魅力。而且,开源打破了公司与公司之间、国家与国家之间的界限。试想一下,能有哪一个软件,能够汇聚阿里、腾讯、头条等各种各样的“技术大咖”在里面做贡献?只有开源可以。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

所以不要被投资人忽悠了,冲动地跑去创业,要自己先想明白,你的开源项目究竟适不适合商业化。不是所有开源项目都一定要走向商业化。商业版本跟开源版本之间,还是要有不一样的地方,让用户有为其付费的理由。

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

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

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

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

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

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

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