分享自己多年來在開放原始碼相關社群打滾的經驗
Ubuntu 與 Python 是我這幾年花比較多時間與心力參與的社群,除了籌備與參與各種活動,技術上還有直接貢獻各種專案程式碼,其中又以科學計算和生活中會使用到的套件為主;前前後後大大小小直接參與過得專案至少有二三十個以上,社群活動則有幾場年會與數十廠大大小小的 meetup 與 sprint / 衝刺開發。
每個社群、專案與活動採用的溝通方式不盡相同;下面整理了一些我的分類與心得。
依照社群內聚程度與展望決定平台
社群自身的「內聚程度」指得是社群本身是否有一致的目標或共同利益,如果共同目標或利益越高、越多、越明確,社群內聚程度往往越高,甚至會發展出組織。由內聚與組織程度高低,社群往往採納的溝通工具如下:
- 內聚程度高的社群:discord, mattermost, hipchat(「合併」到 slack 了), slack, IRC, mailing list, discourse
- 內聚程度低的社群:telegram 或各種即時通訊與社群媒體的 group chat。 Meetup
高組織度社群都一定有 mailing list
相對高內聚的社群,舉例來說,依照社群自發與獨立性去分而言,由高到低可以分成:
- 各地 Python Conference 籌備團隊: PSF ( Python Software Foundation )僅授權商標,活動由社群自行組織籌劃。
- Ubuntu Community Council:Ubuntu member 選舉出的代表,其中例外是 SABDSL 為當然成員。
- Debian Conference 籌備團隊:核心團隊為固定成為,與當地社群合作組織年會。
即使 Ubuntu Community Council 和 Debian Conference 籌備團隊順序或許有些爭議,不過這不是本文重點,希望日後有機會撰文討論這類議題,三者的共通點,是他們都是由高度內聚的社群而發展出的組織。這也就是說,內聚程度與組織度高度相關;內聚程度越高的社群,組織度往往也越高。
這些社群組織,就我的理解,採用下列這些溝通方式:
- PyCon Taiwan 2021 籌備團隊: discord、 mailing list
- Ubuntu Community Council: IRC、 mailing list、 discourse
- Debian Conference 2018: telegram (在地社群籌備團隊)、 IRC(官方籌備團隊)、 mailing list
可以看出高度組織性的社群,都一致有採用 mailing list 這種溝通方式。
另外順帶一提,根據前文段落依照內聚程度高低分類的觀點,可以推敲出因為使用 telegram,所以「大概 debian 在地社群是相對官方籌備團隊是比較鬆散/內聚程度低一點的社群」。
Mailing List 的特色
因為 mailing list 有下面特色,所以往往作為高度組織性的社群必備的溝通方式:
- 容易歸檔。每一封 email 其實等於一篇文件。
- 容易散播。歸檔後每封文件有自己的 url;若是公開的 mailing list 甚至對搜尋引擎也是相對社群媒體等等平台友善。
- 成員結構相對穩固。網路上 email address 往往被作是識別身份所使用的唯一標籤,註冊各種服務通常都一定接受 email address,因此人們通常不會輕易捨棄自己使用已久、註冊很多服務的 email address。
Email 相對即時通訊軟體或平台而言,是更 async 一點的溝通方式。因此需要即時一點的溝通時,就由像是 discord、 IRC、slack 這類手段來互相補足。
Async 溝通可以是「特色」而不是短處,甚至有些情境下是「長處」,例如可以保護當事人的注意力以維持生產力。很多事情(對團隊進程而言)其實即時的重要性並不是這麼高,這也是為什麼在未取得直接或間接的同意前,無限放大自己事情緊急程度、需要他人盡量立刻當下回應的溝通方式,容易被當作不禮貌或是打擾的行為。
Mailing List 是挖寶開源專案第一手資訊的好去處
因為上面特色,使得今日各種通訊方式滿天飛、使人眼花撩亂的今日,看似老派的 Mailing List 卻仍未過時的原因,許多知名的專案也都仍然持續使用與維護自己的 mailng list,並在上面留下了很多第一手資料吵架的數位足跡。
因此對於想要了解一個實做的發想進程,訂閱一個你有興趣的開源專案的 mailing list,或是在裡面對於自己感興趣的題目做數位考古,可以讓自己取得第一手資訊。某方面來說,就像是做學術研究時訂閱同領域期刊一樣的概念; mailing list 可說是一種 review journal。
去哪訂閱 Mailing List?
如果是公開的 mailing list,每個社群都有自己公告如何訂閱的資訊。例如以 Python 而言,從 Python.org 提供的 mailing list 資訊開始著手、從裡面挑一個自己有興趣的主題或許是一個好主意。
例如,如果是對 Python Enhancement Proposal ( PEP )發展有興趣的朋友,根據 PEP 1 的描述:
Each PEP must have a champion -- someone who writes the PEP using the style and format described below, shepherds the discussions in the appropriate forums, and attempts to build community consensus around the idea. The PEP champion (a.k.a. Author) should first attempt to ascertain whether the idea is PEP-able. Posting to the comp.lang.python newsgroup (a.k.a. python-list@python.org mailing list) or the python-ideas@python.org mailing list is the best way to go about this.
或許從訂閱 python-list@python.org
或 python-ideas@python.org
開始關注,會得到你有興趣的資訊(包括吵架 :) )。