企業開源指南:建立一個開源專案

Todo發表於2019-04-07

企業開源指南:建立一個開源專案

最大限度最佳化組織中執行開源計劃或啟動開源專案的實踐。這些資源由 Linux 基金會與 TODO Group 合作開發,代表了我們的員工、專案和成員的經驗。

開源專案辦公室是支援、培育、共享、解釋和發展開原始碼的特定場所。這樣的辦公室可以幫助企業明晰建立和執行開源專案的戰略,成為保障領導、開發者、營銷人員和其他員工成功運營開源專案的工具。

(注:此處的“開源專案”,英文是“opensource program”,並非我們常理解的一個具體的開源軟體的專案project,而是指一系列的計劃、流程組成的專案集。在閱讀下文時請注意。)

本指南旨在幫助您瞭解為何以及如何建立管理公司內部開原始碼的建立和使用,並闡述開發者是如何為運營外的開源專案做出貢獻。本指南涵蓋開源專案辦公室的多個話題,如:角色和職責、公司結構、開源專案管理要素,以及如何選擇、聘用開源專案管理者等內容。

本指南的撰稿人

  • Chris Aniszczyk - Aniszczyk 雲原生計算基金會首席營運官
  • Jeff McAffer - 微軟開源專案辦公室主任
  • Will Norris - 谷歌開源辦公室經理
  • Andrew Spyker - Netflix 容器雲經理

為何要建立開源專案辦公室

如今,開源軟體廣泛運用於各行各業,覆蓋零售業、金融業以及汽車行業等多個行業。然而, 這些公司的領導者和決策者並不能完全理解如何運營。

其中關鍵問題在於,當企業的發展遵照傳統商業計劃運營和發展時,開源軟體可能成為企業發展的阻力。開源創新有獨立的方法論,並不遵循傳統業務流程。開源別具一格之處在於開發的協作性,傳統的軟體和商業實踐是封閉的豎井式。對許多企業而言,使用開源軟體這一轉變並不能像理論講述的輕而易舉。

這便是建立開源專案open source program的優勢所在。透過建立開源專案辦公室open source program office,企業可以透過直接與公司長期業務計劃相關聯的方式啟用、簡化和組織開源專案的應用。開源專案辦公室就會成為公司開源運營與架構的核心,彙集所有開源所必需的元件。

開源專案辦公室可以進行設定程式碼的使用、分發、選擇、審計和其他相關政策,同時還可以培訓開發人員、保障專案合規性,並建立和提升社群參與度。該辦公室還可以負責公司對內、對外所有開源資源的宣傳和交流。

“開源專案辦公室是目前所有公司的重要組成部分,它的擴張計劃符合當前形勢,足以影響軟體生態系統中的各個部門。如果一家公司想要增加其影響力、淨化開源訊息傳遞渠道、最大限度地發揮專案影響力,或提高其產品開發效率,那麼多樣化的開源專案解決方案至關重要。“

John Mark Walker – 開源企業家網路(OSEN)創始人

開源專案辦公室的角色

一個完善的開源專案辦公室始終是有價值的。它有利於促進企業內部開源的使用、貢獻和創新,幫助企業獲得戰略優勢。

一個成功的開源專案辦公室可以透過建立有效的流程支援開發者及其團隊,為企業的開源帶來巨大收益:鼓勵程式碼標準化與最佳實踐、流程和工具集。同時,建立開源專案辦公室還可以避免或消除創新開發者可能繞過或忽略的不必要的刻板流程,以免威脅專案的安全和其他方面。

開源專案辦公室的職責是多樣化的,具體包括:

  • 明確公司內外部的開源策略
  • 掌握並監督戰略執行
  • 促進商業產品和服務中開源的有效使用
  • 確保程式碼向開源社群的高質高頻釋出
  • 與開發者社群合作,瞭解公司對其他專案的有效貢獻
  • 在組織內部形成開源文化
  • 維護開源許可合規的審查和監督

對於每家公司而言,開源專案辦公室的角色可能會根據業務、產品和目標存在定製化配置。目前,並不存在建立開源專案的通用模板——甚至沒有可以應用於某一行業各個公司的模板。這使建立開源程式具有挑戰性,但您可以借鑑其他公司的經驗,總結規律滿足自身建立開源專案的需求。

