開源專案 Node.js 再次社群分裂,原因是領導層不當言論

作者 | 發布日期 2017 年 09 月 07 日 13:00 | 分類 社群 , 網路 follow us in feedly

這年頭開放原始碼軟體越來越受到大家矚目,各開源社群也蓬勃發展,然而如何維繫一大群志願者就是學問了,有的社群做得很成功,有的社群則否。Node.js 社群近年來一直有領導與治理的難題,繼 3 年前技術選擇的分裂(Io.js)再復合以後,8 月底又發生第二次大分裂,緣由為是否遵守社群行為守則



Node.js 是近幾年開源 Web 技術的重要領航者,數十家財星 500 大企業(如 Micorsoft、Netflix、PayPal 等)的關鍵基礎架構和核心業務都仰賴 Node.js,該社群治理是否穩定不但是採用企業關注焦點,也攸關核心社群能否好好發展和推廣,然而現在的 Node.js 顯然不太穩。

這場大風暴,原因是 Node.js 基金會技術指導委員會(technical steering committee,TSC,負責該專案日常管理)的成員兼 TSC 前主席 Rod Vagg,近來在 github 與他私人 Twitter 有許多爭議言論(包含可能侵犯他人、性騷擾),違反了該社群的行為準則,由於是領導階層,言行可能代表基金會,更被放大檢視。

於是在 8 月 21 日,TSC 舉行一場投票來決定是否開除 Vagg。投票結果如何呢?該委員會共有 13 人,Vagg 本人不參加,兩人棄權,6 人反對開除或要求他辭職,只有 4 人贊成,分別是 Anna Henningsen、Bryan Hughes、Myles Borins、Jeremiah Senkpiel,隨後不久,這 4 個人包括該專案第一名女委員(Anna Henningsen),集體退出 TSC,TSC 頓時少了四分之一成員。此外,4 人中的 3 人保持留任核心技術委員會(core technical committee,CTC),Bryan Hughes 乾脆離開了這專案。最終導致一群 Node.js 的人出走,分裂出 Ayo.js 專案。

更糟糕的是,事後 TSC 的一名成員把對 Vagg 的指控從投票事項的 Github#310 中移除,雖然目前被修改前的原文仍可以透過網頁庫存檔瀏覽,但部分被指控的 github issue 事由原文已被刪除,此舉讓人更感到厭惡。

怎麼會這麽嚴重呢?是什麼樣不適當的言論,導致 Node.js 社群嚴重分裂?

不當言論有言論自由嗎?

讓我們先看看 Vagg 方面。雖然他拒絕接受記者採訪有關他在諸多發文中冒犯社群其他成員的事蹟有多嚴重,發表在 Twitter 或 Github 相關言論也可能有刪改,不過我們可以看看他在 Twitter 的理論──技術專案的行為準則,要求大家言行要完完全全「乾淨」不可能,過於政治潔癖的社群行為準則比起「不當」言論更傷害一個專案。

他的 Twitter 甚至援引了這篇論文為自己的行為辯解,該文是講對科學發展而言,徹底的言論自由勝過政治正確。比如說對數學、物理學有很大貢獻的科學家牛頓來說,他其實有精神病──強迫症、偏執狂、亞斯伯格症狀、精神躁鬱症,甚至還有嚴重的口吃。試想如果他待的大學實施現代言論守則,很有可能就因為他疾病導致的隨意口出髒話、對他人易有攻擊性言論,就失去大學教職,無法做出對日後科學發展的重大貢獻了。

再來我們聽聽反 Vagg 方的說法。其中,任職於 Google 的 Google Cloud Platform 之 Node.js 開發大使 Myles Borins 在他的網誌表示:「這個決議破壞了我們的社群守則,趕跑了潛在的貢獻者,依我個人觀點來看,此舉也破壞了這個委員會的治理能力。」服務於 Microsoft 的 Byran Hughes 則在他的網誌解釋他為何離開這個專案,他是這樣看 Vagg 的行為:「我不相信 Vagg 是故意的,或說他是古典定義的壞人。 相反地,他的不良行為源於無知和不願意學習。」然而 TSC 諸多成員除了一再告誡,不願意果斷解決這個問題,甚至還有人認為這根本沒有問題而護短。搞到最後,Hughes 覺得自己為 Node.js 付出兩年多已經「burn out」(開源社群用來描述精力燃燒殆盡),乾脆所有委員會統統辭一辭,徹底退出。這邊留意一點,這兩位辭職的人算是各自代表 Google、Microsoft 兩大資訊公司,後續是否造成企業不再信賴 Node.js 則有待觀察。

