天天看點

開源會走上違心之路嗎?

作者 | Richard Gall

譯者 | 王強

策劃 | 淩敏

開源項目越“成功”,它給維護者帶來的壓力就越大。

2021 年年底,Log4j 安全漏洞又一次将開源世界面臨的挑戰推到了聚光燈下。Mike Melanson 在他的 New Stack 專欄中寫道:

這場危機就好像有人在對開源社群說“我早就說過會這樣”——開源社群原本以為自己幾乎不花什麼錢(甚至完全不花錢)就可以一直支援和維護各種項目,這一次可是露餡兒了。

雖然開源面臨着各種各樣的問題,但它對許多開發人員來說終歸是非常重要的一部分。甚至對于一些人來說,開源一直是他們職業生涯中的一個關鍵環節。

“如果當初我沒有為開源軟體做出貢獻,我真的不會從事 Web 開發事業,”軟體開發人員和 O'Reilly 的兩本著作(jQuery 和 Vue.js 主題)的作者 Callum Macrae 通過電子郵件告訴 The New Stack:“如果當初我換了一條路徑接觸 Web 開發工作,我的職業生涯肯定會非常不一樣(而且可能沒有現在這麼好)。”

Macrae 顯然非常看重開源對他這樣的開發人員的意義,但他也對開源的未來持懷疑态度,至少從維護者的角度來看不怎麼樂觀。

“我認為目前的開源模式對于參與者來說是不可持續的,”他說:“這種模式要求人們竭盡所能地去做貢獻,卻幾乎不要求任何回報,在上一個人精疲力盡的時候還得指望有人來接手他的工作——而且總有人能接得上!”

開源項目越“成功”,它給維護者帶來的壓力就越大。開源現在已經成為全球經濟的一個基本組成部分,是以在過去五年中,業界很自然地出現了很多旨在幫助那些開源軟體開發者的計劃,例如 GitHub Sponsors 和 Tidelift。但總體而言,人們在開源社群所做的大部分工作仍然是無償的。

1 開源行業有了哪些變化?

開源項目辦公室正在崛起

有很多人在問開源行業的下一步應該何去何從。數量越來越多的開源項目辦公室(OSPO)表明,企業對開源的内涵及其涉及的内容也越來越重視。

根據 The New Stack、Linux Foundation Research 和 TODO Group 在 9 月釋出的一項調查,已啟動 OSPO 的組織中有 77% 報告說,這些辦公室對它們的軟體開發工作産生了積極影響。

但需要注意的是,OSPO 這一趨勢還隻是剛剛起步,還有很大的發展空間。上述調查也調研了沒有開設 OSPO 的組織,其中 35% 的受訪企業說他們沒有考慮過這件事,28% 的受訪者說他們并沒有看到這方面的商業價值,19% 的受訪者則表示他們從未聽說過這個概念。

這些統計資料應該能讓我們管中窺豹,并讓我們意識到擺在面前的任務有多大規模。

除了關于 OSPO 普及度的問題之外,這些調查結果還讓我們就組織内部鼓勵和支援開源的方式提出一些更基本的問題。9 月份研究的統計資料是一個警告,表明我們可能在退步:

  • 42% 的受訪者表示,他們組織的工程師經常或有時為上遊開源項目做出貢獻,這一數字低于 2020 年的 48%。
  • 36% 的受訪者表示他們會教育訓練工程師為開源項目做出貢獻,低于去年的 42%。

這表明支援開源産業的各種新機制和機構的發展,與實際的工作之間存在脫節。部分原因可能是因為宣傳語和現實情況之間存在差距,但也可能是因為這場“運動”的價值觀和獨立性正在消失。

“有趣的部分大都消失了,但壓力和期望卻增加了,”Macrae 說到。開源運動如何保持其創造力和協作精神,同時確定這個世界所依賴的那些基礎軟體的維護者獲得他們需要的支援呢?

成為開源貢獻者 / 維護者的意義發生了變化

這些年來,成為開源貢獻者或維護者的意義有了變化。

