开源生态学初探——从生命游戏开始

eedebef6be75d77b96f36f9c16355a1f.gif

93493339933dbb4fc715d43bbdec4426.jpeg

缘起

在最近一次开源社的理事会上,我们聊到了关于如何孵化开源项目,如何更好地帮助开源项目发展的事情。我在会后思考了很多,因此决定写一篇文章来阐述一下自己的观点。

生命游戏

首先还是想介绍一下,已经有很多朋友都很熟悉的一个游戏:生命游戏。

在 1970 年的时候,约翰·何顿·康威(John Horton Conway)发明了生命游戏,规则非常简单:

  • 当前细胞为死亡状态时,当周围有 3 个存活细胞时,则迭代后该细胞变成存活状态(模拟繁殖);若原先为生,则保持不变;

  • 当前细胞为存活状态时,当周围的邻居细胞低于两个(不包含两个)存活时,该细胞变成死亡状态(模拟生命数量稀少);

  • 当前细胞为存活状态时,当周围有两个或 3 个存活细胞时,该细胞保持原样;

  • 当周围有 3 个以上的存活细胞时,该细胞变成死亡状态(模拟生命数量过多)。

  • 如果想自己玩玩这个游戏,可以访问:

http://home.ustc.edu.cn/~zzzz/lifegame/lifegame.html

  • 如果只是想看看效果,可以访问 B 站视频:

https://www.bilibili.com/video/BV1LL411J7Jg/

之前的激励模型,漏掉了什么?

3 月份的时候,我写过一篇文章:《开源社区的激励模型》。但是当时的讨论,现在看来还停留在“静态分析”阶段。

《开源社区的激励模型》

https://zhuangbiaowei.github.io/opensource/2022/03/05/opensource-motivation-model.html

如果我们希望从一个生命周期的视角,来看待一个开源项目,应该如何为其建模呢?

  • 初创阶段,开源项目的创始人势单力孤,甚至孤军奋斗。

  • 小成阶段:开始吸引到有限的几个朋友,参与这个项目,人员不稳定,随时可能跑掉。

  • 活跃阶段:已经有了稳定的开发者社区,项目稳定发展,欣欣向荣。

  • 衰落阶段:人员逐渐流失,项目失去吸引力,代码提交零零星星,社区活跃度下降。

  • 遗迹阶段:已经无人维护,仅剩一个代码仓库,供人凭吊。

或者更加简洁一点划分:

  • 初创阶段:无吸引力,无需治理

  • 活跃阶段:有吸引力,需要治理

  • 衰落阶段:无吸引力,无力回天

而我之前的讨论,大多数时候是针对活跃阶段,如何治理的问题。而一个开源项目,如何从“初创阶段”,发展为“活跃阶段”,却是另一个尚未被讨论的问题。

当然,如何避免活跃的项目衰落,这个可能更难,今天的这篇文章就先不讨论了。

开源生态学,应该如何定义问题?

先看看生态学研究些什么?

生态学(德语:Ökologie,英语:Ecology),是德国生物学家恩斯特·海克尔于 1866 年定义的一个概念:生态学是研究生物与其周围环境(包括非生物环境和生物环境)相互关系的科学。德语Ökologie(最初:Oecologie)是由希腊语词汇Οικοθ(家)和Λογοθ(学科)组成的,意思是“研究居住在同一自然环境中的动物(Lebewesen)的学科”,目前已经发展为“研究生物与其环境之间的相互关系的科学”。环境包括生物环境和非生物环境,生物环境是指生物物种之间和物种内部各个体之间的关系,非生物环境包括自然环境:土壤、岩石、水、空气、温度、湿度等。

生态学考虑多个层次(从个体、种群、群落、生态系统到生物圈层面)的生态。主要研究以下问题:

  • 生命过程、反脆弱性、相互作用和适应性

  • 物质和能量在生物群落中的流动

  • 生态系统的演进发展

  • 物种内部和之间的合作、竞争和捕食

  • 生物体的丰度、生物量和在环境中的分布情况

  • 生物多样性的模式及其对生态系统过程的影响

*以上内容摘录自中英文维基百科:

中:https://zh.wikipedia.org/wiki/%E7%94%9F%E6%80%81%E5%AD%A6

En:https://en.wikipedia.org/wiki/Ecology

映射到开源领域

  • 个体:就是一个一个的(有可能)参与开源的个体

  • 种群:在校学生群体,自由职业群体,企业员工群体等等

  • 群落:一个一个的开源社区,可以看做一个一个的群落

  • 生态系统:整个开源世界,构成了一个生态系统

  • 生物圈:就是指这个开源生态系统,所处的整个世界

我们在生命游戏里是怎么玩的?

18b06100b55171d1d9485befc5568d93.png

我们会暂停游戏,观察“停滞不前”的群落,然后适当地加上一个“个体”(比如图中的绿色或者黄色的点)。在游戏继续之后,可能那个群落就会兴旺发达了。

但是,与生命游戏不同的地方在于:我们加上的个体,不一定就是最适合的。于是,这个群里后续的发展方向,可能正如我们所愿,也可能会快速的分崩离析。

