最大限度最佳化組織中執行開源計劃或啟動開源專案的實踐。這些資源由 Linux 基金會與 TODO Group 合作開發,代表了我們的員工、專案和成員的經驗。
◈ 英文: https://todogroup.org/guides/management-tools/ ◈ 中文: https://linuxfoundation.cn/tools-managing-open-source-programs/ ◈ GitHub: https://github.com/todogroup/todogroup.github.io/blob/master/content/en/guides/management-tools.md
開放原始碼的戰略性應用之路,起始於一個精心策劃、組織與授權的開源專案辦公室,以指導和管理開源的建立、分發和使用。但這僅僅只是第一步。為了讓開源專案辦公室順利執行,您需要正確的工具。這些關鍵的任務工具將用於追蹤各部門的標的與指標,從工程部門和法律部門到行政領導部門、公關部門與營銷部門,同時給予員工收集資料、提供開源軟體執行快照和管理公司內部開源軟體日常使用所需要的全部資源。
本指南提供瞭如何開始您的開源工具集建設的詳細資訊和場景,包括用於跟蹤和管理您的開源專案的最重要工具的資訊。指南中提及的許多工具已由Linux基金會和該領域的其他領導者建立並開放原始碼,可以免費且便捷地為您的專案所使用。您還可以找到一個儀錶盤安裝程式的示例,該程式融合併展示了多種工具的資訊。
本指南的撰稿人
為什麼您需要特殊的工具來進行開源專案管理
一旦您的開源專案辦公室啟動執行,就應該同時收集合適的軟體工具,這些工具允許您的開發團隊管理、跟蹤、指導和推進其開源專案、開源貢獻與開源釋出。
在您開始您的開放原始碼之路時,使用正確的標的工具還將使開發人員和其他員工的工作更為輕鬆,也將提供更好的結果,並將成為公司開源專案的成功協作與溝通的基礎。
“如果你正在嘗試管理 100 多個程式碼庫或是 100 個人,那你確實不能再讓人用電子錶格手動操作了。但顯然,人們依然在這樣做。不過,這樣的操作方式開始用於臨時應急,並且變得費時費力。這便是工具發揮作用的地方。它們允許你批次操作。”
Jeff McAffer[4] – 微軟開源專案辦公室經理
“歸根結底,你需要工具來自動化你的生活,否則你將會浪費大量時間手動完成工作。”
Chris Aniszczyk[5] – 雲原生計算基金會營運長、前 Twitter 開源專案負責人
如何選擇和安排您的工具
公司所需的開源工具有哪些?早期的討論大多認為,這取決於公司的業務、產品和服務,以及公司如何服務它的客戶和員工。由於開源專案辦公室制定了規劃流程和戰略地圖,因此可以選擇那些能整合進公司的標的、流程和基礎架構的工具。
最終,知道您將需要使用哪些工具的唯一方法,就是瞭解您想要對開放原始碼進行何種操作。
以下是開源專案辦公室選擇所需管理工具的基本步驟:
這些工具一旦被選定,在落地使用之前,還需要一些額外的準備:
當您在選擇工具時,實施操作有助於記憶,當然這也可能會影響您的決定。例如,具有陡峭學習曲線的工具可能需要更多的培訓。
利用現有工具
在認識到達成組織的標的上你團隊的需求,以及自身情況和基礎架構的潛在限制之後之後,接下來要做的就是要探索並瞭解那些已準備就緒且可供您使用現有工具。由於大多數工具本身就是開源的,所以如果它們一開始並不能滿足您的確切需求,您的開發團隊可以聯絡這些工具的開發者,看看他們是否可以協作根據新的用途新增一些特性。
諷刺的是,許多開源專案辦公室並不經常直接使用其他公司開發的工具,或與其他公司合作來開發他們管理開源專案所需的工具。通常,他們想要這樣做,但包括 Facebook 和微軟在內的許多企業已經擁有現有的工具套件,這些工具套件在真正成為一個合作議題之前就已經實現。由於他們已經擁有了自己的工具集併進行了投資,他們似乎並沒有很大意願採用其他公司的工具。
這就是現在才剛開始構建自己的開源專案的公司具有顯著優勢的地方。由於他們現在正在建立自己的開源專案辦公室併進入開源領域,因此他們不必為受到這樣的限制而煩惱。
相反,他們可以聰明地利用別人的成功經驗與失敗教訓,並利用近年來領先的公司所建立的成熟工具來構建自己的開源工具箱。 Linux 基金會的開源行業組織,TODO Group,一直致力於組裝一個裝滿工具的 “Open Source Program Office in A Box” 入門套件,這將使公司能夠透過一套緊密結合的預先組裝工具開展開源工作。入門套件目前尚未開發完善,但希望最終可以讓公司付出更少的初始努力,更輕鬆地部署和配置他們所需的工具。從事這個專案的 TODO Group 成員包括 Adobe、Capital One、Comcast、Facebook、谷歌、eBay、IBM、微軟、三星和 Twitter。
建立一個儀錶板
除了適當的工具之外,公司還應該有中央儀錶板,以便他們實時監控和跟蹤他們的開源專案和開發情況。許多公司可能已經擁有了用於現有開發工作和應用程式的儀錶板,並且能夠將現有儀錶板與其開源工作整合在一起。否則,他們應該建立或採用新的儀錶板來改進其開源部署的管理。
一個基本工具集的要素
正在出現越來越多的用於管理和報告開源專案的工具,這一趨勢已經非常明顯。如果您的開源專案剛剛開始,那麼將您的研究集中在幾個您啟動和執行所需的基本工具上會更有幫助。
隨著您的專案不斷發展,以及使用這些工具的經驗越來越豐富,您可以開始採用新的工具,來幫助自動化並簡化您的流程,響應業務需求的增長。切記,新選擇的工具將用於內部文化和流程的補充和支援——而不是引導它們。
以下章節列出了幾個基本的工具類別,幾乎所有開源專案日常使用的工具都可以劃分到這些類別。這有助於您對該研究有系統性的認識。
自動化行程
自動化行程工具是您公司的開源專案中選擇和使用的最重要的工具之一。這些工具的任務非常廣泛,其中包括自動執行貢獻者許可協議(CLA)的程式。貢獻者許可協議(CLA)是一份按法律宣告,宣告開發人員建立了程式碼且不是從其他任何地方非法複製。傳統上,這些協議是透過列印協議、簽署並傳真等一系列手動流程執行的。但在這如今電子郵件和即時通訊迅猛發展的世界裡,顯得不可思議。取而代之,現在可以用機器人實現自這一流程的自動化,透過使用電子簽名,跟蹤並處理提交的內容。
為滿足公司的更多需求,自動化工具變得越來越龐大且規模化。它們可以準確地告訴您誰正在為您的專案做出貢獻,並且可以幫助您消除那些減慢專案進度的程式摩擦。
據微軟表示,在其開源專案辦公室裡,大約有 8000 個倉庫在 GitHub 上託管,涉及約 11,000 名貢獻者,而在 2016 年約有 40,000 個內部請求應用於開源專案。為了管理這些請求,以及所建立的程式碼和正在更新的程式碼版本,公司轉而使用可以自動化解決混亂的工具。不僅如此,由於數百個專案中很可能會共用同一段程式碼,因此必須對其進行仔細跟蹤,以便在出現安全錯誤時,可以快速繪製並修複所有的軟體影響。在如此大規模的情況下,自動化非常關鍵,手動更新幾乎是不可能的。
Microsoft’s Azure open source portal
管理關鍵任務
那些有助於管理關鍵任務的工具,也是需要考慮和獲取的。例如用於專案管理、跟蹤專案質量狀況,以及確保開發人員、開源社群和其他公司內部人員之間的清晰且快速溝通的。
原始碼管理
大多數透過開源專案辦公室開發的企業軟體專案都使用 GitHub 作為其集中託管和開發的平臺。
GitHub 是一個線上原始碼管理站點,它允許開源開發人員在一個中央“儲存庫”或儲存空間中管理和存放他們的程式碼,參與者可以協作並開發他們的程式碼。如今,大約有 6400 萬個開原始碼專案在 GitHub 上託管,涉及大約 2300 萬個開發人員。
GitHub 使用者可以新增程式碼、檢視已提交的程式碼、申請更改、獲取並提供反饋,以及使用該服務提供專案管理。GitHub 使用 Git Version Control System[7],這是由 Linux 建立者 Linus Torvalds 開發的開放原始碼專案,為程式碼和合作開源人員提供了組織機構。每位“貢獻者”都有他們正在處理的專案儲存庫的副本,他們可以在自己計算機中的副本里進行更改,然後將其提交回專案以供未來納入。然後,“拉取請求”(示例[8])或程式碼貢獻會被專案組織者審查、討論、修改,最後批准或拒絕。
許可證合規
程式碼掃描和合規工具也很重要,它們有助於追蹤程式碼起源和許可要求。關註被引入自身基礎架構、產品和服務中的開放原始碼以確保符合許可證的要求,對於公司來說是很重要的。
例如,您的應用程式可能包含數千個開源元件。為了保護您的公司免於法律糾紛,瞭解這些細節是至關重要的。在風險較高的情況下,使用者必鬚根據其業務在風險譜中的所處位置,深入瞭解程式碼,從而深入地審核並驗證他們所說的許可證。(請參閱我們關於使用和分發開放原始碼的指南。)
“你必須瞭解你的風險狀況,因為掃描最終是與風險管理相關的。你可以一頭紮在沙子裡,然後只管相信並期望你自己沒事。或者你可以說‘如果我受到起訴,這將會破壞我的生意。’你需要非常確定。所以,你要開啟包裝,逐行檢視程式碼,尋找可能存在其中的所有內容。”
Jeff McAffer[4] – 微軟開源專案辦公室經理
用於管理原始碼的工具
如前所述,GitHub 是服務於目前大多數開源專案辦公室的專業原始碼管理系統。但是 GitHub 本身並不能滿足專案程式碼管理的所有需求——特別是當您大規模發展的時候。
開源世界中所使用的一些工具旨在透過新增欠缺的功能來改進GitHub本身,例如支援檢查開發者原產地證書(DCO)陳述句,以確保程式碼可以被合法授權且應用於開源專案中。
GitHub 在程式碼審查方面也存在一些不足之處,所以有其他可用的工具可以自動將有問題的程式碼發回給建立它的貢獻者,然後要求他們檢查並做出必要的修改。GitHub 沒有辦法強迫任何人檢查他們的程式碼,而這些聰明的工具解決了這一問題,使工作流程得以改善。
其他 GitHub 特定工具的功能用於提高 GitHub 的效能指標,這些功能通常針對特定專案,而不是提供給整個組織詳細資訊。對於在多個 GitHub 專案中維護許多開原始碼庫的公司而言,需要更好的工具來組織和彙總它們,使之有意義。亞馬遜、Netflix 和微軟提供了大量這樣的工具來幫助完成這些任務。
以下是一些最流行和實用的原始碼管理工具,可以簡化並幫助您的 GitHub 運作:
原始碼掃描和許可證合規性
錯誤跟蹤
歸檔和釋出管理
用於跟蹤專案質量的工具
隨著開源專案的發展和成熟,監控和跟蹤開源專案的整體質量是企業開源專案的核心任務。為了實現這一標的,您必須收集相應的工具,這些工具應當能夠反映單獨的開源專案的執行過程並反映單獨的開源專案在數十、數百甚至數千個專案中被它們的社群接收的過程。同時,這些工具還必須兼具轉化能力, 能夠將收集的資料轉化為體現整個開源組閤中整體專案效能的有意義的、實用的且可操作的資訊。
Amazon’s open source program dashboard
這其中的關鍵是,您收集到的資料應當可以轉化為關鍵且有用的資訊 – 而不是些無用的指標,例如詳細說明專案已記錄了多少“觀察者”明星,自專案開始以來有多少貢獻者參與了該專案,亦或是缺乏重要背景資料的其他指標。
最好的專案質量監測工具還必須幫助專案團隊對支援他們工作的社群做出回應,同時鼓勵貢獻開發者的參與和多樣化。這意味著這些工具可以幫助保持人員快速響應社群成員釋出的問題或反饋,以便他們保持熱情參與,且不會感到厭倦並轉向其他專案。
一些開源社群有大量的貢獻者,而其他一些開源社群則成員較少。專案質量監測工具需要能夠適用於各種規模的專案。
“關於現有的工具和系統,我希望我們不需要自己建立任何工具或技術,就能很快就能實現公司的開源專案辦公室標的。他們應該能夠找到並使用現有的開源工具來管理他們的開源專案。”
Jeff McAffer[4] – 微軟開源專案辦公室經理
以下是一些最受歡迎且實用的專案資料統計和專案質量跟蹤工具:
“標的是透過使用這些工具,生成透明資料和相關指標資訊,用於指導組織實踐。”
Chris Aniszczyk[5] – 微軟開源專案辦公室經理
TODO Group 還提供了一個很好的附加工具串列[41]:
[46]
.github/settings.yml
中定義的儲存庫設定同步到 GitHub 中,從而啟用儲存庫的拉取請求。用於溝通與合作的工具
當然,開源的發展並不僅僅關於程式碼的開發。它還需要在企業內外部從事專案工作的不同群體之間以及公司開源專案辦公室的工作人員之間建立良好的溝通與合作。
為了達到上述標的,開發人員可以依靠他們可能已經應用於其他專案的工具,例如 Internet Relay Chat(IRC)[56],開發人員可以釋出與開源開發相關的問題並快速收到回覆[57]。另一個例子是 TWiki[58],它是一個開源企業 Wiki 和 Web 協作的平臺,開發人員可以在其中討論程式碼和專案及相關主題。
此外,企業還可以透過社交媒體平臺,入口網站,開源專案儲存庫和其他能夠進行輸入、提問和討論的平臺促進溝通交流。
其他有用的工具還包括 Facebook 公司的 mention-bot[59],它可以透過自動關聯潛在審查者來獲得拉取請的快速輸入周轉以審查程式碼。當 GitHub 目變得太大導致社群成員無法訂閱專案的所有通知時,這一工具尤其值得推薦。
然後是 Slack[60],這是一個線上團隊專案管理與溝通平臺,在這一平臺中使用者可以訪問和共享訊息和檔案,管理工作流程,搜尋資訊等等。Slack可以透過設定接收支援請求、程式碼簽入、錯誤日誌和其他任務的通知。
除此之外,當談到公司參與和支援開源時,不要忘記您公司的公關與營銷人員。包括 Twitter、Reddit、Facebook、LinkedIn、Google+ 等網站在內的社交媒體帳戶以及企業內外部的部落格和網站的使用都是非常重要的。客戶關係管理(CRM)軟體以及電子郵件群發和新聞簡報可以幫助公司讓客戶瞭解他們的開源進展。
用於企業規模 GitHub 管理的工具
當談到企業為開源專案提供並應用的工具時,按理說最重要的是那些幫助企業管理自身企業規模 GitHub 操作的工具。GitHub 是一個可以提供許多操作的完美平臺,但對於谷歌、微軟、臉書、Twitter、LinkedIn 等大型的複雜公司而言,使用標準的 GitHub 產品可能會有很多限制。
大型企業通常需要更多的功能,包括如身份管理、設定和許可權管理,安全性和雙重身份驗證執行,以及深入理解和跟蹤程式碼儲存庫的方法。
因此,這些大型企業常需要構建專門的自動化工具來處理諸如入職、離職、安全策略執行以及給予開發人員請求的儲存庫訪問許可權等任務。
為滿足自身的特殊需求,微軟構建了自己的工具來處理諸如此類的任務,以簡化和改進其開源專案。微軟在 GitHub 上執行良好,擁有約 1,345 個儲存庫,迄今為止涉及約 3,580 名開發人員。
“GitHub 的執行管理是隨著規模擴大而變得更重要的。你擁有一個 GitHub 組織,這是一個儲存庫集合,然後你擁有成員和團隊。管理所有這些東西變得有點複雜,特別是如果它開始在 GitHub 上規模擴充套件到數百個儲存庫,數百人和多個組織。”
Jeff McAffer[4] – 微軟開源專案辦公室經理
微軟建立了一款定製的自助服務——GitHub management and onboarding portal[62],用於組織其專案、儲存庫和團隊。在其最簡單的層次上,基於 Web 的門戶允許開發人員將他們的微軟公司ID對映到他們的GitHub ID,這可以提高系統安全性並幫助簡化參與大量重要專案的大量開發人員的組織工作。
該門戶還允許員工使用 GitHub 和微軟進行身份驗證。其建立了員工身份的一個“虛擬連結”,以便根據他們的工作角色向他們提供任務所需許可權以完成工作。如果員工離開公司,可根據需要調整系統以刪除或重新分類其訪問許可權。
門戶執行在一臺或多臺雲伺服器上,並依靠快取來幫助進行會話和減少 GitHub API 的壓力。微軟門戶平均每天可提供約 1000 名獨立使用者作為其工程師的工具,這是該公司不斷發展的開源工作的一部分,該工作現在包括超過 10,000 名正在使用、貢獻和釋出開放原始碼的工程師。
結語
沒有人認為使公司進入開源世界是一件簡單的事情。但其他許多公司,包括微軟和谷歌等巨頭已經在您前面這樣做了,而且已提供了詳細的路線圖、程式碼和建議等,這將使您自己的開源旅程變得更加輕鬆。
開源專案辦公室的建立和選擇一系列關鍵工具來開始開源工作,選擇權掌握在您手中。它們很可能已經激發了開發人員的極大期望,開發人員中的許多人可能已經自發為開源專案做貢獻(或在工作中,隱秘地)。
透過開源專案的合作並邀請其他人與您合作,您的公司可以獲得不可估量的收益,且能透過節能和創新推動公司發展。
擁有正確的工具對於授權貴公司的開放創新至關重要。
TODO Group
這些資源是與 TODO(Talk Openly,Develop Openly)組織合作建立的, 該組織是 Linux 基金會中專業的開源網路組織。特別感謝奉獻自己的時間和知識來製作這些綜合指南的開源專案負責人。參與製作的公司包括 Autodesk、Comcast、Dropbox、Facebook、Google、Intel、Microsoft、Netflix、Oath(Yahoo + AOL)、Red Hat、Salesforce、Samsung 和 VMware。如想瞭解更多資訊,請訪問:todogroup.org[63]
朋友會在“發現-看一看”看到你“在看”的內容