2019 年,技術作家和研究員 Nadia Eghbal 在 Increment 的一篇文章中指出,2010 年代後期的研究表明,開源社群不是在整合,而是在分裂。Eghbal 認為,在一定程度上這一現象是由 GitHub 的性質造成的:

通過标準化版本控制、開發人員身份識别機制和良好的使用者體驗,GitHub 讓開發人員更容易進入各個項目并送出貢獻。結果,項目現在獲得了更多貢獻者,但其中許多貢獻者與項目的互動變得更膚淺了。

2016 年對 GitHub 上熱門項目的一項研究發現,樣本中近一半的貢獻者隻貢獻了一次,占總送出量的不到 2%。

這種演變導緻了幾種後果。一方面,它存在技術影響。DataStax 開發者關系副總裁 Patrick McFadin 告訴 The New Stack,雖然“較小的貢獻可能有價值,但較大的貢獻,例如新特性,需要更長的專注時間。”

但影響不止在于技術層面。如果貢獻更加零星和“膚淺”,那麼可以毫不誇張地說,開源行業的社群意識正在減弱,而這種意識曾深刻影響了為開源項目做出貢獻的活動。

這是 Macrae 所暗示的:“雖然大多數項目過去都是由社群主導的,但現在讓人感覺它們經常得到大公司的支援——最明顯的例子就是 React/Facebook。”

今天的世界中,開源已經被宣傳為速度和創新的另一大關鍵要素,而上述觀點則很容易被忽視。

然而,如果你看一看開源軟體誕生時的軟體世界——充滿對立,甚至是政治對抗的氣氛——你就應該知道,在科技行業的和諧表面下存在一些關鍵的緊張要素。這些問題如果不能解決,可能會讓行業的未來更加無趣,人們的參與和協作變得更少。

2 開源與開發者關系

開源是一個學習知識的去處

緻力于支援和推廣開源的組織 TODO Group 的項目經理 Ana Jiménez Santamaría 說,參與開源項目有助于開發人員學習知識——學的不僅是編碼。

她說,通過為開源項目做出貢獻,“人們不僅有機會提高他們的代碼技能,還可以提升他們的軟技能,比如學習如何在協作環境中工作。”

Macrae 早期為開源軟體做出貢獻的經驗可以驗證這一觀點。“我以前從未寫過 PHP 或 HTML/JavaScript,不知道 SVN 和後來的 Git 是什麼,沒有任何計算機科學知識,”他回憶道。

他學習過程中的一個關鍵部分是社群:“我有一個社群幫助我學習,同時也為成千上萬人使用的東西做出貢獻。”

如果我們眼睜睜看着開源社群隕落,它們還會是開發人員可以學習知識的空間嗎?答案可能是在其他地方尋找更好的教育訓練和支援,比如說尋找線上學習資源,或者在真正在乎你的技能和職業的組織中找到工作。

但這種替代品并不能完全讓人滿意:隻要開源還是參與性的,在那裡的學習過程也會是一樣的。你不是在學習什麼課程或技能清單;你正在學習如何與其他人一起建構、修複和改進某些東西。

開發者關系的影響

過去幾年開發者關系的增長可以被視為“傳統”開源社群衰落的一種症狀。這也表明企業對圍繞特定工具參與社群和培養社群的必要性有了更高的認識。

為了完成資料科學碩士學位,Santamaría 研究了開發者關系在開源社群中的運作機制。

“它的主要目标是建立一個模型,根據不同管道執行的活動來描述不同類型的開發人員,”她說,并補充說,“這種分析的商業價值是擷取一組可以被 DevRel 專家使用的名額,通過以社群為中心的模式報告他們的工作。”

這無疑是很有趣的,但想想這對于 30 年前從事自由軟體工作的開發人員來說會有多麼陌生吧。

這并不是說這種理念有多麼新穎;畢竟社群管理現在是各個領域中現代化工作機制的一部分。相反,它要指出的是,我們眼中的“社群”已經從非常有機和有趣的事物轉變成了井井有條,更具生産力和效率的事物。