“沒有普適的萬能模板。我不能站在大家面前說,你們都應該這樣做。‘”

Jeff McAffer – 微軟開源專案辦公室主任

過去幾年,微軟一直致力於建立和完善自身的開源方式。微軟擁有來自各業務部門,數以萬計的職工,公司專設開源專案辦公室,為開發者、營銷團隊,以及其他參與雲服務、硬體與軟體產品、遊戲、內容、媒體及其他產品線的開源專案人員提供幫助。開源專案辦公室需要針對各部門不同的單獨業務模式和參與情景提供不同的幫助,因此無法使用相同的模式為所有部門提供服務。

開源專案辦公室的一個關鍵角色是,當業務部門開始將開源納入考慮中時,為這一討論提供依據和幫助,保證充分理解考慮開源的重要性和開源的影響,以及開源的目標。這通常是一個構思談判的問題,以便股東們可以在權衡利弊時知道從何入手和考慮方向。

開源專案辦公室也可以成為開發者和開源社群使用者間解決問題、理解需求的重要聯絡人。開源專案辦公室可以協助解決法律問題、為開發者提供支援,並反饋公司開源專案外部使用者的使用情況。開源專案辦公室還可以協助向公司內部其他人員傳遞資訊,包括產品管理團隊,以進一步完善程式碼。此外,開源專案辦公室正在聘用越來越多的專業開發者,保障他們的開源專案可持續發展。

企業開源指南:建立一個開源專案

關係/合作

  • Linux 基金會
  • 開源發明網路
  • 軟體自由法律中心
  • Mozilla 基金會
  • GNOME 基金會
  • 自由軟體基金會
  • Apache 軟體基金會
  • 軟體保護中心

開源法律合規:

  • 管理和支援開源合規流程
  • 關於開源合規的建議
  • 幫助解決合規性問題
  • 提供指導方針和清單
  • 跟蹤新興的開源法律問題

戰略、社群和參與:

  • 開發、維護和執行企業開源戰略和政策
  • 企業內外部的福音
  • 在內部政策討論中代表開源視角
  • 啟動新的開源專案並支援釋出內部程式碼
  • 開源活動的贊助、釋出和發言
  • 組織開源社群活動
  • 展開並提供內部開源培訓
  • 提供工程指導以提升內部專業度
  • 舉辦內部技術研討會
  • 就社群問題提供建議

案例:谷歌的開源

谷歌自 1998 年成立以來,開源應用已經成為谷歌的使命與成功所在,其開源專案辦公室作用非常廣泛。辦公室經理 Will Norris 表示,該辦公室於 2004 年啟動,主要作為一個合規部門瞭解並組織使用開源許可和程式碼。當時谷歌的規模要比現在小得多,並且參與了許多開源專案和程式碼使用,但當時沒有太多正式的合規流程。Norris 還表示,隨著公司不斷壯大,改變缺乏合規性和組織性問題突出。Norris 最初是一名軟體工程師,曾在開源專案辦公室工作了四年,後於 2016 年 9 月成為開源專案辦公室經理。

谷歌開源專案辦公室遵循三項重要原則——幫助 Google 員工使用開源、向社群公開原始碼和支援全球更廣泛的開源生態系統。該辦公室自成立以來,使命一直未改變。該辦公室僅有約 15 名成員,卻為擁有約 72,000 名員工的公司提供服務。

為了保持開源生態系統的健康運作,辦公室主要致力於僱用有能力勝任的、經驗豐富的工程師開展開源專案,將大量公司資金投資於需要資金支援的開源基金會、開源團隊和開源專案中。同時,定期舉辦技術會議,傳播開源軟體創立的優勢與實用性。

該辦公室還負責開發和運營谷歌 Summer of Code 等專案,該專案在暑假期間為來自世界各地頂尖大學和學院的學生提供由專業導師的培訓、指導,自主建立程式碼的機會。

對於谷歌的開源專案辦公室來說,Summer of Code 是一個為其投資帶來直接利益的典型專案——潛在開發者擁有豐富的經驗和如何進行開源開發如何的操作經驗,未來他們可能在谷歌工作。在開源世界,同樣的戰略可以透過此類開源專案辦公室的投資,惠及社群的其他公司。

