Table of contents
InnerSource
InnerSource 在當今企業中越來越受歡迎,因為它提供了基於開源實踐成功經驗的方法,應用於組織內部的開發團隊。然而,實施 InnerSource 並不僅僅是直接複製這些實踐。它需要根據企業的獨特文化和內部組織進行調整。讓我們一起更深入了解什麼是 InnerSource,什麼不是,以及其相關挑戰。
什麼是 InnerSource?
該術語最早由 Tim O’Reilly 在 2000 年提出,Innersource 所指的是「[…]在企業內部使用開源開發技術」
根據 InnerSource Commons ,一份該主題的參考依據,InnerSource 是指「在組織範圍內,使用開放原始源原則與實踐軟體開發。」
為什麼需要 InnerSource?
根據 InnerSource Commons 的觀點,「對於主要開發封閉原始碼軟體的公司,InnerSource 是一個極佳的工具,可幫助破除部門隔閡、促進並擴大內部協作、加速新工程師的入職,並發掘將軟體貢獻回開放原始碼世界的機會。」
有趣的是,InnerSource 的益處不僅能影響公司的工程部門,還能惠及其他部門。因此,一些公司在以下領域發現了具體的優勢:
- 法律職能:透過使用現成的法律框架(如 InnerSource 授權),加速跨部門協作的建立。
- 人力資源:透過核心且經驗豐富的團隊來管理稀缺技能,而該團隊本身是負責整合資源與專業知識。
InnerSource 的爭議
InnerSource 常常被批評者提及的一些普遍迷思圍繞。雖然它並非真正的開放原始碼,但對於在內部採用這種方法的組織來說,卻展現了巨大的潛在效益。以下是一些常見的迷思:
- 「迷思」InnerSource 是以犧牲開放原始碼(主要是對外貢獻的部分)為代價的:
- 軟體專案保留在公司防火牆內。
- 對開放原始碼的外部貢獻減少。
- 「迷思」把持開放原始碼的精神,而非真正接近其核心理念。
- 「迷思」從未有 InnerSource 專案成功轉變為開放原始碼專案。
- 「迷思」推行 InnerSource 的動機在於它類似於開放原始碼。但事實上,如果開發者認為其有價值,那麼應始終優先選擇直接對開放原始碼進行貢獻。
以下是一些關於 InnerSource 實踐的事實,可以破除前述大多數迷思:
- 「事實」InnerSource 是一種方法,旨在引導主要封閉型公司逐步進入開放原始碼的領域。
- 「事實」儘管大多數開放原始碼貢獻是由志願者完成的,但我們可以利用這份「感知利益」清單,向工程師宣傳參與開放原始碼的好處。
- 「事實」在某些(或大多數?)情況下,企業並未遵循有序且受控的開發實踐模式,而這(GGI)可以成為幫助他們管理此問題的一種方式。
- 「事實」將封閉授權轉換為開放授權仍然需要大量的工作。
- 「事實」確實存在將 InnerSource 專案轉為開放原始碼的案例:
- Twitter 釋出的 Bootstrap。
- Google 釋出的 Kubernetes。
- dotCloud 釋出的 Docker(過往公司名稱為 Docker Inc.)。
- React Native。
- 「事實」開放原始碼受益於越來越多的軟體工程師熟悉開放原始碼的實踐,因為 InnerSource 的實踐與其非常相似。
誰在進行這件事?
許多公司已經啟動了 InnerSource 計劃或 ISPO(InnerSource 計畫辦公室),其中一些已經運行了很長時間,其他則是近期才開始。以下是主要聚焦於歐洲公司的非詳盡清單:
- 西班牙桑坦德銀行 (Banco de Santander) (source)
- 英國廣播公司(BBC) (source)
- 博世(Bosch) (source)
- Comcast (source)
- 易力信(Ericsson) (source)
- Engie (source)
- 國際商業機器(IBM) (source)
- 賓士(Mercedes-Benz) (source)
- 微軟(Microsoft) (source)
- NIKE (source)
- 諾基亞(Nokia) (source)
- 法國國鐵(SNCF Connect & Tech) (source 1, source 2)
- PayPal (source)
- 皇家飛利浦(Philips)(source)
- 雷諾(Renault) (source)
- SAP (source)
- 西門子(Siemens)(source)
- 法國興業銀行(Société Générale)(source)
- 達利思(Thales) (source)
- VeePee(法國零售商)(source)
InnerSource Commons ,一個必要的參考文獻
一個活躍且充滿活力的 InnerSource 實踐者社群,依循開放原始碼原則運作,可以在 InnerSource Commons 中找到。他們提供許多實用資源,幫助您快速掌握相關議題,包括 模式、學習路徑 以及簡短的電子書:
- 開始使用 InnerSource 由 Andy Oram 編寫。
- 《理解 InnerSource 的檢查清單》(Understanding the InnerSource Checklist)作者:Silona Bonewald。
InnerSource 治理的差異
InnerSource 帶來了一些在「開放原始碼」中未曾遇到的特定挑戰。然而,大多數創建封閉軟體的組織已經在應對這些挑戰:
- 專為公司設計的 InnerSource 專案專屬授權(適用於擁有多個法律實體的大型公司)。
- 開源的公開性避免了移轉定價(transfer pricing,跨國企業內部交易的價格設定)的挑戰,而 InnerSource 的私密性可能使跨司法管轄區運營的企業面臨利潤轉移的責任。
- 促進貢獻的動機存在很大差異:
- 由於 InnerSource 侷限於組織內部,其潛在貢獻者的範圍較小。
- 展現專業技能是促進貢獻的一個驅動因素,但 InnerSource 將這種影響力限制在組織的範圍內。
- 為改善社會作出貢獻是另一個驅動因素,但在 InnerSource 中這一點受到限制。
- 因此,在滿足動機需求之餘,將更加仰賴貢獻獎勵和任務指派。
- 在 InnerSource 中,因為程式碼的可見性有限,處理如冒名頂替症候群等完美主義恐懼更為容易。
- 勞務外包日漸頻繁,這在多方面影響了治理。
- 由於 InnerSource 是在內部開發的,因此評估其對企業的適用性更加容易。
- 可查找性往往會是一個問題。企業對資訊索引的優先程度較低,而公共的搜尋引擎(如 DuckDuckGo、Google 或 Bing)在這方面表現更優,但 InnerSource 無法加以利用。
- InnerSource 因其運行於內部環境,相較之下在出口管控方面具備略優的條件。
- 需要對原始碼的智慧財產權洩漏進行邊界管控。
InnerSource 隨著越來越多公司採用其原則並分享經驗而持續發展。本手冊的未來版本將提供精選清單,列出與 GGI 行動相關的 InnerSource 實踐者 。