如何利用開源,幫助軟件開發團隊成長
作者 | Al Sene
譯者 | 明知山
策劃 | 丁曉昀
近年來,開源軟件的使用和開源貢獻程度在顯著增加,並繼續成爲開發者個人和專業項目的來源。對許多新進入軟件開發領域的人來說,爲開源項目做出貢獻已經成爲一種儀式。開源社區在幫助初級開發者解決技術問題的同時,也爲他們提供了很好的學習和交流機會。
在許多方面,爲開源項目做貢獻也變得比以往任何時候都容易。軟件協作和開發平臺(如 GitHub)的發展使得參與開源貢獻的機會變得更加大衆化,而行業活動(如 Hacktoberfest)或社區論壇也成爲開發者尋找他們第一個貢獻項目的地方。
開源軟件對科技行業和開發者來說至關重要,這一點毋庸置疑。然而,開源社區仍然面臨着各種各樣的挑戰。圍繞開源建立的社區和開源所提供的好處是非常有影響力的——技術領導者會鼓勵更多的人蔘與其中,包括他們的團隊和整個行業。
開源參與度
DigitalOcean 最近發佈的一項關於開源社區狀態的報告表明,大約 50% 的被調查開發者表示他們在過去的一年中參與了開源。在參與的開發者當中,幾乎所有人(93%)表示,自疫情開始以來,他們的參與程度要麼提高了,要麼保持不變。這表明,儘管過去幾年疫情對開發者的工作與生活帶來了影響,但致力於開源的開發者已經找到了將這種實踐融入日常和“新常態”的方法。
參與開源貢獻所面臨的挑戰
然而,即使是最堅定的開發者也承認,時間約束是參與開源項目的最大障礙之一。DigitalOcean 的研究發現,大多數參與開源項目的開發者每週會花 1 到 5 個小時在開源項目上,並將“缺乏資源 / 時間”和“技術債務”列爲他們目前面臨的兩大挑戰。
除了時間約束之外,開源世界有時可能不歡迎那些努力參與的人。Carnegie Mellon 對開源動態的一項研究表明,開源項目貢獻者之間的交流可能會演變爲“上下文相關的、微妙的和消極的”評論,或者貢獻者可能會發現他們面對的是僵化而死板的貢獻策略。當項目面臨嚴重的文檔負債時,開源項目貢獻者之間的交流也會迅速中斷。當(大多數)開源項目受到時間和資源的約束時,首先受影響的是文檔化程度。如果沒有完整的文檔,新人將面臨非常陡峭的學習曲線,這導致他們很難參與貢獻,除非他們已經非常熟悉項目。
與技術行業的其他領域一樣,軟件項目也缺乏多樣性和包容性。DigitalOcean 的研究發現,雖然大多數開發者認爲開源的包容性在過去幾年中有所提升,但少數羣體的成員對這種看法存在異議——有 26% 的少數羣體成員不認同開源的包容性,而非少數羣體的這一比例只有 12%。管理開源項目的貢獻者已經在尋找各種各樣的解決方案,試圖減輕有害行爲,例如通過禁令和積極的審覈來強制執行行爲準則,但即使是這些解決方案也嚴重依賴於審覈人員在這些項目上的時間投入。
在目前的狀態下,開源貢獻似乎介於“愛好”和“志願者工作”之間。爲開源項目騰出時間的開發者正在做着重要和創新的工作,但這些工作往往沒有得到各方的承認,尤其是那些從這些工作成果中受益的公司。開源軟件的誕生方式(即軟件是如何由大多數沒有或缺乏資源的人在網上構建、開發和更新的)與開源技術在當今公司發展中所扮演的角色相去甚遠。
開源爲我們帶來了什麼
技術領導者和開發者一直承認開源軟件對他們的公司產出了巨大影響。64% 的開發者表示,他們公司 50% 或更多的項目使用了開源軟件,這一比例在初創公司和小型企業中甚至更高。35% 的初創公司和中小企業在其 50% 或更多的項目中使用了開源代碼,而大型企業的這一比例爲 28%。
當大公司公開談論開源時,通常會從安全性的角度出發。亞馬遜、谷歌和微軟等公司已經加入了各種基金會和組織,如開源安全基金會(Open Source Security Foundation,OpenSSF),這個基金會專注於改善開源開發和實現中的網絡安全實踐,並確保開源的“供應鏈”安全。這些團體和組織對於開源軟件的長期成功和可持續發展來說非常重要,但並沒有太多地關注如何解決開發者在維護開源項目中所面臨的困難。當開發者被問及安全方面的考慮時,大多數人(43%)相信僱傭專門的安全專家來監督項目或者增加對貢獻者本身的報酬和培訓有助於提高安全性。
在較小的範圍內,各種水平的開發者藉助開源代碼庫來解決問題、擴展他們的技能或處理新的場景——這些帶來了個人和專業方面的好處。35% 的開源開發者表示,他們通過開源貢獻提升了自己的技能,19% 的人表示他們與更多人建立了聯繫,還有 11% 的人甚至因此找到了工作機會。強大的開源社區也是讓開發者繼續做出貢獻的關鍵——32% 的開發者表示,開源貢獻讓他們感覺到“意義或作爲社區一份子的歸屬感”,20% 的人甚至扮演了導師的角色,幫助其他社區成員發展他們的技能。
儘管大部分都是無償的,但這些志願者工作、指導和社區在保持開源活躍度和參與度方面發揮了關鍵作用,即使開源開發者面臨時間和技術債務方面的挑戰。GitHub 2021 年度 Octoverse 狀態報告顯示,開源社區的指導承諾使開源項目的生產力提高了 46%。這種效應在工作場合中也能看到,“指導幾乎讓形成強大的文化具有成倍的可能性”。在合適的環境下,強大的開發者社區會讓開源變得更好,強大的開源社區也會讓開發者變得更好。
開源的未來
當關於公司和組織如何回饋開源社區的問題出現時,支付報酬成了一個首當其衝的話題。開源貢獻的報酬是一個備受爭議的話題。一方面,大多數開發者(在 DigitalOcean 的報告中有 53% 的開發者)似乎都同意或非常同意個人應該爲從他們的開源貢獻中獲得報酬,而另一方面,也有開發者擔心開源盈利或融資模型可能會導致開發生態系統變得更加封閉,而不是更加開放。
企業可能不願意爲開源軟件付費,或者爲開源貢獻付費,但一些行業領袖已經在探索其他替代方案,作爲一種與社區更深入合作並“回饋”社區的方式。例如,去年思科聘請了一個開源主管,作爲開源計劃、思科客戶和不同商業團體之間的“結締組織”,希望爲那些“隱形工作”的開發者和維護者提供支持。然而,這些角色或計劃在很大程度上依賴於內部有人倡導開源,並說明構建開源社區的 ROI。最近,這些工作落在了開發者關係(DevRel)和開發者倡導團隊(這些團隊開始在一些大型科技公司中不斷髮展壯大)的肩上。
開發者認爲,公司可能可以將工作時間的一部分分配給開源,這是解決時間和優先級問題的一個潛在的解決方案。79% 的被調查開發者同意或強烈同意公司應該將部分工作時間分配給開源。在未來,開源貢獻可以包含在開發者的工作描述中,或者公司可以將開源時間納入到員工志願者工作和大型企業常見的社會公益項目中。特別是在後疫情工作場所當中,員工現在比以往任何時候都更有可能希望將自己的時間和技能貢獻給他們認爲有價值的工作或回饋給社會。如果不鼓勵將工作時間分配給開源項目或進行志願者項目,公司可能會錯過一個可以解決開源信任問題和員工參與度問題的解決方案。
激勵參與開源的問題也可能是一個代際問題——經驗較少的開發者(不足一年)比經驗豐富的開發者更有可能在過去的一年中參與過開源項目。我們可以推測,也許更有經驗的開發者在成長爲更高級的角色時,會遇到更大的時間限制和帶寬問題,這將取決於公司如何提供公平的競爭環境讓所有類型的開發者都有機會參與到在公司級別的開源計劃中。這看起來就像是在生產進度中爲開源貢獻和評審分配時間,或者讓開源責任成爲某些角色或頭銜的關鍵組成部分。
最終,技術領導者、公司和個人開發者將不得不協同工作,有效地最大化開源爲行業帶來的創新和好處,同時又不失去社區和協作的整體價值(這是開源項目的關鍵)。就目前的情況而言,開源項目代表我們正在通過最好的、最具合作性質和最富激情的方式使用技術。開發者可以獲得指導和新的機會,以最符合他們興趣的方式發展他們的技能。正如大多數工程專業人士和團隊領導者已經認識到的那樣,工作場所可以多一點這種精神。
作者簡介
Al Sene 是 DigitalOcean 的工程副總裁兼架構總經理。Al 負責推動 DigitalOcean 關鍵服務和產品的創新和速度,以滿足客戶不斷變化的需求。在加入 DigitalOcean 之前,Al 曾擔任 DDN 和 NexGen Storage 的工程副總裁,後者被 Fusion-io 和 SanDisk 收購。他還在惠普擔任過幾個技術和管理職位,並持有存儲專利。他在 St. Cloud State University 學習計算機科學,並在 Colorado State University 獲得工商管理碩士學位。
https://www.infoq.com/articles/open-source-contributing-development/