开源社区的激励模型

缘起

开源社区里的激励模型,其实是一个经久不衰的老话题。4年多以前,我还写过一篇《区块链技术是否会终结开源时代?》,也是在讨论如何基于区块链技术,来进行社区激励的事情。

上周与 OpenTEKr 的 Dean 和明艾吃饭聊天,又一次聊到这个话题,于是我想,还是应该更加系统性的,整理一下这方面的思考。

更巧的是,正好昨天还有一位朋友在微信上问我,也是关于激励模式的话题。这就让我意识到,必须得在这个周末写出来了。 ☺

总纲

还是得回到《大教堂与集市》,Eric Raymond 在书中指出:要研究开源“集市”开发模式的社会动力学,应该参考一下人类学家所称的礼物文化,这种文化下,其成员通过送出礼物而竞争社会地位。

为什么将这段话称之为总纲?因为在开源社区,大家都默认,贡献最大的人,应该获得最高的社会地位。但是,这样的总纲,在实际运用过程中,会遇到很多困难。

两座冰山

在《开源:献给世界的礼物》,我就提到了两座冰山的现象。

在开源社区有两座冰山,一座是在海面之上看得到的开源项目,就是那些投资商会关注的,有重要商业价值的,有很大收益的,但这些只是开源世界里的极小部分。剩下的很多开源项目,它们几乎没有商业价值,也没有投资前景,它们只是默默地存在着。但海面之下的开源项目,不仅重要,还是海面上的开源项目存在的基础。另一座是开发者,即开源社区里所谓的“大牛”们,他们是海面上的那座冰山(一小部分人),而在海面以下的那部分人,他们其实很多时候没有那么受到关注,也没有收到那么多回报,没有享受到礼物文化带来的回馈,他们的贡献甚至被忽略了,他们在社区里的地位也只是说还行。

如果要分析冰山的成因,在我看来原因在于:社区的激励机制不够健全,导致海面以上的贡献者,收获了“过度激励”,而在海面以下的贡献者,却是“激励不足”。

现有的激励模式有哪些思路?

传统的赞助模式

这种激励模式,其实从自由软件/开源软件诞生之初,就已经有了。个人在自己的网站上,挂一个 Donation 的按钮,有人愿意,走过路过就捐一下。到现在,维基百科每年都还会挂一次横幅,以便吸纳一些捐款。开源世界吸纳捐赠比较著名的,应该还是 Vue 吧。

另一方面,就是更加系统化的,各个著名的开源基金会,每年接受一定数额的企业捐赠。然后,他们每年会公布一次账目,告知一下大家:这些钱是花到哪里去了。

但是:这样的赞助模式具有极大的随机性。捐赠给具体个人或项目的情况,往往存在“冰山”效应。而捐赠给基金会的钱,却无法进一步公平、公开的分配、资助到各个具体的项目。

传统的养人模式

很多企业现在都会直接招募开源社区的开发者,到自己的公司,然后“花钱养着他们”。以资助他们,长期持续的为开源项目做出贡献。说实话,这个模式确实不坏。唯一的缺憾是:开发者缺少一夜暴富的机会。

曾经的息壤基金会:天使投资人模式

2013 ~ 14 年的时候,我和一些朋友筹划成立一个开源基金会,当时有过一个设想:假设基金会每年能够筹集到 100 万。我们就在全国范围内,寻找 100 位开源大牛。每人手上有 1 万元的经费。他们可以任凭自己的心意,每年赞助一个或者多个项目,也可以直接把钱赞助给个人。

当然,与天使投资人的区别在于:基金会或者那位大牛,并不会成为那个开源项目的股东。

因为最后这个基金会也没有成立,所以到最后也无法尝试这样的一种模式。

Bountysource / GitCoin ,基于任务悬赏的激励机制

在英文维基百科里,有一个词条 Open-source bounty ,介绍了多种类型的赏金计划,以及赏金激励平台。其中较为著名的两家,就是 BountysourceGitCoin 。其中发展得较好的,还是 GitCoin ,到目前为止一共筹集到了 5300 万美元,激励了 31 万+开发者。

这样的一种模式,当然是可行的。但其本质上,是一个定价权完全在买方的市场。一个人的贡献大小,仅仅由当时愿意悬赏的人,以及其悬赏的金额决定?这样怎么说,都好像不太合理。

KCoin ,一种开源贡献/股权激励的尝试

还是在 2017 ~ 2018 年的时候,我发起了一个名叫 KCoin 的项目。更多的介绍,还可以看这篇文章《畅想——基于区块链的经济体系》。

简单介绍一下这个思路:项目的创始人或负责人,制定一套规则。用来确定,什么样的贡献,能够兑换什么数量的“内部股”。如果时机成熟,这个项目能够“上市”,则所有的贡献者,都可以基于当前“股价”,凭借自己的股票,去兑换收益。

基本上,这是一套把一个开源社区,当成一个股份制公司来经营的思路。贡献与收益之间的兑换是否合理,由两层因素决定:一方面是贡献积分规则是否合理,另一方面是市场对于这个项目的认可程度,是否公平。

这是一种看上去很美好的模式,但是在“上市/兑换”层面,一直没法落地,所以也就默默无闻的走到了今天。

基于时间计算价值

这是在我最近的一篇文章(试论开源生态的经济模型)里描述的一种计算模型。

作为一个刚刚诞生的思路,其实还有很多不成熟的地方。最大的困难在于:如何计算软件开发中的社会必要劳动时间,以及具体某种行为的必要劳动时间。如果这些时间的计算方法,缺乏说服力,这整个模型,就成了空中楼阁。

价值流网络,一种更加野心勃勃的尝试

Frank 的价值流网络,可以说是一种更加野心勃勃的尝试。具体的细节,可以阅读他的博客进一步了解。

如何评价现有的这些激励模式?

上面介绍的七种模式,是我刻意从非常主观到非常客观进行排序的,也是从很容易实现到很难实现进行排序的。

从某种理想主义的目标出发,我们当然希望能够真正的衡量贡献,并公正的给予激励。而且,最好是能够衡量长期的,生态意义上的,完整的贡献。而不仅仅是一时的,只对某些特定需求者有价值的贡献。

但是:想要客观的评估一款开源软件的价值,以及其中每一位开发者的贡献,实在太困难了。

目前我能够做出的判断,只有以下几条: