微軟 Azure CTO 辦公室開源主管 Sarah Novotny 近日在開源部落格上分享了過去一年中微軟在開源領域所做的工作,希望微軟的經驗可以為 2021 年進行構建和協作的開發人員或團隊有所幫助。
2020 年的全球疫情從根本上改變了許多公司的工作模式,人們不得不改變他們的溝通和協作方式。但是,對於從事開源的人來說,遠端工作才是常態。因為開放原始碼社群龐大且分佈在全球各地,需要來自世界各地的開發人員的有效合作。
那麼,開源的採用和使用在今年顯著增長也就不足為奇了,GitHub 2020 Octoverse 報告顯示,GitHub 上去年有超過 6000 萬個新儲存庫建立,開發者數量超過 5600 萬。儘管開源開發人員已經建立了許多成熟的遠端實踐,但今年,各種規模的公司都面臨挑戰,要求以新的方式整合其開源軟體體驗和開發模型。
一、接受不同觀點有助於更好的開發軟體
在開源領域的成功既取決於你對社群的貢獻,也取決於你從社群中學到了什麼。在每個拉請求、問題和程式碼片段的背後都是一個人。與他們建立聯絡非常重要,需要傾聽、學習和與他們產生共鳴。也許他們可以提供團隊沒有想到的不同的觀點和反饋。
Sarah Novotny 提到了一個社群反饋改變他們觀點的例子,Dapr 專案收到了大量使用者反饋,要求提供一個流線型的 API 來檢索應用程式應用程式機密。而微軟負責 Dapr 的團隊並沒有計劃在當前的週期內進行這項工作,但是社群明確表示這個新的 API 將解決開發人員面臨的許多問題。
Dapr 的維護人員與社群成員密切合作,在社群成員提交了多個 PR 後新增了這個功能,涵蓋了從程式碼到文件到示例的所有內容。在新增了這個功能之後,微軟的客戶也選擇了這個功能,並在他們的 Dapr 實踐中使用了它。
這表明,傾聽社群反饋非常有價值,只要有機會,在得到鼓勵和支援的情況下,社群成員就會為實現需求做出貢獻。
二、在政策和自主權之間找到平衡
為了幫助推動開源工作,微軟有一個專門的開源計劃辦公室(OSPO),其目標是幫助員工安全、有效、輕鬆地使用和參與開源。
Sarah Novotny 說,過去一年中他們收到了很多企業客戶(包括零售商,銀行到汽車製造商)的資訊,希望在內部建立類似的辦事處和業務。我們分享並討論瞭如何在制定政策和授權員工做正確事情之間找到平衡的最佳實踐。雖然 OSPO 會根據公司的需要而有所不同,但我們經常討論的一些常見做法包括建立跨職能小組,設定明確的策略並使它們易於查詢和理解,對工具進行投資以及提供獎勵和動力都可以滿足。微軟希望繼續建立自己的內部實踐,並在分享過程中幫助其他人也做到這一點。
三、確保安全至關重要
在開發過程中使用開放原始碼有許多優點,包括加速了產品開發、降低了所有權成本和提高了軟體質量。然而,開源軟體和其他軟體一樣也有風險,開源軟體可能存在導致漏洞的安全缺陷。最新研究顯示,安全漏洞通常在被披露之前的四年多時間裡都不會被發現。因為開放原始碼軟體本質上是由社群驅動的,所以沒有中央或單一的權威機構負責質量和維護。它的原始碼可以被複制和克隆,從而導致版本控制和依賴項的複雜性過大。更糟糕的是,攻擊者可以偽裝成維護者並引入惡意軟體。
隨著越來越多的系統和關鍵基礎架構開始更多的依賴開源軟體,通過社群驅動的流程建立更好的安全性比以往任何時候都更為重要。確保開放原始碼是確保每個公司供應鏈安全的重要組成部分。
2020 年,微軟與 GitHub、 Google、 IBM 和其他公司一起建立了開源安全基金會(OpenSSF)。該小組正在幫助開發人員利用資源識別開源專案的安全威脅,提供教育和學習資源,並尋找加快漏洞披露的方法。在即將到來的一年中,OpenSSF 希望提供實際的幫助,以提高世界上最重要的開源專案的安全性。
四、積極溝通
大公司和大型開源專案知道,重要的資訊必須通過不同的渠道廣泛而頻繁地交流。即使有了這些知識,微軟在 2020 年也不得不像許多其他公司一樣迅速改變。因為疫情,我們不再有那種偶然的互動時刻,比如在咖啡館裡碰到某人,和同事一起去開會,或者和某人一起等電梯時學到一些有用的東西。
現在,微軟已經認識到了頻繁溝通的重要性,這已經成為開源社群的一個標誌。積極溝通是非常重要的,因為不確定性可能比好訊息或壞訊息所帶來的壓力更大。
以 Kubernetes 專案為例,該專案從未設立過辦公室,如今它們擁有 407 個聊天頻道,涵蓋了從地區使用者群到開發者討論特定技術子系統的所有領域。這些聊天室,無論是 IRC channels,、Twitter hashtags,、Teams 還是 Slack,都是開源專案的辦公室。
但是,聊天內容的儲存是短暫的,聊天室不是新的公告電子郵件或文件儲存庫,很少有人會去翻閱聊天室的歷史記錄。理解溝通是如何改變的,以及對每種媒介的期望是什麼,可以使內部溝通成為良好協作文化的重要支援。
展望 2021
前文提到的四點是開源協作的一部分,但它們對於形成良好的企業文化同樣重要。很多問題都需要一個團隊或整個行業來解決,意味著我們所有人都需要成為開源中值得信賴的合作者和有自我意識的參與者。
幾年前,如果你想讓幾家大型科技公司在一個軟體專案上聯合起來,建立開放標準,或者在一項政策上達成一致,通常需要幾個月的談判、會議、辯論……
現在,開源已經完全改變了這一點。它已經成為跨公司協作的行業接受的模型,當看到新的趨勢或問題出現時,我們知道共同努力解決這些趨勢或問題會更好。這時,只要幾周時間更方就可以達成一致,共同使用已建立的模型來指導工作。
因此,公司之間的合作越來越頻繁,我們能夠完成的跨行業工作量也在加速增長。僅在 2020 年一年,微軟就參與了數十個行業組織和協會的活動,從 Linux 基金會和 Apache 基金會等老牌組織,到 Rust 和 WebAssembly 等新興社群。這項跨越公司和行業的工作將在未來一年繼續下去,我們期待在開源中學習,成長,並在開源中贏得我們的地位。