TODO指南:提升開源開發影響力

  • 2019 年 12 月 5 日
  • 筆記

這些開源指南是由TODO小組與Linux基金會和更大的開源社區合作開發的。他們從從事開放源碼開發的領先公司收集最佳實踐,旨在幫助你的組織成功地實現和運行開源計劃辦公室。我們期望這些指南通過社區貢獻而發展的活文檔。 對於針對個人貢獻者訂製的指南,我們推薦GitHub的社區指南(https://opensource.guide/zh-cn/)。

開源開發使用的方法與許多組織所習慣使用的方法不同,但是如果您有明確的計劃可以執行,開源開發就會變得更容易。幸運的是,許多公司和個人已經為重要的開源項目成功的做出了貢獻,並開闢了道路。他們嘗試並修改過各種方法,以便於在開源社區中發揮領導作用。本實用指南將幫助您和貴公司改進您的內部開發流程,並幫助您做好準備面向對公司最重要的開源項目做出貢獻。對Linux kernel做出貢獻是開源開發人員面臨的最嚴峻挑戰之一,所以我們將以這個事例作為本指南的一個例子。幸運的是,本指南將適用於幾乎所有您將面對的開源項目。

目錄

  • 什麼是有影響力的開源開發?
  • 開源項目在完善開發中的作用
  • 普遍的改進方面
  • 最推薦的做法
  • 追蹤進度的指標
  • 結語
  • 參考
  • 鳴謝

什麼是有影響力的開源開發

開發者的貢獻是實現通過您組織的開源戰略的開源程式所支援的業務目標的主要方式之一。有很多方式是會影響一個開源項目的方向,從測試不同環境中的程式碼並添加到程式碼文檔的方式,到資助項目或基金會並參與到項目董事會中的方式,或者是使用其他開源項目中的程式碼的方式。但是,通過程式碼貢獻的品質、數量和一致性,貴公司將會在開源項目中發揮最大的影響力。因此,為組織提供幫助您的團隊開發高品質、高效的開源程式碼的工具和流程,是符合貴組織的最佳利益的方式。

有影響力的開源程式碼可以影響您貢獻的開源項目的技術方向,從而改善您的產品品質,同時最大限度地減少維護該程式碼的成本。

我們的目標是通過對開源的貢獻來提高您的開發團隊的效率。通過幫助貴組織開展一些後文推薦的開源開發的最佳實踐,您可以實現:

  • 減少產品團隊所需的工作量
  • 使維護源程式碼和內部軟體分支的成本最小化
  • 提高程式碼品質
  • 創造更高效的開發周期
  • 開發更穩定的程式碼以作為產品的基礎
  • 提高公司在關鍵的開源社區中的聲譽

開源項目在完善開發中的作用

您的開源項目無論是作為在內部使用的基礎架構或服務,還是作為商業產品發布,都會對您的產品產生直接和間接的積極影響。這些影響是您可以衡量和改進的,它們還能提供確切的結果來向高級領導層彙報——幫助您展示您的開源項目的價值及其對投資的回報。

直接賦能

通過貢獻程式碼本身的數據,您的開源計劃會直接影響貴組織的開源程式碼的開發。每家公司都會根據最適合其自身業務目標發展和最適合公司結構的方式構建開源項目和工程貢獻(請參閱「TODO指南:怎樣創建開源計劃辦公室」)。但是,貢獻程式碼的方式是在開源項目中獲得影響力並在開源社區建立貴公司聲譽的最佳方式。

在三星,開源項目擁有自己的專屬工程團隊,這種方式可以滿足公司研發和產品團隊的開源需求。此項目還幫助將三星的內部程式碼引入各種開源項目中,並且它已經將眾多與三星產品有關的驅動程式應用為上遊程式碼。產品團隊擁有自己的開發人員,並且他們為開源項目做出貢獻,但由於他們與產品開發緊密相關,所以他們的自由度較低。因此,開源團隊接收諸如「我們需要在Kernel中實現功能X」的請求後,他們的工程團隊就會將程式碼交付給產品團隊和Linux Kernel。

「我們向上游提交程式碼的專業能力和這些開源的組成部分使我們變得非常有價值,並且我們的努力已經使得用在維護三星產品和服務所需內核程式碼上的努力減少了很多。「 Ibrahim Haddad – 三星美國研究院研發副總裁兼開源小組負責人

只關注政策和流程的開源計劃辦公室並不總是有專屬的工程團隊來貢獻程式碼,相反,跨部門的工程師會分配部分時間用來更改任何開源組成部分,以便向上游推動程式碼。

不管工程團隊是如何構建的,其目標都是最大限度地減少這些開源組成部分的造成的技術債務。如果上游得貢獻沒有實現,產品團隊將陷入在與上游不同步的巨大程式碼庫中,他們將會花費時間在將更新移植到與上游不同步的分支上,而不是推進產品。

通常,一個深度參與產品團隊的開源開發人員很難在上游的工作及職責(作為提交者或維護者) 和運營產品的工作之間取得平衡。

每個開源項目辦公室都會根據其業務需求進行獨一無二的架構設計。例如,Facebook在開源計劃辦公室內有一個專屬的工具團隊,負責開發內部工具以用來幫助其開源組合的管理工作。這個開源組合包括Facebook共享的項目,這些項目主要託管在GitHub上,除此之外還包括其做出貢獻的其他外部項目,如Linux kernel。(請參閱我們關於Facebook開源項目的案例研究 )

間接賦能

然而,開源計劃的影響力並不僅限於組織為各種開源項目貢獻的程式碼。從公共關係和市場營銷, 到法律支援、開發人員培訓等等,一個開源項目能夠通過各種方式來實現開發。這裡有四種方法可以通過非程式碼貢獻的方式來間接推動開發:

  1. 外部技術討論。做出間接貢獻的一個推動開發的主要途徑是通過參與技術討論來影響各個社區。您的開源開發人員可以通過積极參与郵件列表和IRC聊天來參與討論,並可以隨時了解最新的項目更新。而在有正式管理結構的大型項目中,您可以通過參加技術指導委員會做出貢獻。
  2. 內部技術討論。在內部,開源開發人員可以參與政策和架構討論,以確保組織的決策與特定項目社區的方向方向相匹配。例如,開源開發人員應該參與到關於對依賴開源程式碼的產品的長期規劃的所有戰略討論中。
  3. 合規支援。項目經理還可以提供幫助來解決常規性問題,並用其收到的開源常規性的問詢來支援合規團隊。
  4. 漏洞修復。最後,您還可以幫助穩定您所參與的各種開源項目中的程式碼。您可以查找並修復漏洞,測試修補程式後向上游提交。這可以提高程式碼對所有項目用戶(包括貴公司)的整體價值。

普遍的改進方面

開源項目大致可以在以下三個領域中實現開源項目中開發人員生產力和生產效率的提高:文化、流程和工具。在每個範疇中,都有幾個要素需要處理以適應開源模型。

文 化

  • 發展模式
  • 合作
  • 透明度
  • 精英管理
  • 團隊形成
  • 招聘實踐
  • 正確的成功衡量指標

流 程

  • 發展模式
  • 管理
  • 使用
  • 合規性
  • 貢獻
  • 審批
  • 運營模式

工 具

  • IT基礎架構
  • 開發工具
  • 跟蹤指標
  • 知識共享
  • 程式碼重用

開源團隊在企業環境中所面臨的特殊挑戰

文化

文化的挑戰往往來源於傳統軟體開發實踐與開源開發要求之間所存在的差距。您可以聘請開源專家並讓他們培訓其他不熟悉開源開發模式的團隊,從而彌補這個差距。

「我們的目標是為開源工程師提供足夠的時間來履行對上游的責任,以便他們能夠為三星提供足夠的開源領導力。「 Ibrahim Haddad – 三星美國研究院研發副總裁兼開源小組負責人

流程

開源開發的模式是動態的,運行速度非常快,並且對合規性有特殊要求,因此那些無法使其內部流程適應於這類發展模式的公司很容易被淘汰。開發人員需要能夠快速地向上游貢獻程式碼,並且所有的內部程式碼策略都需要被修改來支援這一過程。

首先,讓團隊負責維護正確的開源合規性以避免法律問題的行為是至關重要的。(請參閱我們的電子書《企業開源合規性》)

您還需要建立一個簡單的開源使用和開源貢獻的內部審批模式。多年來,三星已經從高度複雜和繁瑣的政策轉向了更簡單的接收、審核和批准源程式碼貢獻的方法,這是一個能夠平衡所有相關方(法律、工程和開源)的決策。我們現在採取折中方法為專門的開放源程式碼的團隊提供支援,該方法能夠一次性批准並且為多個開源項目做出貢獻。但對於那些根據所貢獻程式碼的不同性質而需要獲得不同級別審批的其他團隊來說,情況並非如此簡單(例如,簡單的漏洞修復,改進現有功能的程式碼,提供新功能的程式碼或啟動新項目的程式碼)。

工具

您還需要確保您的工具從一開始就與開源開發模型是兼容的狀態。創建一個設置,能夠滿足開源項目辦公室需求,並且同時也符合企業的IT指南。

例如,三星公司發布的Linux設備可以確保與其工程師在參與開源開發過程中所需的所有工具配合使用。這種環境允許開發人員不需要對其工作方式進行大幅度改變就可以加入開發團隊。他們還支援在家辦公,實際上在矽谷只有極少數開源開發人員會在辦公室工作 - 其他所有員工都在世界各地遠程辦公。

最推薦的做法

首先,讓我們介紹一些歷史。2000年12月,IBM公開承諾將在Linux 研發上投入10億美元,這個事件是開源歷史上的一個重要里程碑。IBM對Linux和開放源程式碼的投資可以說得上是企業界的真正開拓者,因為在當時只有極少數公司會這樣做,並且這些公司也絕對沒有IBM這樣的規模。IBM必須學習很多關於如何與開源軟體和其所參與的各種開源項目社區進行的合作。

這是企業開放源程式碼的起點,自那時起,先是數十家,然後是數百家公司就一直追隨IBM。到今天,仍然有數千家公司在進入開源領域,因為開源正在成為軟體開發的新常態。但是問題是:我們如何才能最大限度地減少企業學習曲線並加快「做好」的過程?

答案很簡單,但如何將此答案應用於獨特的企業文化卻是一個難題。讓我們探索一些有超過17年開源軟體經驗的企業中,學習「簡單」方面,您將會處理把這些所學的經驗應用於特定企業環境的難題方面。

謹慎來說:除了實施所列出的這些實踐之外,您還需要引領企業文化從傳統的軟體開發實踐轉向更加開放和協作的思維模式。公司內部的動態需要支援開源工作,作為貴組織內部的開源領導者,您將在獲取資金資源、證明投資回報率、獲得上游關注等方面面臨諸多挑戰。這些挑戰往往需要思維方式的重大轉變,以及經過沿著開發鏈條的大量培訓。

1. 從項目社區僱傭關鍵開發人員和維護人員

培養內部開源專家需要相當長的時間,因此,僱傭關鍵開發人員是決定性的一步,這可以讓貴組織快速獲得技能和認可。

兩到三個關鍵開發人員將會是一個良好的開端,他們能在諸如Linux Kernel這樣的大型項目中產生明顯的影響,吸引更多可僱傭的人員,並能夠給予足夠的資源來指導現有的初級開發人員。(請參閱「TODO指南:招募開源開發者」)

我們的目標是找到那些擁有足夠的同行認可度,並且在社區中具有影響力的關鍵開發人員。對這些人而言,要達到這種高度,通常有三大核心要素:領域內的專業知識,開源方法和開源實踐經驗。

您還需要將公司興趣與個人興趣結合在一起:當特定項目中高級開源開發人員的個人興趣與公司興趣不一致時,激勵他們工作的熱情是非常困難的事情。例如,一個Linux記憶體管理專家可能對公司會優先考慮的文件系統的工作並不感興趣,因此,尋找興趣匹配的關鍵開發人員對於長期關係至關重要。

2. 為向上游貢獻分配時間

聘請開源開發人員的核心原則是要支援您的開源開發和上游活動,您可能也期望他們可以在他們的專業領域內能夠儘力支援產品團隊。然而,產品團隊試圖佔用開源開發人員的時間來讓他們儘可能多地從事到產品開發工作中,以此發揮團隊的影響力,這樣的情況並不罕見。如果發生這種情況, 或許在您意識到事情發生之前,就已經有許多開源開發人員會離開,尋找一份新工作來為上游項目服務。

因此,創建和保持上游工作和產品工作的分離很重要。換句話說,建議您為開源開發人員提供有保證的時間來滿足他們的上游願望和責任,尤其是當他們是維護人員時。對於在產品組成部分中使用開放源程式碼的初級開發人員或其他內部開發人員來說,與上游社區的這種互動將增強他們的在語言、溝通和技術上的能力。在沒有這種為上游服務的時間保證的情況下,這些開發人員很容易被吸收並成為產品團隊的延伸,導致他們在上游的焦點變得越來越傾向於產品開發方面。

您同樣應該成為產品團隊的上游合作夥伴;產品團隊常常覺得自己處於高壓環境下,特別是在電子產品的消費環境中。他們經常感覺人手不足,缺乏支援同產品並行的上游開發的關鍵資源,並且不斷面臨著在緊湊的時間內交付工作的壓力。在這樣的環境下,很容易為了在短期內節省時間而忽視了上游工作的益處,而不幸的是,這一點可能會因為導致技術債務並從長期上來看會產生較高成本。開源團隊可以通過成為致力於向上游提供重要程式碼的合作夥伴來向產品團隊提供幫助,從而減少這種技術債務的壓力。

鼓勵開源團隊之外的開發人員向開源社區學習並做出自己的貢獻自己。我們儘可能為上遊程式碼貢獻提供幫助,但是我們的資源有限,而且並不總是可以深刻了解某些產品,這些產品需要清晰確認其中的哪些程式碼是可以向上游提交的。更好地通過我們自己以外的團隊參與開源社區,可以讓我們在上游獲得更多重要的程式碼,並提高我們與社區互動的能力。

3. 建立一個導師項目

在與您的產品相關的特定技術領域培養開源人才。從公司外聘用一些人才資源是很容易的,但這種方法存在一些局限性。

另一種方法是通過技術領域和開源方法的培訓,將您現有開發人員培訓為開源貢獻者,然後這些開發人員可以與導師配對,以進一步提高他們的技能水平。

建立一個導師項目,可以讓資深的、經驗豐富的開源開發人員為初級、經驗不足的開發人員提供指導。通常,導師項目時間將持續3至6個月,在此期間,導師應監督追蹤受指導者的工作,給他們分配任務並確保結果的正確性。導師還會為受指導者創作的所有內容進行程式碼審核,並在受指導者將程式碼提交給上游項目之前提供評價。

我們的目標是增加公司向上游項目貢獻程式碼的開發人員數量,並通過提高改善程式碼品質和提高上游項目接受的程式碼百分比來提高個人效率。一般而言,分配給一個指定導師的受指導者不應超過4-5 名,理想情況下,他們應該與導師在同一領域工作,以使程式碼的審核更有效率。

4. 正式化開源職業道路

在您的人力資源(HR)系統中創建一個開源開發人員跟蹤模組,以便那些被聘用為開源開發人員的員工能夠很好地了解到,對比其他非開源開發人員,他們的職業生涯在公司內部將如何發展。此外,您應該將與開源開發工作相關的目標成果納入績效獎勵考核中。衡量專業或封閉式源程式碼開發人員績效的指標通常與開源開發人員的不同。

在一些公司中,開源和非開源開發人員之間存在明顯的區別。但在許多公司中,這條分界線往往是不明顯的,這取決於其組織架構和開源戰略的不同。實際上,所有現代開發人員都必須使用開源技術,沒有閉源開發者。不同的是,他們的程式碼有時會留在公司內部,有時會被發布(貢獻給第三方, 或作為一個新項目發布)。您的人力資源跟蹤和獎勵機制應該反映出貴組織獨特的架構和開源方法。

最後,無論一般的公司與辦公方式相關的政策如何制定,貴公司請允許開源開發人員在家辦公。最近,我們看到很多公司的在家辦公政策發生徹底的改變,其中有許多公司禁止在家辦公或者給在家辦公的開源開發人員設置了諸多嚴格的限制要求。但在開源世界中,在家辦公的政策幾乎是強制性的,因為開源專家遍布全球,所以這項政策往往是聘請他們的唯一途徑。

靈活的工作政策對運營也有好處。據斯坦福大學公布的一項研究說明,提供遠程辦公選擇可減少員工流失率,並且「員工流失率的下降超過了50%」。由一家領先的軟體服務供應商PGI提供的一項研究同樣表明,80%的員工在家辦公時更加士氣高漲,69%的員工缺勤率更低。

5. 提供培訓

任何公司都不可能僱傭到一個特定領域內的所有資深的、最專業的開發人員。這個觀點適用於Linux Kernel和其他所有著名的開源項目。因此,您必須採用某種方法提高貴公司的開發人員在特定技術領域的競爭力。除了技術培訓外,您還需要通過培訓來教授給他們開源開發模型和傳達開源法律合規的基本概念。

培訓課程案例包括:

  • 涵蓋Linux Kernel中各個領域的技術培訓。維護人員或高級開發人員通常會介紹這些內容以增強內部的Kernel專業知識能力;鑒於聘請專業的Kernel開發人員的難度,這種專業知識的教授至關重要。
  • 開展源程式碼開發方法課程,教授給開源新手關於開放源程式碼和Linux Kernel開發如何運作,以及他們應該如何最好地參與其中的內容討論。
  • 開展源程式碼合規性課程,教授給員工合規性原則和開源許可的基礎知識。同時也應該傳達給他們貴公司的政策和流程的具體內容。(Linux基金會為開發人員提供免費的在線開源合規培訓。課程可在這裡找到 )

6. 參加開源活動

支援您的開發人員出席並參加各類開源會議和活動,包括當地社區聚會、編程馬拉松和峰會。參與這些活動有助於他們建立與同行的個人聯繫、建立關係、面對面地進行社交互動,並能夠參與指導項目方向的技術討論。

如果您的開發人員有其他人可能感興趣的工作,請幫助這些開發人員準備要呈現的內容。最後, 您還可以贊助大大小小的各種活動,以提高您在項目社區內的外部可見性。這些活動也是尋找人才的絕佳場所!

7. 提供靈活的IT基礎架構

提供靈活的IT基礎架構,幫助開源開發人員可以沒有任何困難地與開源社區和Linux Kernel社區進行溝通和協作。此外,建立與外部使用的工具相匹配的內部IT基礎架構,以幫助實現縮小內部團隊與Kernel社區或其他開源項目社區之間的差距的目標。您的大部分基礎架構都會隨著貴組織的開源文化而自然發展,但重要的是要意識到基礎架構實施的必要性和計劃。

在開源開發中使用的IT服務主要有三個主要領域:知識共享方面(wiki,協作編輯平台和公共網站),溝通和問題解決方面(郵件列表,論壇和實時聊天)以及程式碼開發和分配方面(程式碼庫和漏洞跟蹤)。這些部分或全部工具需要能夠在內部提供以便可以充分地支援開源開發。這有可能與現有的全公司的IT策略相衝突,如果是這樣,如何解決這些衝突就至關重要,並且要允許開源開發人員使用他們熟悉的工具工作。

這些開源實踐通常需要一個沒有眾多標準和IT政策限制的IT基礎架構。

「我們花了數年,經過不斷的討論和談判,從傳統的IT設置,轉變為支援我們開源開發的更加靈活的環境。我們讓它為我們工作,並且具有足夠的持久性,您也可以使其為開源團隊工作。」 Ibrahim Haddad – 三星美國研究院研發副總裁兼開源小組負責人

8. 追蹤開發人員的程式碼貢獻

創建一個內部系統來追蹤開發人員的貢獻和影響。貢獻可包括上游開發、產品團隊支援、知識教授(指導,培訓)、可視性(出版物,講座)、啟動新的開源項目,以及與其他團隊或小組創建內部協作項目的貢獻。

有幾個工具包可以用來幫助追蹤源程式碼的貢獻,例如,Linux基金會使用名為gitdm的工具,該工具可以生成Linux基金會年度Linux Kernel報告中的數據。這些數據可以用來追蹤個體開發人員以及整體團隊的績效成果。對個體開發人員來說,可以追蹤到他們提交的修補程式數量,修補程式接受率(被接受修補程式數量除以修補程式提交數量)和修補程式類型(例如,是否是增加一個新功能,增強現有功能、漏洞修復、文檔撰寫等等)。

其他像GrimoireLab這樣的工具也可以用來繪製和可視化您想追蹤的指標。關於您應該追蹤的指標的具體示例,請參閱下一節。

9. 確定具有廣泛影響的重點領域

向為一個或多個業務單元或多個產品帶來收益的領域做出貢獻並關注於這些領域,這將使您可以跨多個業務單元提供價值,並展示投資回報率,同時增加您獲得更多資金和支援的機會。

將您的貢獻集中表現在直接有利於公司戰略和產品的上游項目上。在開源開發中,在不同的有趣項目之間忘乎所以地跳來跳去很容易。但在開源團隊這樣被視為成本中心的企業環境中,您的驅動力應該專註在支援產品開發的開源項目上。

三星每年對其產品組合進行一次審查,努力關注參與到能夠被儘可能多的產品所共同使用的開源項目中,然後會根據幾個因素把這些項目按照優先順序列成清單,並將精力集中在最重要的項目上。用一個方法論來推動您的優先事項是堅持重要、合理和可靠的重要方式。

10. 促進內部協作

與在其產品中使用相同開源項目的其他業務單元合作。這些合作可以採取一種或多種形式:

  • 為他們的開發人員提供培訓機會
  • 針對特定主題或問題舉辦研討會
  • 共同開發新的功能
  • 共同排查和解決問題和漏洞
  • 上游貢獻現有的程式碼(之前沒有資源完成)
  • 幫助他們脫離舊的分支並回到主線版本中
  • 其他

這些合作的目標是通過開源支援幫助產品團隊了解他們的需求,並實現他們的產品目標。

貴公司必須分享不同部門的資訊和優先事項。舉例來說,假設您在一個開源團隊中,您被要求支援驅動程式的實施,但您無法訪問硬體手冊和說明。這聽起來有點像在關燈的時候玩飛鏢,而且事實確實如此,資訊共享的確是開源團隊與其他人是否可以成功進行內部協作的關鍵組成部分。

邊欄:三星的開源

三星的開源組織(OSG)於2013年2月成立,旨在進行兩項主要功能:一是通過幫助公司其他部門了解如何參與開源開發項目並從中受益,從而在三星內部提供開源領導力。其次是作為三星在更廣泛的開源社區中的代表。團隊的任務是通過積極為開源貢獻力量來專註提高關鍵的開源項目數量和技術能力,以及積极參与到各種開源組織和基金會中。

追蹤進度的指標

一旦貴公司開始實施這些開源最佳實踐,您將需要設立合適的開源指標來推動所需的開發行為。但是,產品組織中常用的傳統指標並不適用於開源開發環境。

例如,追蹤變更集的數量或程式碼行數可能是評估開源開發影響的一個很好的指標,但是您可能遇到過多個在上游期望實現功能的實例,因為您的開源開發人員遊說社區並得到了支援。在這種情況下,變更集的數量或程式碼行數的結果幾乎與團隊成員提供上遊程式碼和減少公司下游維護工作的技術領導力無關。因此,您追蹤的指標應考慮這兩項活動。

隨著時間變化的程式碼提交和程式碼行數

最基本的追蹤目標之一,就是在特定時間段內(例如每周,每月或每年)變化的程式碼提交數量和程式碼行數。

每個項目每周發生變化的總程式碼提交數和程式碼行數是良好的追蹤指標的開端

通過這些數據,您可以比較各個內部開發團隊的貢獻,以確定源程式碼貢獻的來源,並有助於確保資源得到適當的分配。

在這部分您可以創建圖表來比較各個內部團隊的累積貢獻、總貢獻的百分比數字以及向上游提交程式碼所花費的時間(參見下面的圖表)。

可以通過追蹤隨時間變化的累積貢獻,來比較內部團隊,並確定那些正在增加在特定開源社區中活動參與的團隊

(本圖展示的是Linux Kernel的相關指標)

展現公司的貢獻中各部分佔總數的百分比隨時間變化的變化,可讓您確認貢獻程式碼最多的團隊

向上游提交程式碼所花費的時間數據對於追蹤您的開發效率而言可能很有價值。此圖表顯示了各個團隊如何快速向上游貢獻程式碼,並將其與整個社區進行比較。

您還可以使用這些指標來比較您的績效與其他參與內核生態系統的公司的績效的差距(請參閱下面的圖表)。這種競爭分析將有助於您更好地了解項目的整體開發人員生態系統的表現。

貴公司可以對累積貢獻進行分類比較,來了解貴公司與其他公司是如何競爭的。

這些衡量指標提供了一個更好的方法來說明您的優勢和劣勢分別在哪裡,並可以幫助您了解整體發展戰略的方向。例如,追蹤您自己的貢獻數據與競爭對手數據相對的進行比較,可以提供有價值的資訊,幫助組織確認其產品在市場中相對於競爭對手產品的定位。

項目也可以獨立發布貢獻數據。例如,您也可以利用來Linux基金會的Linux Kernel開發報告和LWN追蹤Linux Kernel的貢獻者

Linux Kernel對三星來說十分具有戰略意義,因此公司在其他眾多項目中選擇將其開發工作的重點放在了此項目上。他們現在已經通過變更集,使得公司貢獻排名長期處於Linux Kernel的前5名貢獻者之列。同時,該公司在其認為對產品開發至關重要的其他幾個開源項目上正取得同樣的進展。

對於公司來說,成為最高貢獻者並不是其目標,目標是得到表現出該組織的開發成果會被其所參與的社區所接受的跡象。俗話說,您要麼能夠作為開源影響者坐在餐桌邊,要麼出現在菜單上。

「在菜單上意味著您會坐在辦公室中為需要維護內核之外的大量程式碼而哭,因為您不能融入到上游中。我們更願意坐在桌旁。「 Ibrahim Haddad – 三星美國研究院兼開源小組負責人

結語

有效開源開發直接給予是無效的,它必須通過自己努力來獲得。這種領導力可以通過定期、持續的參與和貢獻來獲得。

通過實施開源領域中企業開拓者所進行的一些最佳開源實踐,您可以在開發您所需的內部開源專業知識方面取得快速進展。然後,您可以利用這些專業知識來改進您的產品和服務品質,同時降低程式碼的維護成本。

黑客萬歲!

參考

  • 三星開源小組
    • https://blogs.s-osg.org/
  • GrimoireLab - 一個開源軟體開發和社區分析平台。
    • https://grimoirelab.github.io/
  • 開發者的合規基礎 - 一個Linux基金會提供的免費的在線培訓課程。
    • https://training.linuxfoundation.org/
  • gitdm - 「git data miner」是一個由Jonathan Corbet (LWN.net)和Greg Kroah-Hartman Linux基金會(Linux內核維護者和研究員)創建,用來跟蹤Linux內核修補程式的工具。
    • git://git.lwn.net/gitdm.git
  • Facade - 一個用來監控git存儲庫貢獻程式碼的工具。它是由Brain Warner(工程經理和三星的戰略用OSG)編寫。
    • https://github.com/brianwarner/facade

鳴謝

貢獻者:

  • Ibrahim Haddad,三星美國研究院研發副總裁兼開源小組負責人
  • Gil Yehuda,(Yahoo + AOL) 開源高級經理

這些資源是與TODO(公開對話,開放式開發)小組 – Linux基金會的專業開源程式網路小組合作創建的。 特別感謝那些貢獻自己的時間和知識來製作這些綜合指南的開源項目經理。 參與的公司包括Autodesk,Comcast,Dropbox,Facebook,Google,Intel,Microsoft,Netflix,Oath(Yahoo + AOL),Red Hat,Salesforce和Samsung。 要了解更多資訊,請訪問:todogroup.org。 我們邀請您在GitHub上下載或參與這些指南。所有內容使用CC-BY-SA 4.0授權。

Tags: