继续写关于开源软件的七大错误认知系列。前面两篇文章:《关于开源软件的七大错误认知(上)》《关于开源软件的七大错误认知(中)》已经写了前四个错误认知:

√ 只要软件开源了,就会有人用;

√ 我又没收你钱,开源软件的漏洞与我无关;

√ 开源软件应当使用最宽松的协议;

√ 我应当努力地将软件捐献给基金会。

这篇文章来聊剩下的三个错误认知:

√ 开源之后会有很多人帮我来完善项目;

√ 我开源不是为了钱;

√ 开源软件靠服务和捐助可以赚钱。

先来看第五个错误认知:开源之后会有很多人来帮我完善项目。

很多开源软件作者开源,是希望有更多的人参与到项目中,这样项目的问题能够得到及时地发现和处理,项目也可以持续地发展。但实际的情况是什么样的呢?InfoQ 联合 X-lab 开放实验室发布的“GitHub 2019 数字年报”,通过对 2019年 GitHub 上 5.46 亿条日志进行分析,得出了世界范围内开源软件项目的一些汇总数据。这其中有这样的信息值得我们思考:

2019年总活跃项目数为512万,但活跃度超过1000的项目只有1399个,不到万分之三。
在这512万个项目中,只有333个项目有1000位开发者参与,而2019年 Github 上活跃的开发者数量是360万。
2019年活跃度排行前10的项目中,有60%来自大厂,其中有2个来自微软,分别是vscode 和azure-doc。3个来自Google,分别是 Flutter、Tensorflow、Kubernetes。还有一个是来自红帽的 Ansible。
2019年活跃度前列的项目中,大厂维护的项目现在仍然非常活跃,而排名第10的 tweakCompatible,已经停止维护了。
2019年中国Top20的项目中,主要都是大厂维护的项目。
Vue 项目2019年大部分的贡献是由一个账号 Evan You,也就是尤雨溪尤大贡献的。
2022年1月份,cURL 的作者发表了一篇文章,吐槽世界500强企业白嫖技术支持的乌龙事件。具体新闻可以看开源中国的网址:

https://www.oschina.net/news/180252/fortune-500-log4j-curl。类似的事情太多了,就不一一列举了。

所以,结论是,开源项目的维护主要还是要靠自己。

再来看关于开源软件的第六个错误认知:我开源不是为了钱。

这个话题估计会有很多开源软件的作者会不赞同。就像 Linus 做 Linux 项目,just for fun。很多开源软件作者比较纯粹,把软件开源出来就是希望能够对用户有用,并没有商业化的目的。但我把这个话题换一种表达方式,估计大家都会赞同。也许大家刚开始开源的时候,确实没有想着赚钱。但随着事情的变化,大家就会考虑,我能不能通过开源项目赚钱呢?

刚开始开源的时候,开源软件的作者更多的是兴奋,以及软件得到用户认可所带来的成就感。但随着用户的增多,来自用户的问题就会越来越多。有的是希望你帮我解决一些使用安装的问题,有的是希望你帮他做一些功能。随着这些问题的增多,你做开源这件事情的性质就会逐渐发生变化。从最开始的分享为主,逐渐变成维护为主。开源项目给到你的乐趣会逐渐减少,责任和义务就会逐渐增多。自己的投入会越来越多,心里的不平衡感就会越来越强。这时候大家就会考虑,我是不是可以通过开源项目来赚点钱呢?

所以这是水到渠成的想法,也是非常合情合理的想法。能够通过开源项目获得一定的收益,然后支持自己在开源项目做更多的投入,这是一件非常好的事情。

再来看最后一个错误认知:开源软件靠服务和捐助可以赚钱。

网上有很多的资料,在讲到开源软件的商业模式时候,都会谈到软件免费,服务收费。这个模式按道理是能够讲得通的。毕竟软件我都给你了,你要是有问题,我通过服务来收点费用,不是很合理吗?但这里面有一个悖论,我来给大家分析一下。

先来界定下这个服务的范围。我所理解的软件免费,服务收费的服务,是指保证软件正常运行使用过程中所产生的支持类的服务。二次开发类的服务和咨询培训类的服务,超脱了这个服务的范围。

如果我们尝试通过支持服务来收费,那么什么情况下用户需要支持服务呢?肯定是软件有问题用户才会需要服务,对吧。如果我们希望通过服务来赚比较多的钱,肯定是希望用户提出越多的问题越好。那如果一个软件问题比较多,那就说明软件复杂度或者质量有问题。那这样用户就比较少。用户少,那怎么通过服务来收费呢?所以这里面就存在了这样一个悖论。

什么样的软件可以通过支持服务收费呢?这个软件对企业非常关键,他们需要一个商业主体来为这个软件的正常运行负责,这样的软件通过服务收费才能行得通。什么样的软件符合这样的标准呢,基础软件。所以红帽卖自己的订阅制服务是行得通的。

我们禅道团队在开发项目管理软件之初,就放弃了通过支持服务收费的想法。我们给禅道开源免费版的用户都会提供近乎于实时的技术支持。我们的目的很简单,吸引更多的用户使用禅道。一个社区的陌生小伙伴,只有成为你软件的用户,才有可能成为你的客户。为了吸引更多的社区小伙伴成为禅道的用户,我们不遗余力的完善产品、提供各种技术支持。然后通过我们的收费的版本来实现商业化。

很多开源软件作者也都放出了自己的捐助账号,但实际的情况如何呢?我们在网上也看到过很多的新闻,很多知名的开源项目,一年收到的捐助少得可怜,可能连主要维护人员的正常生活都保证不了,这还是在欧美。比如 Core-js 项目每周下载量达数千万次,累积下载量已经超过90亿次,但作者 Denis 并没有从这个项目中获得更多的回报,甚至因为全职维护 Core-js 而穷困潦倒。他想了各种办法来筹集资金以便维护开源项目,结果每个月也只能获得几十美元的赞助。估计会有小伙伴会提 Vue 尤大的例子,但这个只能是个例,而且很多对 Vue 的捐赠是有品牌推广的性质在里面,和我们通常说的打赏类的捐赠还是不太一样。

我们最开始几年也有开放捐赠的通道,也陆续收到一些捐助,不过相比较于我们的研发投入来讲,只能说是杯水车薪。因为我们跑通了商业化这条路,我们把我们所收到的捐助又全部捐了出去。后来我们就关闭了捐赠的通道,是因为有的人因为捐赠之后,希望我们能够给他做一些额外的事情,这已经超出了捐赠这件事情本身的含义。

所以大家就不要幻想通过技术支持和捐助来实现健康的收入了。需要认真考虑开源软件的商业化之路。这是关于开源软件的七大错误认知系列的最后一篇文章。欢迎大家来讨论。

您现在看到的这系列文章,是我正在撰写的《开源软件商业化白皮书》的组成部分,我接下来会和大家分享关于开源软件商业化的模式分析以及操作过程中的一些具体问题,敬请关注。


敏捷开发
1 声望2 粉丝

致力于分享、推广敏捷开发相关知识及项目管理实践!