1. 程式人生 > 其它 >記一次 10 人跨組織、跨地域的開源協作經歷

記一次 10 人跨組織、跨地域的開源協作經歷

前 言

近期,我在 CNCF 的官方開源專案中(https://github.com/cncf/tag-security)發起了一項“雲原生安全白皮書”協同翻譯的工作——通過開源專案協同的方式,徵集了來自不同地域、不同企業的譯者 10 人,組成了一支專案小組,併合作完成了 PR 被合併。

這次新鮮的開源協作經歷不同於之前個人提程式碼 PR 的方式,作為組織者(小組 leader),我需要考慮大量和中立、跨組織協作相關的問題。因此,這次完整的經歷,讓我對開源精神的核心有了更清晰認識,也讓我深刻感悟到開源的精神——“開源即中立,開源即民主,開源即自由”。

今天,我也將這次經歷做一個簡單的回憶和總結,以和“騰源會”的讀者朋友們共享與交流:)

發起起源與 Team up

“雲原生安全”是最近幾年雲原生落地過程中的熱門話題之一。在當前分散式雲原生架構越來越流行的背景下,雲原生安全態勢愈發凸顯和嚴峻。

基於對全球雲原生安全發展趨勢和概況的梳理、總結,雲原生計算基金會(CNCF)“安全興趣小組”(Security Special Interest Group (SIG))在 2020 年 11 月對外發布了《雲原生安全白皮書》(“Cloud Native Security White Paper”),該白皮書介紹了針對雲原生架構的安全指南和新的控制方式。

基於自身對該領域的興趣,騰訊雲在雲原生安全領域的持續關注與投入,以及雲原生安全問題需要在國內得到更多的正視,因此,我於今年年初在 CNCF 官方國區大使協助下,在官方專案中發起了 issue,召集組織該白皮書的中文翻譯小組。

報名過程異常火爆,最終我們從來自國內各個廠商(包括很多友商)的 30 多個報名的小夥伴中,選出了 10 位組成了一個跨組織隊伍。

挑選原則是中立與開放多樣,覆蓋更多的公司與行業,所以在報名的友商都至少有一位入選。

分工與協作

在跨組織隊伍真正開始協作之前,需要對分工、模式、流程等建議一套共識。

因此,我們建立了溝通群,並將第一次動員組織會議放在了元旦假期的一個晚上。在動員會上,為破除大家的不信任感和讓大家認知到該小組的“中立”屬性,我先和大家同步了小組的定位:雖然成員們來自不同企業或組織,但是在非工作組中,需要大家卸下各種組織角色,以開放、中立的心態參與其中。

有了明確的定位之後,第二步則是分工協作方式的確立。為了繼續保證中立性,我們做了一些跟日常工作不同的分工設計:

  • 每 2 個人隨機分組,工作量均分為 5 份(提前做預估);

  • 組內工作內容輸出前互相批改,初步確保正確與中立性;

  • 各組完成工作後,會再隨機互相批改一次,再次確保正確與中立性;

  • 任何批改意見爭議,在我們溝通群討論並表決(組織者輸出共識)。

這些分工方式本身並沒有其他專案/社群的經驗可借鑑,大多都是動員會期間小組成員討論共創出來的。在這個過程中,隨著我們共創出更多的可執行的流程和規則,我也逐步打消了之前的擔憂點——友商是否會有偏見?配合度是不是會較低?事實是,我感受到了來自友商小夥伴的熱情與善意,想必除了開源的協作,我們很少能被這種濃厚的開放和中立氛圍感染了。

而整個白皮書翻譯 PR 被合併的產出流程,我們也最終達成一致意見——使用多人線上文輯和表格作為線上協作工具,並規範其使用。我們用線上文件記錄大家的翻譯原稿和所有的批改意見,也會做開會記錄,同時使用線上表格做流程追蹤管理,實時更新進度和補充 TODO 項。

出現的問題與對應解決方案

然而,在協作啟動之初,我們就遇到了第一個難題——首先是在翻譯專有名詞上,我們就出現了不同領域專有名詞翻譯各異的問題。

小組的每一個人來自不同的行業或公司,對於專有名詞的稱謂、定義均會有所不同。雖然譯者小隊只有 10 人,且來自不同的組織和背景,但我們不希望官方白皮書因為文字風格各異、語言習慣不同、翻譯水平參差不齊等問題,而變得非常難以閱讀或者產生歧義。

