开源社区的激励模型

87796550a845f82f7cb57939b1950e9d.gif

5bc8fd7e8b5607bc382eaf44a1ab3477.png

| 作者:庄表伟

| 编辑:刘雪洁

| 设计:宋传琪

| 责编:王玥敏

d20d923503e202056f2bad93c72759f4.png

缘起

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

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

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

210b1e94934d1f50e39ce237745beea0.png

总纲

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

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

  • 关于贡献的问题:

    • 如何判断谁的贡献最大?

    • 贡献第二,贡献第三的人,是否可以依次排序?

    • 贡献是否可以量化,一个人是100,另一个人是98.5?

    • 所谓比较,能否跨项目,跨社区的比较?比如你是Linux的内核社区贡献者,我是Ruby on Rails的社区贡献者,谁的贡献最大?

  • 关于社会地位的问题:

    • 如何给予一个人相应的社会地位?是职务吗?是某种默默的尊敬吗?

    • 社会地位,是否能够兑换成某种物质回报?还是纯精神的?

    • 社会地位能够比较吗?如何判断一个人获得的社会地位,是否匹配得上他的贡献?

    • 社会地位是固化的吗?一个人曾经做出很大的贡献,但是后来长期潜水,他的社会地位,应该发生变化吗?

1e2771d9d49da1094a56c643cc65cd8a.png

两座冰山

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

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

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

19a96750103434d90be8871c02db7946.png

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


传统的赞助模式

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

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

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

传统的养人模式

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

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

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

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

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

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

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

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

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

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

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

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

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

基于时间计算价值

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

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

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

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

bb78f29847bce49e75dab5416cad42dc.png

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

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

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

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

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

  • 企业与社区经过长期博弈,会形成某种稳定的捐赠规模,捐赠习俗。虽然不够好,但确实算得上“源头活水”

  • 花钱养开源人,其实是一个不错的激励模式,尤其可以补足冰山以下的缺憾

  • 目前区块链社区兴起的各种DAO的尝试,其实都是某种区块链乌托邦,我非常期待他们能够走出一条新路来。虽然目前看起来,往往浮躁和泡沫是主流。

  • 权威的数学模型、经济学模型、价值模型,肯定是需要的,哪怕需要探索好多好多年,还是得一直探索下去

相关阅读 | Related Reading

be571a0bca72883bc3cf6d44f2a5d965.png诗杰:坚持热爱,成为更好的自己

fa8553df9b5f0e3a929618b65816d2c6.png热烈祝贺开源社顾问委员会委员姜宁当选 2022 Apache 软件基金会新任董事!

2dee40090e7fbfc91f31ba356bf2097b.png

来自开源世界的超级码丽,中国开源码力榜权威发布!

开源社简介

开源社成立于 2014 年,是由志愿贡献于开源事业的个人成员,依 “贡献、共识、共治” 原则所组成,始终维持厂商中立、公益、非营利的特点,是最早以 “开源治理、国际接轨、社区发展、开源项目” 为使命的开源社区联合体。开源社积极与支持开源的社区、企业以及政府相关单位紧密合作,以 “立足中国、贡献全球” 为愿景,旨在共创健康可持续发展的开源生态,推动中国开源社区成为全球开源体系的积极参与及贡献者。

2017 年,开源社转型为完全由个人成员组成,参照 ASF 等国际顶级开源基金会的治理模式运作。近七年来,链接了数万名开源人,集聚了上千名社区成员及志愿者、海内外数百位讲师,合作了近百家赞助、媒体、社区伙伴。

73d9b0ee1a37151bed31580bdc7816c5.gif

685a75660049941a41a989917257054f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/290665.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

电子商务应用课程知识整理 第四章-搜索引擎

文章目录一、搜索引擎定义分类1.全文搜索引擎2.目录索引3.元搜索引擎4.垂直搜索引擎工作原理1.抓取网页2.处理网页3.提供检索服务核心算法组成部分发展趋势二、网络蜘蛛三、中文分词基于词典的分词方法基于统计的分词方法基于理解的分词方法分词难点1.歧义识别2.新词识别四、链…

《Network Warrior中文版(第2版)——思科网络工程师必备手册》一3.3 自动协商故障...

本节书摘来自异步社区《Network Warrior中文版(第2版)——思科网络工程师必备手册》一书中的第3章,第3.3节,作者【美】Gary A. Donahue,更多章节内容可以访问云栖社区“异步社区”公众号查看 3.3 自动协商故障 Network…

Linux 命令(三)--用户管理

2019独角兽企业重金招聘Python工程师标准>>> 查看用户: cat /etc/passwd --------------------- 添加用户: useradd 选项 用户名 -d 目录 指定用户主目录,如果不存在使用-m 创建 -g 指定用户所属的用户组 -G 用户组 ,用户组指定用户所属的附加组 -e <有效期> …

1.单机部署hadoop测试环境

之前看了很多理论上的知识&#xff0c;感觉云里雾里的&#xff0c;所以赶紧着手搭建个单机版的hadoop跑一跑&#xff0c;开启自学大数据技术的第一步~~ 1.在开源的世界里&#xff0c;我就是个土豪&#xff0c;要啥有啥&#xff0c;所以首先你得有个jdk&#xff0c;有钱所以用最…

LeetCode之Merge Sorted Array

