开源生态学初探——从生命游戏开始
緣起
在最近一次開源社的理事會上,我們聊到了關于如何孵化開源項目,如何更好地幫助開源項目發展的事情。我在會后思考了很多,因此決定寫一篇文章來闡述一下自己的觀點。
生命游戲
首先還是想介紹一下,已經有很多朋友都很熟悉的一個游戲:生命游戲。
在 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
映射到開源領域
個體:就是一個一個的(有可能)參與開源的個體
種群:在校學生群體,自由職業群體,企業員工群體等等
群落:一個一個的開源社區,可以看做一個一個的群落
生態系統:整個開源世界,構成了一個生態系統
生物圈:就是指這個開源生態系統,所處的整個世界
我們在生命游戲里是怎么玩的?
我們會暫停游戲,觀察“停滯不前”的群落,然后適當地加上一個“個體”(比如圖中的綠色或者黃色的點)。在游戲繼續之后,可能那個群落就會興旺發達了。
但是,與生命游戲不同的地方在于:我們加上的個體,不一定就是最適合的。于是,這個群里后續的發展方向,可能正如我們所愿,也可能會快速的分崩離析。
再回顧一下我們前面對于開源社區的分類:
初創階段:無吸引力,無需治理
一個小群落,可能長期停滯,也可能即將消亡
活躍階段:有吸引力,需要治理
一個活躍的,不斷發展變化的群落,但是可能存在不穩定的因素
衰落階段:無吸引力,無力回天
一個組織結構不合理,缺少關鍵個體,不再有效產出的群落
開源生態學,可以研究一些什么?
一個開源社區,以及其生產的開源軟件的“生命周期”
開源參與者的角色與種類(個體與種群),以及其成長的典型路徑
能夠激發開源社區發展壯大的“物質與精神能量”有哪些?以及如何發生作用?
整個開源世界,作為一個生態系統,如何評估其健康狀況?
開源世界中的個人、企業、社區與基金會之間,存在哪些競爭與合作關系?
是否存在某種開源社區的地理環境,比如:美國、中國、英文、中文,不同的環境下的開源社區,有何異同?
開源社區的成員多樣性與健康度之間,應該是何種關系?
嘗試從生態學角度,討論三個開源的話題
如何幫助初創階段的開源項目,成為成熟的、活躍的開源項目?
我們可以提出一個猜想,在《【翻譯】開源的簡單經濟學》中提到的各種回報,除了“金錢”以外的收益,都是開源項目所獨有的,例如心情愉悅、未來的工作機會、同行的認可等等。這些都與“開源項目規模與活躍度”正相關。
《【翻譯】開源的簡單經濟學》
https://zhuangbiaowei.github.io/opensource/economics/2022/05/18/the-simple-economics-of-open-source.html
也就是:越是大項目、很多人參與的項目,國際知名的項目,越是有人不求“物質”回報的參與貢獻。因為非物質回報,足夠補償。
_ | 初創階段 | 活躍階段 |
吸引力 | 小 | 大 |
參與動力 | 創始人堅持 | 非物質回報 |
如果,我們能夠為這個開源項目,投入一些“生力軍”,幫助項目從初創階段,成長到活躍階段,這個項目就能夠依靠自身的吸引力,繼續發展下去。
于是,我們就引入了一個“生物體的豐度”概念。一個健康的開源生態,有足夠密度的開源愛好者,或者說他們有充足的業余時間參與一個新興的開源項目。這個生態圈,就能夠不斷地培育出新的開源項目。
否則,就會有很多新興開源項目,還沒有熬到長大,就悄無聲息的消失了。
從這個意義上來說:要想改善開源生態,至少有兩種方案:
想辦法增加整體的生力軍數量,以提升豐度。這可以稱為環境改良;
想辦法為特定的,更有希望的“種群”,定向追加人手,幫助他們更好的存活與發展。這可以稱為定向孵化。
如何定向孵化一個開源項目
繼續上面的話題,假設我們想投入一些生力軍到一個新興開源項目,需要考慮以下問題:
是找開源老手,還是找開源新人?
在一個原本就貧瘠的環境中,拆東墻補西墻,不是一個好選擇
如果是找新手,是否存在風險?
如果一個開源項目原有的成員,本身經驗就不足,新手的參與也許還幫不上忙,只會添亂
如果是找開源新手,但是卻是開發老手,是否可行?
通過付費找外包的方式開發,對于項目可行,但是對于社區氛圍,以及長期發展,可能不利
所以,理想的方案是:開源老手作為導師,輔導N個新手,加入一個社區。一方面幫助新人適應開源社區的開發模式,另一方面也能幫助新興開源項目,逐步走上正規。
但是,這樣的孵化,成本非常高昂,事實上Google Summber of Code基本上就是這個模式。只不過,如果要想在中國更好地發展這樣的模式,導師的心力投入需要更高才行。
新建一個開源項目,應該選擇何種語言?
如果我們的開源項目,初始語言是英文,那么圖上的綠色點與藍色點,都可以參與。如果初始語言是中文,那么圖上的藍色點與紫色點,都可以參與。
從“生物體的豐度”概念來看,現階段當然是選擇使用英文。除非等到使用中文的開源開發者數量大大增加,使得選擇中文作為初始語言更加“劃算”。
另外一種可能性,也許會與項目的具體目標用戶群有關。假設我們做的是一個微信小程序上的開源項目。或者是一個用于抗擊新冠、快速核酸篩查的開源項目,那么選擇中文,才是更加合理的。
結束語
總之,從生態學的角度來看開源,可以幫助我們打開思路,考慮更多的可能性,以及做出不一樣的選擇。
歡迎大家一起來討論。
轉載自:開源雨林
作者:莊表偉
編輯:李佳陽
責編:王玥敏
設計:李昊原
相關閱讀 | Related Reading
一個開源貢獻者的自我修養 :在Apache Spark推進SPIP時我們學到了什么?
技術播客月?|?開發者社區運營是怎么樣一個體驗?我所理解的開源軟件供應鏈安全開源社簡介
開源社成立于 2014 年,是由志愿貢獻于開源事業的個人成員,依 “貢獻、共識、共治” 原則所組成,始終維持廠商中立、公益、非營利的特點,是最早以 “開源治理、國際接軌、社區發展、開源項目” 為使命的開源社區聯合體。開源社積極與支持開源的社區、企業以及政府相關單位緊密合作,以 “立足中國、貢獻全球” 為愿景,旨在共創健康可持續發展的開源生態,推動中國開源社區成為全球開源體系的積極參與及貢獻者。
2017 年,開源社轉型為完全由個人成員組成,參照 ASF 等國際頂級開源基金會的治理模式運作。近八年來,鏈接了數萬名開源人,集聚了上千名社區成員及志愿者、海內外數百位講師,合作了近百家贊助、媒體、社區伙伴。
總結
以上是生活随笔為你收集整理的开源生态学初探——从生命游戏开始的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Elasticsearch---Anal
- 下一篇: 如何屏蔽磁盘坏道呢