谷歌的大多數開源社群的管理由眾多產品團隊承擔,開源專案辦公室給予團隊和專案支援,以遵循自己想要的發展路徑。每個專案的業務目標根據專案開源意義的不同而各異。在谷歌,通常有約 2000- 4000 個開源專案同時進行。

“我們允許公司各個業務部門從商業角度考慮自行決定,給定專案開源是否有意。因為可能有很多不同原因開源專案或程式碼片段。我們很樂意看到專案團隊量體裁衣,實現目標。我們儘可能提供便利與建議。”

Will Norris - 谷歌的開源辦公室經理

谷歌專案辦公室由一個合規團隊組成,其中包括兩名律師,一個參與活動的外聯團隊和一個工程團隊,他們負責開發工具以自動執行合規性檢查並支援公司的開發計劃。辦公室的另一重要職責是仔細且不斷地跟蹤開放原始碼應用中的大量統計資訊,包括合規需要構建什麼,及程式碼的釋出和引用需要多久。

谷歌開源專案辦公室最近新採取了一個有趣的舉措,它鼓勵所有負責開源主要工作的員工——無論他們是圖形設計師、技術編寫人員、營銷人員還是開發人員——花費高達他們 20% 的時間為公司內的其他專案完成特定工作,促進跨團隊之間更多的合作,幫助他們相互理解並全面改進專案。

開源專案辦公室的建立

對於每家公司而言,建立開源專案辦公室都是個性化決策的開始。這個過程可以從頂層管理開始,或從底層開發者開始,因為他們一直在使用開放原始碼並希望看到其正式化。它可以表現為一種圍繞法律問題和安全問題制定有關指導的願望,或者起始於一種成熟的基層力量,引起企業領導者的關注。它甚至可以從一位具有前瞻性的 CEO 或 CTO 開始,透過加強對開源的承諾來推動公司前進並增加公司價值。這種共識和行政支援對於獲得動力並推動專案前進來說至關重要。

那麼應從哪裡著手建立開源專案辦公室?以下是一些關鍵步驟:

1、找到一位領導者

無論您的計劃如何開始,重要的是找到合適的領導者來幫助發展並運營公司內部剛剛起步的開源專案辦公室。最佳候選人應是一位對開源工作原理和現有開源專案中的開發者、貢獻者或提交者的技術訣竅有詳細瞭解的人。他們應該對貴公司的業務有廣泛瞭解,並具備商業敏銳度和管理技能,以幫助向業務部門告知開源戰略和計劃。不僅如此,他們還需要善於社交,這樣他們才能將熱情、知識和資訊傳達給其他人,並幫助他們理解開源創新將如何轉化、改變和完善公司業務。開源專案辦公室的負責人需要能夠與人們討論深層技術,但他們無需瞭解每種技術的細節,因為這些細節實在太多,難以全部掌握。

本著開源協作的精神,當前存在著大量的線上資源來幫助企業找到最佳人選,包括開源專案經理和來自各種設立此類崗位的公司,如 Capital One,Box ,VMware,微軟,Twitter 和雅虎等的其他領導者的詳細職位描述示例。

2、定義你的運營

新的開源專案辦公室需要解決預算、人員配置、技術工具和系統等關鍵問題。一些公司的此類辦公室從任用兼職經理開始,但他們也意識到這樣不是長久之計。聘用全職員工負責相關工作才是使專案落地的有效步驟,同時還應有一位支援人員,幫助保持辦公室工作的靈活性。

如果專案辦公室太大,可能會有過於集中的危險。若想盡可能保持公司內的開發者和開源社群正常運作,辦公室過大則反而會導致問題拖延到專案辦公室支援,而不是自行解決。

一個定位明確的開源專案辦公室示例,應該如下所述:既能推動所需的政策、流程和工具的建立,也能在消除所發現的摩擦的同時保持穩定運作,它使用工具來自動化那些可精簡的內容,並委派需要完成的任務。我們將在以下部分介紹如何設定政策和流程的更多細節。