對此,我們採取的解決方案便是用線上表格將專有名詞做了對映,大家會先在表格中填寫翻譯名稱,如果有多種意見的話就會發起民主投票。實踐過程中大家都非常認可這種方式,並能尊重投票結果。

在後期交叉評審階段,另一個新的問題又出現了——由於大家語言習慣不同,導致白皮書的整體翻譯風格仍然非常零散割裂。

當然,為了確保內容的統一性、準確性,我們在校對修改過程中使用了二次交叉評審的方式。但即使這項工作萬無一失,但仍在閱讀上存有比較明顯的突兀感。

於是,我組織了一個小短會邀請大家商討解決方案。通過群策群力,小組成員最後商討並決定遴選出之前翻譯效果較好的同學執行、把關風格終審和批改,並提交首次 PR,收集社群反饋。

在進行了多輪交叉審批後,我們輸出了第一個 PR 到專案,在 PR Review 過程中,我們也獲得了很多修改建議和補充,例如一些筆誤、更好的中英文混合排版,針對這些社群建議我們也對內容進行了後續的進一步完善並完成最終修改。最後,翻譯版的《雲原生安全白皮書》得到了官方 author 的審批通過 Approved。(https://github.com/cncf/tag-security/pull/471

開源即中立,開源即民主,開源即自由

網際網路發展至今已經讓資訊越來越民主化、讓每個人觸手可及,同時讓開源專案的門檻在快速降低,很多從未貢獻過中立專案的開發者也能輕鬆參與到雲原生計算基金會的官方專案中,得益於越來越多的遠端協作工具、網際網路公共服務。

我相信開源協作這種神奇的、新的社會生產方式一定會成為新的主流,允許來自世界各地、完全不相識的開發者,在無組織結構的前提下完成高效協作。

通過這次開源協作經歷,我也感受到開源的強大、來自群眾的巨大力量——整個過程就像一場大型的民主眾籌,自下而上地推動某一個產物的誕生。相信這種開源力量在未來可以真正推動更多技術、生產方式的變革。

作為組織者,我在這個過程中與大家一起共同投票與決策,感受到每個人之間的公平對待與尊重。

這種開源文化背後的“公平”很可貴。因為“公平”則意味著開源貢獻應是開放的、平等的,沒有任何等級和所謂權威的。這樣的協作方式也受到大家的歡迎,可以看到了一種新的趨勢:工程師開源文化正向主流文化進行延伸。

最後,遠端協作是自由的。

每個人都可以選擇任意地點和時間進行。大家所有人都是利用個人的自由業餘時間在完成生產貢獻,大部分產出發生在春節假期,有的人甚至在沙灘邊、古城腳進行著他的貢獻。這樣的自由,讓人跳出日常的工作狀態,更多激發創造力與想象力。不難理解,近年來,很多絕佳的想法和創新都來自這樣的團隊。

給開源新手的建議

雖然同是開源新手,但基於這次的經歷,我也想給其他希望參與開源的新人幾點簡單的建議:

  1. Pick interesting ones:挑選感興趣的專案。不管你是否擅長這方面的程式設計,只要有興趣就有可能貢獻,就是合適自己的專案。

  2. Find your edge:找一個切入點先參與,根據自己的優勢(例如我自認英語讀寫還行),從淺到深參與到專案貢獻。

  3. Keep an open mind:保持開放、中立的心態。

我的下一步計劃是能夠繼續在國內外社群參與到雲原生,尤其是雲原生安全相關的佈道和推廣中。同時我也會繼續推進雲原生安全白皮書國內的改進和落地,爭取成為企業採納雲原生方案過程的最佳實踐,並參與到更多雲原生專案中,體驗到開源另一個核心文化“Code is the law”。

參考資料:

  1. CNCF 釋出雲原生安全白皮書的官方通知:https://www.cncf.io/blog/2020/11/18/announcing-the-cloud-native-security-white-paper/

  2. 雲原生安全白皮書英文原版 GitHub 連結:https://github.com/cncf/tag-security/blob/main/security-whitepaper/CNCF_cloud-native-security-whitepaper-Nov2020.pdf

關於作者

陳偉嘉,騰訊雲 IDaaS 技術專家,騰訊雲 TVP,負責騰訊雲 IDaaS 架構設計和安全落地。此前參與過 React 等開源專案貢獻,並作為官方貢獻者。

歡迎關注「騰源會」微信公眾號,這裡是全球開源內容資訊的聚集地,包括但不限於全球開源資訊,開源專案及技術文章,開源活動報道及開源人物採訪。