1、问题 Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. Note: You may assume that nums1 has enough space (size that is greater or equal to m n) to hold additional elements from nums2. The number of elements ini…

.NET6之MiniAPI(二十一):限流

限流&#xff0c;可以网络的基础设施进行配置实现&#xff0c;也可以在网关的地方进行限流&#xff0c;但服务本身的限流也不可或缺&#xff0c;因为当多副本时&#xff0c;一个副本故障&#xff0c;流量对于其他副本来说会提高&#xff0c;如果超过其承受请求量的范围&#xf…

《互联网+流通——F2R助力传统产业创新与转型》一一第1章 “互联网+”的新时代...

第1章 “互联网&#xff0b;”的新时代 回顾过去20多年&#xff0c;互联网在中国不断发展壮大&#xff0c;从根本上重构了中国人的生活方式。伴随“互联网”在2015年正式被写入国家战略&#xff0c;“互联网”将助推国民经济三驾马车的再造新生&#xff0c;以创新驱动中国经济的…

Oracle数据库体系结构

文章目录Oracle系统体系结构由三个部分组成&#xff1a;**实例、物理结构和逻辑结构**实例和物理结构&#xff08;数据库&#xff09;组成了Oracle服务器。一、实例1.1 内存结构1.1.1 系统全局区&#xff08;SGA&#xff09;1.1.1.1 共享池&#xff08;共享储存区&#xff09;1…

Distributed transactions with multiple databases, Spring Boot, Spring Data JPA and Atomikos

2019独角兽企业重金招聘Python工程师标准>>> A couple of weeks ago I was evaluating the possibility to use Spring Boot, Spring Data JPA and Atomikos for distributed transactions involving multiple databases. After looking at the Spring blog articl…

js如何查看元素类型

<script type"text/javascript"> //定义变量temp var temp Object.prototype.toString.apply("abcdef"); alert(temp); //执行结果------>[Object String] //定义变量temp var temp Object.prototype.toString.apply(123456); alert(te…

Android之用adb命令快速获取手机IP方法总结

方法1 adb shell netcfg 方法2 adb shell netstat 找到local address 方法3 手机root 安装busyboxadb shell ifconfig

Avalonia跨平台入门第十四篇之ListBox折叠列表

在前面分享的几篇中咱已经玩耍了Popup、ListBox多选、Grid动态分、RadioButton模板、控件的拖放效果、控件的置顶和置底、控件的锁定、自定义Window样式、动画效果、Expander控件;今天趁着空闲时间接着去摸索基于ListBox的折叠列表的效果,最终实现的效果如下图:先来看看布局吧:…

《HTML5触摸界面设计与开发》——1.4 神秘谷,是什么让触摸界面反应灵敏?...

本节书摘来自异步社区《HTML5触摸界面设计与开发》一书中的第1章&#xff0c;第1.4节,作者&#xff1a; 【美】Stephen Woods 更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.4 神秘谷&#xff0c;是什么让触摸界面反应灵敏&#xff1f; 我有个两岁半的儿子。他从一…

Android之获取移动网络ip

1、获取移动网络ip 2、代码 public String getLocalIpAddress() { try { for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) { NetworkInterface intf = en.nextElement(); for (Enumeration<InetAddres…

GCD

使用GCD 什么是GCD Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法。该方法在Mac OS X 10.6雪豹中首次推出&#xff0c;并随后被引入到了iOS4.0中。GCD是一个替代诸如NSThread, NSOperationQueue, NSInvocationOperation等技术的很高效和强大的技术。 GCD和…

软件测试技术——系统测试

文章目录一、功能测试二、回归测试定义测试时机三、性能测试定义目标性能测试类型压力负载测试1.并发性能测试&#xff08;重点&#xff09;2. 疲劳强度测试3. 大数据量测试压力测试&负载测试四、其他非功能测试1. 安全性测试功能性测试&安全性测试2. 可靠性3. 容错性测…

nagios-3.4.3搭建

nagios转载于:https://blog.51cto.com/yujianglei/1557718

.NET Core程序瘦身器发布,压缩程序尺寸到1/3

.NET Core具有【剪裁未使用的代码】的功能&#xff0c;但是由于它是使用静态分析来实现的&#xff0c;因此它的剪裁效果并不是最优的。它有如下两个缺点&#xff1a;不支持Windows Forms和WPF&#xff0c;而对于程序剪裁功能需求最强烈的其实反而是桌面程序的开发者。无法删除运…

Android之切换账号登录依然能登录成功问题解决办法

1、问题 切换账号登录依然能登录成功 2、原因和解决办法 原因是因为我调用了第三方的sdk,里面有个生成签名文件的函数&#xff0c;写死了一个参数&#xff0c;导致每次生成签名文件内容都是一致&#xff0c;导致到服务端验证通过成功。 分析路线&#xff1a; 1、 先打印日志…

《大型网站服务器容量规划》一1.1 容量规划背景

本节书摘来异步社区《大型网站服务器容量规划》一书中的第1章&#xff0c;第1.1节&#xff0c;作者&#xff1a; 郑钢 责编&#xff1a; 张涛&#xff0c;更多章节内容可以访问云栖社区“异步社区”公众号查看。 1.1 容量规划背景 如今人们已经习惯从互联网上获取信息&#xf…