專案辦公室必須提供結構化的政策和流程,但也應當保持靈活性。當開源使用者和貢獻者需要幫助時,辦公室應更像諮詢公司,提供指導,同時允許員工針對工作做出個人或集體的業務決策。最終, 我們的目標是建立正確的責任與義務的平衡,以滿足貴公司及其開源使用者的需求。

3、尋求反饋和支援

建立一個開源專案辦公室不應該在真空狀態下完成。它將在業務中發揮核心作用,因此要成功建立它,需要公司內部所有相關方的開誠佈公的意見和反饋。確保從高管到開發者,每個人都有發言權,有助於提供廣泛幫助。

“如果你的目標是處理公司在開源的應用,在兩方面——釋出和引用——它確實需要你考慮什麼是真正關心的問題。儘可能地精簡流程,集中精力處理重要的事情,然後儘可能自動化。”

Will Norris – 谷歌開源辦公室經理

組織架構

那麼開源專案辦公室應如何且併入公司的組織結構?它應該在工程部門內部嗎?或者在法律部門,CTO 辦公室或其他特定業務組?這又一次取決於公司的主要業務和開源戰略。

  • 法律
    對於擁有大量智慧財產權組合的公司而言,這可能意味著開源專案辦公室與法律辦公室非常切合, 開發者可以與法律團隊就出現的問題密切合作。這可能非常適合硬體公司,因為它始終關心與潛在的智慧財產權相關的法律問題。
  • 工程
    其他公司更多的是工程驅動的,所以選擇在工程部門運營開源專案辦公室,這有利於直接集中精力致力於讓他們的開發者在工作中更加高效和高產。
  • 開發者關係,市場營銷或溝通
    在其他情況下,一些開源辦公室位於組織的營銷部門內部,因為他們使用開放原始碼渠道來銷售他們使用開原始碼構建的產品。

在 Twitter上,開源應用已成為公司成功不可或缺的一部分,開發人員發現從 2010 年開始很難回饋開源專案,因為該公司的法律部門對程式碼許可和相關問題有嚴重的擔憂。開發人員和軟體工程師透過尋求方法來實現許可證合規流程的自動化——幫助加快執行——以減輕法律和工程部門的擔憂。尋求方法的結果是僱傭一名開源專案經理,並建立一個開源專案辦公室來修復流程、簡化流程、引入工具來自動完成任務並進行其他所需的更改。

有趣的是,Netflix 公司的容器雲經理 Andrew Spyker 表示,它們採取了不同的方法,選擇不建立或使用集中的開源專案辦公室。相反,流媒體電影和娛樂公司透過一個小型的跨職能工作組使用開源, 該工作組執行了一個內部的郵件列表進行討論,並每月進行一次非正式會面以解決開源遇到的問題。志願者工作組成員協助其他分散的團隊,使每個人都更少需要關注如法律問題、工具、監督和社群推廣等行政任務。對於 Netflix 來說,這是一個可行的方法,因為它是一家娛樂公司,而不是一家軟體公司。

在微軟,其工程部門內的開源專案辦公室結構非常獨特,因為它需要支援約 60,000 名軟體工程師。大量開發人員要求放棄所有開源專案的細節都必須透過一個集中式辦公室的想法,因為這個辦公室會不堪重負而無法運作。相反,對於無法自動執行的事情,該公司的開源專案辦公室團隊可以讓工程師對他們的專案做出本地決策,而不必嘗試可能導致操作受到干擾的集中式決策瓶頸。

在此過程中,微軟工程師可以進入公司的開源工作流程,分享他們想要向一個開源社群分享的一部分程式碼或釋出的某些東西,然後接收來自本地評論者提供的反饋與回覆。這個高度專業化的流程包括大約 300 個不同的業務和法律審查團隊,他們可以利用他們的專業知識來權衡本地化的請求,為公司提供可行的方法幫助。

“如果我們試圖建立一個集中的機構來批准 Windows、Office 和 Azure 的開源部分,我們的頭髮會掉光。這些是完全不同的業務。我們為工程師提供工具和指導以完成他們的工作,而不是集中批准機構。這在一些公司有效,但在這毫無作用。“

Jeff McAffer – 微軟開源專案辦公室主任

管理角色

