开源社区的激励模型

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;有钱所以用最…

《互联网+流通——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…

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

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

iptables配置详解

-A参数是将规则写到现有链规则的最后面-I 参数默认是将一条规则添加到现有规则链的最前面&#xff0c;当然也可以指定插入到第几行 行数可以用数字来指定 比如说将一条规则添加到某一条链的第三行 那么原来在第三行的规则就会降到下一行第四行。例如&#xff1a; iptables -I …

C语言之strstr函数类似Java字符串的contain函数

1、strstr函数介绍 找出haystack字符串在needle字符串中第一次出现的位置&#xff08;不包括needle的串结束符&#xff09;。返回该位置的指针&#xff0c;如找不到&#xff0c;返回空指针。 2、举例 3、运行结果

软件测试技术——软件测试概述

文章目录一、软件测试的定义标准定义Bug和缺陷二、软件测试与软件质量保证三、软件测试七大基本原则四、软件测试分类按测试手段按测试执行方式按测试阶段或层次按测试对象五、软件测试过程模型V模型W模型H模型X模型一、软件测试的定义 正向观点逆向观点验证软件是否能正常工作…

Linux-No.04 Linux 设置定时任务发送邮件功能

2019独角兽企业重金招聘Python工程师标准>>> 1、定时任务 crontab -l crontab -e /sbin/service crond start //启动服务/sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload //重新载入配置 /sbin/…

WPF 基础控件之 DataGrid 样式

此群已满340500857 &#xff0c;请加新群458041663由于微信群人数太多入群请添加小编微信号yanjinhuawechat 或 W_Feng_aiQ 邀请入群需备注WPF开发者 PS&#xff1a;有更好的方式欢迎推荐。支持NugetInstall-Package WPFDevelopers.Minimal -Version 3.2.001—代码如下一、创建…

C#页面抓取信息

//根据Url地址得到网页的html源码private string GetWebContent(string Url){string strResult"";try{HttpWebRequest request (HttpWebRequest)WebRequest.Create(Url);//声明一个HttpWebRequest请求request.Timeout 30000;//设置连接超时时间request.Headers.Set…

在 Linux 下使用 RAID(二):使用 mdadm 工具创建软件 RAID 0 (条带化)

RAID 即廉价磁盘冗余阵列&#xff0c;其高可用性和可靠性适用于大规模环境中&#xff0c;相比正常使用&#xff0c;数据更需要被保护。RAID 是一些磁盘的集合&#xff0c;是包含一个阵列的逻辑卷。驱动器可以组合起来成为一个阵列或称为&#xff08;组的&#xff09;集合。 创建…

struts2批量删除

2019独角兽企业重金招聘Python工程师标准>>> 2012-10-27 12:48 997人阅读 评论(0) 收藏 举报 逻辑代码 [java] view plain copy package com.stu2; import java.util.ArrayList; import java.util.List; import java.sql.*; import com.s…

电子商务应用课程知识整理 第六章-数据挖掘

文章目录一、概述二、关联分析概念&#xff1a;关联分析步骤&#xff1a;用于寻找频繁项集的算法算法一&#xff1a;蛮力法算法二&#xff1a;Apriopri算法&#xff08;先验算法&#xff09;三、分类与预测k近邻算法&#xff08;kNN&#xff09;四、聚类分析k均值算法&#xff…

.NET Core 返回结果统一封装

本文使用.NET Core Webapi演示&#xff01;一:新建.NetCore webapi项目为了方便开发,简化代码,也为了与前端方便对接,需要对接口服务返回结果进行统一处理。二:定义返回结果结构我们需要定义一个统一返回结果泛型类ApiResultpublic class ApiResult<T>{/// <summary&g…

linux之nm命令

1、nm命令介绍 nm命令很好记&#xff0c;当时看到大神在我的电脑面前在open ssl编译的.a文件里面过滤SHA函数&#xff0c;nm你就这样记&#xff0c;nm 尼玛, 哈哈。我们可以通过nm命令查看后缀out文件和后缀a文件里面的函数和部分属性。比如我们过滤SHA函数&#xff0c;命令如下…

.NET的两种部署模式,了解一下

前言以往部署程序一直是习惯性先安装运行时环境&#xff0c;然后再将发布打包好的程序运行起来&#xff1b;但当多个程序依赖不同版本框架平台时&#xff0c;如果部署在同一台机器上&#xff0c;那就需要在同一台机器上安装多个版本的运行时&#xff0c;总感觉有点不太方便&…