然而,也許正是把社群在某種程度上看作是“有機的”理想主義,造成了我們今天在開源軟體中看到的許多問題。

“開源世界是一個衆多社群組成的社群,是以它需要專家來培育和發展這些社群,這是項目可持續性的一部分,”Santamaría 說。

“随着組織内開源采用率的增長,我認為‘開源’開發者關系現在是關鍵,一是教育開發人員在内部和外部開源代碼,二是成為組織與他們關心的開源項目之間的樞紐。”

有趣的是,這個模型與 Eghbal 眼中開源的發展曆程是一緻的,也就是少數維護者負責項目的大部分工作。該行業可能正在從大衆參與的狀态轉向某種托管文化。

這可能是件好事。但它也産生了新的問題:這種方法會破壞真正的“開放性”嗎?它可以擴充以應對我們面臨的根本挑戰嗎?

入門開源

将開發者關系模型引入更多開源工作的好處之一是,它可以幫助解決為開源做出貢獻過程中的最困難的問題之一:簡化入門過程。

“盡管網上有很好的初學者指南和課程,但沒有清晰的職業道路,”Santamaría 說。

當開發人員需要不斷提高知識水準,以應對在技術等快速發展領域的就業壓力時,毫無疑問,為項目做出貢獻并不是許多新人的首要議題。

可以說,我們現在處于最糟糕的境地。曾經幫助很多進階開發人員學習程式設計的那麼多社群都不在了,也沒有更規範的基礎支援設施可以幫助人們在行業中找到方向。

然而,Santamaría 确實提出了一些可能的前進方向:一條結構化的開源職業道路,包括“為新一代倡導良好的開源實踐”,并提高進階管理層對開源的認識,以“節省開發人員的工作時間”來探索開源項目。

其他地方提到了職業生涯節點這個概念。在一篇回應 Log4j 故事的部落格文章中,谷歌開發人員 Filip Valsorda 寫道:“你不能從初級維護者開始,接受教育訓練,獲得經驗,并期望自己最終能成長為薪酬更高的進階維護者。在今天這是行不通的。”

這些變化需要時間。在短期内,像 GitHub 上的 First Contributions 這樣的項目可以為想要參與開源的人們提供一個入門管道。

3 開源與“公地悲劇”

很明顯,企業需要在開源中發揮更多作用。正如 Valsorda 在同一篇博文中指出的那樣,“開源可持續性和供應鍊安全的概念出現在了每個人的幻燈片、部落格和新聞稿中。大公司迫切需要開源生态系統走向專業化。”

支援使用開放技術的非盈利組織 OpenUK 的首席執行官 Amanda Brock 表示贊同:“我們不僅需要最優秀的軟體——全球協作和多樣化的開源軟體就是這樣的——而且還提供了适當的資金,以確定那些建構所有這些基礎軟體的人們能夠維護和支援這些軟體的安全性。”

Brock 列舉了一些在英國的類似案例。例如,她提到了能源數字化工作組的工作。該政府組織“建議數字化能源部門的支柱應該基于開源軟體打造。英國的國民健康服務體系現在也有一種開源軟體優先的方法來編寫它的代碼,并且在不斷增加對開源的依賴。”

然而,雖然基礎設施項目采用開源軟體方法是對這一模型的明确認可,但它們不一定能解決現有項目面臨的問題,或支援那些負責維護它們的開發者。

Brock 的觀點是很有說服力的,他說我們需要“改變将開源軟體視為公地的觀念,而是将其視為公衆利益”。然而,在某些方面,這裡的“公地悲劇”在于我們未能認識到“公地”和“公衆利益”實際上可能是一回事。

希望開源世界仍然是一個讓有創造力、思想獨立的人們學習和探索的空間,同時也能創造出可以造福所有人的東西。如果我們對開源可持續性的解決方案破壞了這種核心精神,那麼開源又有什麼意義呢?

原文連結:

https://thenewstack.io/can-open-source-sustain-itself-without-losing-its-soul