在建立開源專案辦公室時,還必須確立相關角色和職責,包括確立開源專案經理、公司法律團隊以及由工程師和高管組成的稽核委員會的角色和職責。

  • 專案經理
    為了最大程度地提高效率,企業應該授權讓專案經理擔任執行層的職位,使其可以直接監督和實際管理公司在其開源活動中的利益。這將為他們提供引導企業達成開源的目標和願景所需要的工具。微軟設立與審查委員會相似的開源執行委員會。該小組由來自企業內部所有主要業務部門的副總裁組成,為政策變更和政策介紹提供董事會的建議,確定開源專案的優先順序,協助推動企業變革。
  • 法律
    與企業內的其他職能部門一樣,法律團隊必須對開源專案辦公室的運營擁有發言權,確保符合法律、開源許可協議以及其他法律規定。具體到開源專案,法律團隊需要負責確保企業可以在內部使用程式碼並以可接受的條款回饋專案。規模較大的組織機構應考慮聘請或培養專職律師來為其開源專案提供建議。但企業也可以聘用兼職、有相關知識能力的工作人員或外部顧問。與在開源許可和智慧財產權有豐富知識與經驗的律師合作往往很有幫助,因為他們是這方面的專家,但當涉及商業合同或標準時,他們有時也會有些困惑。
  • 合規團隊
    開源專案的合規團隊是一個由多人組成的跨學科團隊,其任務是確保開源專案的合規性。核心團隊通常被稱為開源審查委員會(OSRB),由工程和產品團隊、一名或多名法律顧問以及合規高階職員(常常是開源專案經理)組成。
    擴充套件團隊由來自多個部門的不同人員組成,這些部門持續為合規工作做出貢獻,包括文獻資料、供應鏈、企業發展、IT、本地化、開源執行委員會(OSEC)等方面的貢獻。然而,與核心團隊不同,擴充套件團隊的成員只根據他們從開源審查委員會(OSRB)收到的任務兼職開展合規工作。三星開源專案經理Ibrahim Haddad的《企業開源合規性(Open Source Compliance in the Enterprise)》書中的詳細討論了參與實現開源合規性的個體角色和責任。
  • 開發者關係、倡導和傳播者
    開源開發者的關係和傳播者對於一個剛起步的開源專案辦公室十分重要,因為他們可以在公司的開發者社群內為特定專案培養興趣和熱情,也可以幫助提升工程師的積極性並促進其團隊合作。傳播工作者通常也可以參加會議和技術交流,講解什麼是開源,如何使用它以及未來的挑戰和機遇,同時還能夠與開源社群分享他們的企業經驗。
  • 其他
    此外,設立其他工作職位對於開源專案辦公室的成功是非常重要的,包括工具管理員、培訓管理人員、工具和系統整合開發者、部署支援人員、專案實施負責人和開源傳播人員。例如,有必要設立工具管理員,因為工具管理員能夠選擇、提供和整合開發其開源專案的工程師所需的工具,同時還能確保工具符合許可要求和企業其他要求。

政策和流程的制定

現在,為了公司的開源專案辦公室的構建已經計劃或組裝了許多其他重要的元件。從它的建立到它的構架再到人事,都已經建立完成,下一步就是要制定明確的政策和流程,實現公司開源戰略實施的一致性。

這些政策應該規定在整個公司內使用開源程式的要求和規則,還應該有文件記錄和可執行的程式,以確保對日常基本規則的遵守。

關鍵的是,它們應該儘可能降低人員開銷。微軟關注開源專案辦公室的政策和流程,目的是儘可能讓開發者和其他團隊成員不顯眼。方法是在審查現有的開源政策和流程時採用反覆淘汰、自動化審查和委託審查的形式,使規則不斷地被質疑和更新從而簡化程式。這意味著我們要思考為什麼政策是到位的,以及如何為使用者改進政策。

“制定明確的政策很好,但最低限度的政策必須明確。否則,你會遭到來自律師、安全人士、商界人士的約束。否則,很快就會被政策束縛,也就意味著所有人都將無法逆轉局面。“

Jeff McAffer – 微軟開源專案辦公室主任

雖然這些規則是為開源專案辦公室縝密設計的,但是隨著時間推移和業務的變化以及開源合作的成熟和發展,公司必須隨時準備改進和修改規則與程式。