再回顾一下我们前面对于开源社区的分类:

  • 初创阶段:无吸引力,无需治理

  • 一个小群落,可能长期停滞,也可能即将消亡

  • 活跃阶段:有吸引力,需要治理

  • 一个活跃的,不断发展变化的群落,但是可能存在不稳定的因素

  • 衰落阶段:无吸引力,无力回天

  • 一个组织结构不合理,缺少关键个体,不再有效产出的群落

137a00a9797a3dfb936bbb823eeefa5a.png

开源生态学,可以研究一些什么?

  • 一个开源社区,以及其生产的开源软件的“生命周期”

  • 开源参与者的角色与种类(个体与种群),以及其成长的典型路径

  • 能够激发开源社区发展壮大的“物质与精神能量”有哪些?以及如何发生作用?

  • 整个开源世界,作为一个生态系统,如何评估其健康状况?

  • 开源世界中的个人、企业、社区与基金会之间,存在哪些竞争与合作关系?

  • 是否存在某种开源社区的地理环境,比如:美国、中国、英文、中文,不同的环境下的开源社区,有何异同?

  • 开源社区的成员多样性与健康度之间,应该是何种关系?

尝试从生态学角度,讨论三个开源的话题

如何帮助初创阶段的开源项目,成为成熟的、活跃的开源项目?

我们可以提出一个猜想,在《【翻译】开源的简单经济学》中提到的各种回报,除了“金钱”以外的收益,都是开源项目所独有的,例如心情愉悦、未来的工作机会、同行的认可等等。这些都与“开源项目规模与活跃度”正相关。

《【翻译】开源的简单经济学》

https://zhuangbiaowei.github.io/opensource/economics/2022/05/18/the-simple-economics-of-open-source.html

也就是:越是大项目、很多人参与的项目,国际知名的项目,越是有人不求“物质”回报的参与贡献。因为非物质回报,足够补偿。

_

初创阶段

活跃阶段

吸引力

参与动力

创始人坚持

非物质回报

如果,我们能够为这个开源项目,投入一些“生力军”,帮助项目从初创阶段,成长到活跃阶段,这个项目就能够依靠自身的吸引力,继续发展下去。

于是,我们就引入了一个“生物体的丰度”概念。一个健康的开源生态,有足够密度的开源爱好者,或者说他们有充足的业余时间参与一个新兴的开源项目。这个生态圈,就能够不断地培育出新的开源项目。

否则,就会有很多新兴开源项目,还没有熬到长大,就悄无声息的消失了。

从这个意义上来说:要想改善开源生态,至少有两种方案:

  • 想办法增加整体的生力军数量,以提升丰度。这可以称为环境改良;

  • 想办法为特定的,更有希望的“种群”,定向追加人手,帮助他们更好的存活与发展。这可以称为定向孵化。

如何定向孵化一个开源项目

继续上面的话题,假设我们想投入一些生力军到一个新兴开源项目,需要考虑以下问题:

  • 是找开源老手,还是找开源新人?

  • 在一个原本就贫瘠的环境中,拆东墙补西墙,不是一个好选择

  • 如果是找新手,是否存在风险?

  • 如果一个开源项目原有的成员,本身经验就不足,新手的参与也许还帮不上忙,只会添乱

  • 如果是找开源新手,但是却是开发老手,是否可行?

  • 通过付费找外包的方式开发,对于项目可行,但是对于社区氛围,以及长期发展,可能不利

所以,理想的方案是:开源老手作为导师,辅导N个新手,加入一个社区。一方面帮助新人适应开源社区的开发模式,另一方面也能帮助新兴开源项目,逐步走上正规。

但是,这样的孵化,成本非常高昂,事实上Google Summber of Code基本上就是这个模式。只不过,如果要想在中国更好地发展这样的模式,导师的心力投入需要更高才行。

新建一个开源项目,应该选择何种语言?

c6305cb192dbbc1917e629ed5f12ea38.png

如果我们的开源项目,初始语言是英文,那么图上的绿色点与蓝色点,都可以参与。如果初始语言是中文,那么图上的蓝色点与紫色点,都可以参与。

从“生物体的丰度”概念来看,现阶段当然是选择使用英文。除非等到使用中文的开源开发者数量大大增加,使得选择中文作为初始语言更加“划算”。

另外一种可能性,也许会与项目的具体目标用户群有关。假设我们做的是一个微信小程序上的开源项目。或者是一个用于抗击新冠、快速核酸筛查的开源项目,那么选择中文,才是更加合理的。

结束语

总之,从生态学的角度来看开源,可以帮助我们打开思路,考虑更多的可能性,以及做出不一样的选择。

欢迎大家一起来讨论。

转载自:开源雨林

作者:庄表伟

编辑:李佳阳

责编:王玥敏

设计:李昊原

相关阅读 | Related Reading

66fbfc3a1b4099082764823bcfa42e36.jpeg

一个开源贡献者的自我修养 :在Apache Spark推进SPIP时我们学到了什么?

5e72c5d5c2b728381378b534c64203e5.png

技术播客月 | 开发者社区运营是怎么样一个体验?

d5520cd5aebcc85b733e78f955ca359d.png

我所理解的开源软件供应链安全

开源社简介

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

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

3a922b80f5b0c08763bb3d984a824d2d.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值