歸納起來,Vagg 認為社群行為守則有潛在的缺點──如果因為不當言論把卓越科技人士開除,是社群的損失,這是妨害言論自由;反 Vagg 方則認為,維繫社群的健康最重要,像 Vagg 這樣不斷失言的人,會讓風氣變糟,嚇跑既有與潛在貢獻者,而廣大的貢獻者對開源專案非常非常地重要。

Node.js 的沉痾與亡羊補牢

很多人以為未能將 Vagg 拉下 TSC,視之為多年來杜絕破壞社群行為的改革失敗。

「如果有人好好從 comment 留言舉報確切的罪行事證,或是一些明顯牽扯種族、性別發揮的不當言論,這樣事情早就結束了。」Node.js 董事會兩席新選上的董事之一 William Kapke 如此表示,他的職責是監督 3 個委員會。

儘管投票結果還是讓 Rod Vagg 待在 TSC 委員會,執行董事 Mark Hinkle 公開聲明表示,董事會對此「深感關切」,要求 TSC 暫停 Vagg 的職權直到情況得到解決。董事會也特別呼籲 TSC:「平等要求社群成員、協作者、領導層遵守行為準則。」

另一位剛當選的新董事 Ashley Williams 則表示:「這不是單一事件,這是一個長期存在、有模式可循的違規行為。」她以個人的身分而不是董事會表示:「Rod 的行為是不合作,始終如一地毫無歉意。這是一個系統性的領導失敗,而 Rod 就是最突出的例子之一。」

行為準則並不允許扼殺言論自由或邊緣化任何人的看法或意見(包含「我不同意你,但是我誓死捍衛你說話的權力」),旨在匯集來自世界各地的不同文化、信仰、性別和背景的不同人群,這是任何全球開源協作專案的核心價值。

然而 Node.js 治理中的毒素文化導致包容性問題。Williams 過去曾組織了一個約十幾個人的包容性小組,該小組旨在確保每位想貢獻社群的人都能被公平對待。然而該小組最終解散了,除了指責領導者「持續脫軌」,該小組認為會使社區更有凝聚力的建議也都被反對,這導致所有女性和第三性包含幾位男性參與者,都在去年 8 月解散後隨即離開這個小組,甚至許多人決定完全離開 Node.js 社群。

也就是說,不是單單 TSC 投票支持 Vagg 一個人就導致社群大分裂,此事件只是壓垮駱駝的最後一根稻草。Kapke 說,TSC 的成員無法從組織宏觀角度看一個成員的失序行為,導致系統性的信任崩潰;Williams 則認為 TSC 已經失能了。

TSC 主席 James Snell 已提出將 CTC 和 TSC 合併的方案,並舉行新選舉,包括選新主席和委員。另外還有一項建議──委員將有任期,監督兩委員會的董事會表示可能在即將舉行的董事會上接受此建議。

Williams 說,合併這兩個委員會將增加委員會的多樣性,更促成「根本上由社群驅動」的生態系統。但其他人則不樂觀。Kapke 說,合併委員會最多只是「輔助方案」,除非確保更能組織好各委員會,這樣才不會發生忽視行為準則的錯誤。

Ayo.js 的啟示:開源專案不能黑箱

就在投票後的同一週,Kat Marchán 按下 fork 按鈕,從 Note.js 分支出 Ayo.js 專案。Ayo 發音同字母 IO,紀念 3 年前從 Node.js 分裂出的 Io.js。Marchán 表示,已經有十幾名開發人員和一百多人參與該專案的聊天室;短短數週,Github 專案頁也已經有 1,502 名貢獻者。

Marchán 說:「如果少數掌握權力的人可以阻止社群做該做的事,那麼他們就不再代表我們了。」該專案雖然還在起步階段,但已經在研議一種新的開放治理模式,以避免在 Node.js 發生的不良狀況。

Ayo.js 的創立事件,已被視為對開源技術的提醒──必須透明、開放。如果社群在基金會沒有代表或社群的聲音不被聆聽,那就可以分支出去,創造自己的專案。

Williams 說:「Ayo.js 不是開來摧毀 Node.js 或殺死 Node.js 的,而是要讓 Node.js 更好。對那些看到 Node.js 治理失敗、憤而離去的人們來說,還有這個歸宿,其實可能更好。」 (不過 Williams 沒有參與,因為她在 Node.js 基金會仍有職位)。

分裂成兩個專案想必震驚了許多人,並對 Node.js 的未來感到不安。但是,Marchán 和其他人並不關心。如果 Ayo.js 有一天成功了,那會被看做是 Node.js 的成功──就像當初 Io.js 分裂出去還做得很成功,使它後來又被併回 Node.js 一樣。

「從長遠來看,我認為社群贏了。」Marchán 說。

冰凍三尺非一日之寒,Node.js 基金會走到目前這樣的狀況,可得花一番努力改革了。

(首圖來源:Flickr/theilr CC BY 2.0)