這聽起來似乎又是一個艱鉅的步驟,但是就像開放原始碼本身一樣,示例規則和流程可以從開原始碼庫中獲得,並且可以由企業自主實施和定製,這樣一來任務就輕鬆許多。

在這些規則制定中,谷歌是最好的例子。谷歌於2017年初發布了開源政策供審閱和免費使用, 方便其他人瞭解公司如何使用、釋出和支援開源以及如何參與專案和社群。基於安全和隱私的考慮,部分內容已被移除,但它提供了許多關於公司如何開展開源工作的經驗教訓。

在制定開源政策時,需要討論許多話題,包括:

  • 如何接受外部對開源專案的貢獻
  • 如何準備開源釋出會
  • 如何獲批
  • 開發人員如何使用他們在 GitHub 和其他程式碼庫上找到的開原始碼
  • 如何將開原始碼引入公司的程式和規則
  • 如何將傳入的程式碼編入目錄以便其他人知曉它在被使用
  • 如何在外部建立一個類似的開發者社群,保持開源的蓬勃發展
  • 確定程式碼應何時以開源形式釋出或儲存為智慧財產權的規則

程式碼釋出政策

若想幫助人們成功地為開源專案貢獻力量,併發布自己的開源專案,那麼相關的開源準則和清單要確保開發者擁有釋出自己的開原始碼需要的所有東西,確保他們不會遇到許可或保密等問題。特別是對於新的開源專案貢獻者,這有助於他們對開源專案貢獻之前透過安全的內部審閱過程獲得反饋。(請參閱我們關於參與開源社群的指南)

您的組織也應該努力採取“上游先行”的發展策略。透過首先向上游開源專案提交補丁,並將補丁整合到自己下游的產品中的方式,您將避免在每次開源釋出後花費大量時間和金錢進行重新設計。

貢獻接受政策

除非您的開源專案位於中立的基礎之上,否則您需要為您的公司制定程式,以便獲得外部開發人員對您自己的開源專案的貢獻支援。

“實際上,你並不想成為對開源專案的唯一貢獻者。你希望讓公司外部人員為開源專案做貢獻,因為你不可能聘用世界上所有最聰明的人,這是不可能的,即使Google也做不到。“

Chris Aniszczyk – 雲本地計算基金會營運長&Twitter前開源專案負責人

當然,獲得外部開發人員的貢獻值也是將公司的開原始碼釋出到其他社群,吸引其他開發人員對您的專案產生興趣的益處之一。因為從宏觀角度而言,即使這些外部開發人員不是正式員工,同樣可以擁有世界各地的人才,完善公司程式碼,擴充套件功能。這種合作對於公司是非常重要的,也是許多開源專案辦公室所關注的。

開源應用促進政策

您希望鼓勵他人在他們的產品和服務中使用您的程式碼,這對於構建生態系統是至關重要的,同時還有助於開源專案的開發和維持。開源應用政策的制定可以有多種不同的創新形式。

Red Hat有一個獨特的政策。通常他們從一開始就預設開源新建立的程式碼。這就意味著,研發公司內部軟體時,預設這些軟體將以開源形式釋出。這是很吸引人的,因為通常情況下,工程師對他們的程式碼能否作為開源釋出的態度不一,而開源其他人就會看到他們的程式碼。由於這種審查,他們會用更好的構建方法編寫開原始碼,這樣他們就會在工作中建立更簡潔的程式碼,這樣的程式碼往往有較少的或已被改進過的程式碼依賴關係。

內部消耗政策

其他必要政策包括:團隊應如何及在何處發現關於開源軟體的使用與建立的可信資源的政策,關於程式碼管理和程式維護的建立的政策,以及規範化專案社群互動的政策。(請參閱我們的開原始碼使用指南)

開源應用政策應確保任何進入產品基地的軟體(專有的、第三方的或開源的軟體)都經過審查、稽核和批准。這樣可以保障您公司在產品送達客戶之前,有計劃地履行因使用多種軟體元件所產生的開源許可義務。

例如,您的政策可能要求工程師在整合產品中的任何開原始碼之前,獲得貴組織中如開源審查委員會(OSRB)這樣的機構的的審計人員的批准。政策中還可以宣告,從第三方收到的軟體必須經過稽核,以認定其中包含的所有開放原始碼,這將確保企業可以在產品發貨之前履行開源許可義務。

