InnerSource:來自 PayPal 內部的開源實踐

2021-01-11 開源中國

企業內部開源資料匯總:https://gitee.com/InnerSource

InnerSource僅僅是一個名稱,它是一種在企業內部應用開源軟體實踐的軟體開發方法。來自PayPal的技術帶頭人Cedric Williams,在開源大會OSCON上解釋了在PayPal如何使用InnerSource來打破孤島、加強合作、增加生產力。

實踐開始於18個月以前,清算平臺的團隊當時大概需要花2/3的時間來重寫由區域團隊所提交的代碼。而區域團隊,有一個很重要的職責,那就是確保 PayPal能夠在不同國家符合當地的一些規定。這種情況對於誰都沒有益處。清算團隊沒法做好自己的本職工作,而區域團隊所話費時間寫的大量代碼而別人又 用不上。

PayPal從開放原始碼軟體中汲取了靈感,尤其是來自Apache軟體基金會的實踐。他們發現了開源軟體的組織原則,即每個項目都有各個金字塔的 層:用戶,在最底層;貢獻者;可信任的提交者;最上層是架構師/開發者的領導者。PayPal評估了這些個情況後,作出最大的變化是引入「可信任的提交 者」角色。

找到合適的可信任的提交者可不是一個簡單的決定:清算團隊中只有10%的人是這樣的角色。Williams在此回答了人們一個問題,成為可信任的提 交者需要哪些技術技能?首先必須有深厚的技術功底,然後對於代碼庫的核心了如指掌,即使有了這兩樣也不能成為最出色的。可信任的提交者還必需擁有良好的人 際交往能力,他們要成為教練員。他們需要以積極、清晰的方式來溝通。舉例來說,不要說「這些代碼無法接受」,而是需要這麼去說「這是我需要你去做的方可接 受你的代碼,這裡有幾點原因[...]」。

不出所料,引入可信任提交者角色帶來了政治上的扯皮風險,所以不得不小心的去處理,無論是清算團隊內部還是外部。為了使全局能夠接受變化,可信任提交者不僅僅要審核來自區域團隊所提交的代碼,還要審核來自清算團隊其他成員所提交的代碼。

實施6個月之後效果出來了,清算團隊再也沒有花時間去重寫別人的代碼了,而僅僅花了10%的時間去做審核代碼的工作,該團隊進行了一次大規模的重 構,且在沒有做任何計劃的情況下提升了4倍的性能。團隊成員的心態也從排斥轉變為積極的接受。一個最大的副產品是所有相關的溝通都通過寫作來完成,多數是 在Github上:PayPal使用Github來託管他們的開源軟體,使用企業版Github來託管他們的閉源項目。這使得能夠在所有的團隊之間進行知 識共享和傳播。

在InnerSource之前,PayPal嘗過不同的方法,它們是:自頂向下的強制和駐場。

第一種方法,即自頂向下,是比較傳統和古老的了。定義嚴格的規則和利益相關者,自頂向下,讓人們承擔責任。這無法解決問題,但是可以產生很多的會議。

駐場的情況會好一點。來自各個區域團隊的高級工程師們都被租借到聖荷西,和開發團隊的成員們在一起工作。駐場能夠達到知識的共享,且能夠對彼此團隊 的行為有所了解。非常遺憾的是 ,一旦這些工程師們回到了各自的區域團隊之後,他們就會成為瓶頸。他們發現找不到時間或者是沒有所需要的技能將他們所學到的傳授給他人。

Williams為InnerSource的入門者提供了一些建議。在第一步,在你的工程師團隊中將可信任提交者限制在10%,要求所有的代碼都須 公開審核,且要確保代碼的審核要聚焦於完成什麼從而使代碼更加的良好;第二,要求所有的對話都是成熟的、得到尊重的;第三,分享你的經驗。PayPal將 於11月9號在加利福尼亞的聖荷西舉辦首屆InnerSource峰會。PayPal還為此贊助了一本小書,目標讀者是哪些想進一步學習此方法的人們。

查看英文原文:InnerSource:Internal Open Source at Paypal