合規政策

您還需要制定建立和規範法律合規程式的政策以及保障專案執行監督工作的政策。(請參閱我們的電子書《企業中的開源合規性》,瞭解詳細的合規專案)

您還想計劃如何透過軟體工具的自動化與開發人員和貢獻者的工作流程的簡化,實現大部分合規性和程式碼測試工作。例如,Linux 基金會的 SPDX 和 OpenChain 工具在內部供應鏈團隊的幫助下,有效保障了第三方引入程式碼的合規性。

現今市場上有各類開源工具(如 FOSSology)和付費工具可以幫助完成這些重要任務,而且對於大多數開源專案辦公室來說,他們可以將高質量且綜合的工具有機結合,而無需建立自己的定製工具。這主要歸功於開源過程中的通力協作,貢獻者已經建立並完善了能為企業處理這些重要任務的工具。如果這些工具不能完全滿足專案需求,那麼可以透過使用者反饋意見修改和改進工具以獲得他們所需要的功能。您的開源專案辦公室將很有可能支援圍繞企業工具參與開源社群。

現有的開源資源對於尋找開源專案所需的其他材料(包括貢獻者許可協議(CLA)文件)來說,猶如一座潛在的金礦。貢獻者許可協議(CLA)定義了智慧財產權對開源軟體的貢獻條款。採用貢獻者許可協議(CLA)的專案在接受貢獻之前要求貢獻者,通常還有他們的公司,簽署貢獻者許可協議(CLA)。

許多公司已經編制了自己的貢獻者許可協議(CLA),但現在已有可直接作為開源協議使用的、無需從頭開始編制的通用版本。您所需的大部分協議內容都可以在模板中找到,之後您可以自定義貢獻者許可協議(CLA)以涵蓋所有依然存在的問題。來自其他潛在的貢獻公司的律師通常會接受標準條款的重複使用。

Google 內部定期使用各種工具來執行自動化程式碼檢查,例如使用自定義過濾器等功能來執行自動化程式碼檢查,這些功能可掃描程式碼庫以檢查許可證、許可證相容性和其他因素。Google 每次釋出新的 Android 或其他的應用程式時,都會進行自動化檢查許可證的合規性流程,從而簡化公司程式。不僅如此,由於這是自動化的流程,因此可以更輕鬆地向工程師說明該過程是簡單且無縫的,且不會對他們使用自己的應用程式帶來負擔。

Google 所有的新入職工程師還需要接受一個小時的開源課程培訓,該課程強調把開源許可和合規性檢查作為開展公司業務的一部分。該公司分享的一條重要經驗是,Google 不僅應按照法律許可要求履行許可義務,還應為社群做正確的事情而履行許可義務。如果在授權或程式碼使用方面出現明顯錯誤,雖然 Google 的律師可以代表公司來處理這些問題,但公司本身對上傳錯誤程式碼引起的社群地位受損還是非常敏感的。

“在開源社群中激怒朋友的後果是毀滅性的。這不是我們想做的事,因為我們關心這個社群,而且我們是社群的一員。至於新加入開源的公司,我認為他們往往沒有認識到這一點的重要性。” 

Will Norris – 谷歌開源辦公室經理

結語

當公司決定建立開源專案辦公室時,需要做很多工作,考慮很多事情,但產生的價值可能會超過實現付出的努力。找到正確的領導者來推動專案辦公室的建設倡議是取得成功的關鍵。

“這是一項文化變革的嘗試。程式碼顯然是其中的一個重要部分,但開源社群和參與者是人與人之間的事情。如果想建立一個開源專案辦公室,並試圖實現這項計劃,那麼你需要了解這種文化,並找到能夠幫助將這種文化提升到一個新高度的人。那麼你的開源主管一定是一位偉大的變革推動者。” 

Jeff McAffer – 微軟開源專案辦公室主任

工作列表模板

如果你對構建開源專案辦公室有興趣,而且有意願去僱傭類似的角色,我們建議你參考下來自 TODO Group 正式的工作描述模板: https://github.com/todogroup/job-descriptions 。


TODO Group

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

相關文章