相關焦點

  • 企業級雲原生:TKEStack 騰訊雲原生開源實踐之路
    用戶直接用的開源產品,內部用也有變化。 這之下是使用開源項目的商業夥伴,他們非常有動力完善 TKEStack 的功能、優化和提高 TKEStack 的產品質量和體驗。 在此基礎上也有更多來自於社區或者來自於其他團隊的上遊開發者,他們會為 TKEStack 貢獻大家的各種環境的適配、各種特異化的功能豐富 TKEStack 的產品線。
  • 開源Community 對我來說意味著什麼
    來自全球的貢獻者?一個開源原始碼的共同體?它可以吃嗎?好吧,實際上,有時候它確實是可以吃的,講真,今天我是想和大家分享一下我個人就開源共同體對我來說意味著什麼,參與開源不僅有趣而活躍,也有益於整個生活。早年回憶回首那些20歲(2003~2004)的日子,我也就是一名即興的開源軟體用戶,那時寬帶的降價,正在讓普通老百姓也可以消費的起,這就讓全球的相互聯繫成為了現實。
  • 美國權威開源安全機構 WhiteSource 完成對 Mintegral SDK 的安全...
    據悉,移動廣告平臺 Mintegral 的 SDK 已通過美國權威第三方開源安全平臺 WhiteSource 的開源安全審計。WhiteSource 的審計報告顯示,Mintegral SDK 開原始碼的安全水平較高,可以為合作夥伴提供安全、可信賴的服務。
  • 蘋果重新開源分布式資料庫FoundationDB,已在內部使用三年
    但這在當時引發了開源社區的不滿,開源生態的開發者和參與者紛紛對商業收購開源項目的行為表示擔憂和不安,認為這樣對於開源項目的貢獻者和參與者來說加大了風險,甚至對開源項目本身也是一種傷害甚至扼殺。就在今天凌晨,蘋果宣布 FoundationDB 分布式資料庫重新開源!
  • 溫州中學謝作如:綜合實踐活動三要素——造物、開源、可複製
    其次要堅持開源,開源是普惠的前提,不開源就無法普及;最後一定要做可複製的教育創新。教育部的規定、希望與現實差距較大謝作如介紹,從2007年到2018年,他跨越了機器人教育、STEM教育、STEAM教育、創客教育,一直到綜合實踐活動,但國家課程裡一直沒有與他研究相關的內容。
  • 「inner city」別理解成「城市內環」
    大家好,今天我們分享一個非常有用且地道的表達——inner city, 這個短語的含義不是指「城市內環」,其正確的含義是:inner city 市中心貧民區Joe comes from the inner city - he may need help with
  • 盤點微軟最應該開源的 15 款產品 - OSCHINA - 中文開源技術交流社區
    他們先是向Linux內核貢獻代碼,還開放了.NET核心、Visual Studio Code編輯器、甚至是Chakra JavaScript引擎(IE瀏覽器和Edge所用)的原始碼,而在和公司內部的開發者進行了漫長的談判之後,微軟最近又對博客工具Windows Live Writer進行了開源。可實際上,作為一家軟體巨頭,微軟還有不少產品都應該進行開源。
  • 谷歌開源TensorFlow Object Detection API物體識別系統
    API 將谷歌內部使用的物體識別系統(2016 年 10 月,該系統在 COCO 識別挑戰中名列第一)開源給更大的社區,幫助打造更好的計算機視覺模型。其中一個模型在示例圖片中(來自 COCO 數據集)對象識別的效果2016 年 10 月,谷歌內部的物體識別系統達到了業內最佳水平,在 COCO 識別挑戰中名列第一。自那時起,該系統為大量文獻提供了結果,並被一些谷歌的產品所採用,如 NestCam,同樣的理念也被識別谷歌街景街道名稱和門牌號的 Image Search 採用。
  • Uber 上市了,國內對標的「滴滴」有什麼開源軟體?
    Uber 上周上市了,我們整理了 Uber 的一些開源軟體,詳細列表請看這裡。滴滴是對標 Uber 的中國公司,滴滴在開源領域也有不少知名的開源項目。
  • GitHub 的 App 會開源嗎?
    開源是現在的一個大趨勢,雖然有很多軟體確實是不需要開源的,但作為全球最大的開源軟體平臺,自己的產品不應該開源麼?當今很多開源項目的開發都是在 GitHub 上或者通過 GitHub 進行的。對於這一開發者用來「吃飯」的工具,改善 GitHub App 的使用體驗能有效的改善開發者的工作效率和方式,所以如果該項目真的開源,一定會吸引很多開發者參與其中。
  • ...中間件首次實現自研、開源、商用「三位一體」,技術飛輪效應顯現
    過去幾年,阿里雲推出了 EDAS 產品線,希望能夠把阿里在微服務和應用託管體系的實踐經驗分享給用戶;與此同時,阿里雲還在開源社區中推出了 Dubbo、RocketMQ、Nacos、Seata 等多個為人熟知的開源項目,鼓勵廣大開發者共建中間件生態體系。
  • NeuralNLP-NeuralClassifier:騰訊開源深度學習文本分類工具
    NLP項目:NeuralNLP-NeuralClassifierNeuralClassifier: An Open-source Neural Hierarchical Multi-label Text Classification ToolkitGithub連結,點擊閱讀原文可以直達:
  • 四大開源無人機項目,極客要Get了
    1.Paparazzi UAV Paparazzi UAV這個項目結合了製造和飛行開源飛行器所需的軟體和硬體,它們是採用開放許可證發布的。它主要專注於自動飛行,旨在便於攜帶,讓操作人員可以將設備輕鬆帶到野外,並且預先設定好,讓無人機可以沿一系列航路點來飛行。
  • 開源項目brpc從入門到精通(二)
    本文是第一個開源項目研究系列,第一個開源項目選擇的是brpc,brpc是百度內最常使用的工業級RPC框架, 有1,000,000+個實例(不包含client)和上千種多種服務, 在百度內叫做"baidu-rpc". 目前只開源C++版本。
  • DeepMind可微分神經計算機DNC開源 內部架構原理首次曝光
    此次正式開源,想必會吸引眾多開發人員和研究者參與改進。DeepMind 不久前將內部深度學習框架 Sonnet 也進行了開源,而 DNC 需要使用 TensorFlow 和 Sonnet 一起進行訓練。DeepMind 的雙重開源,相信會加速神經網絡「記憶」相關的發展。一旦獲得突破,在加強神經網絡推理能力等方面將會產生較大影響。
  • 愛奇藝開源輕量級插件化方案 Neptune
    愛奇藝近日開源了其輕量級插件化方案 Neptune,項目地址:https://github.com/iqiyi/Neptune插件化框架可以在主程序不重新安裝的情況下,針對單個業務模塊進行動態加載達到模塊更新的目的
  • CopyCat 代碼克隆檢測發布,劍指開源軟體抄襲
    運營開源中國社區 10 年時間,對國內開源發展之迅猛非常的欣慰,但同時也存在很多問題是我們難以忽視的。其中一個對開源生態發展殺傷力最強的就是 —— 抄襲問題!
  • 60款流行網絡工具的開源替代選擇
    你在本文中會找到有助於確保網絡安全的諸多工具,以及簡化故障排除、備份、部署及其他網絡任務的開源實用工具。與往常一樣,如果你覺得另外的開源網絡工具值得推薦,歡迎留言。開源網絡:備份1.連結:http://afick.sourceforge.net/開源網絡:IT庫存管理10. OCS Inventory NG取代的對象:藍代斯克庫存管理器和Systemhound它能查明什麼硬體連接到你的網絡上、該硬體在如何使用。OCS還包括一個部署系統,可用於在你的網絡上分發軟體和腳本。支持的作業系統:與作業系統無關。
  • The Inner Life of A Cell
    The binding stimulates leukocytes and triggers an intraccllular cascade of signaling reactions.The inner leaflet of the bilayer has very different composition than that of the outer leaflet.
  • PAYPAL結匯需提交交易明細嗎?
    如果是paypal結匯,需要提交什麼資料呢? 提交paypal的交易明細截圖就可以,PP交易明細截圖 只要部分就可以 (包含提現這個內容的即可) 結匯手續費怎麼算的? 如果是paypal提現的話。提交paypal,交易明細截圖就可以 相關連結:泛付panpay怎麼提現?泛付panpay如何提現?