Upgrade to Pro — share decks privately, control downloads, hide ads and more …

InnerSource: 内製化の一歩先を見つめるコードの共同所有の取り組み (xp祭り2022)

Yuki Hattori
November 02, 2022

InnerSource: 内製化の一歩先を見つめるコードの共同所有の取り組み (xp祭り2022)

InnerSource インナーソース という取り組みがあります。「コードの共同所有 (Collective Code Ownership)」はXPの重要なプラクティスの一つですが、これを社内で行うためには、さまざまな部署が協調的に働く環境づくりが必要になります。しかし私たちは、その点について十分な移行戦略や説得のボキャブラリーを持っていないことが多いと感じています。

一方でGAFAなどの米国大手IT企業では、シングルリポジトリ(会社全体で一つのコードリポジトリ)をやっているという話を聞いてきました。日本企業でシングルリポジトリになるのは、なかなか大変だなー、と思ってきた方も多いのではないかと思います。

米国のMicrosoftも、実はシングルリポジトリではなかった企業の一つです。事業間はある種競争関係でもあるので、基本的にはソースコードは共有しないもの、とされてきました。しかし、クラウド中心へのビジネス全体の転換を進める中で、ここ数年は1ES(One Engineering System) という、共通基盤の普及を進めてきたそうです。これを始めたのが Agile 2015 で基調講演を務めた Sam Guckenheimer 氏です(現在は引退、退職)。私も、2019年に彼のオフィスを訪ねています。

本セッションでは、Sam さんの下で働いたこともある服部さんに、Microsoft の 1ES の取り組みがどのようなものであったのかを紹介していただくところから始めたいと思います。一次情報がやっぱり一番うれしいと思いますので。そのうえで、その取り組みの先にある、企業をまたいだ活動である InnerSource Commons について最近私が勉強したことをまとめてみようと思います。

InnerSource Commons は内製化を進める大企業が参加し、どうやって部署をまたいだコードの共同所有を社内に生やしていくか?その中で他部署からのコントリビューションを得るにはどうしたらいいのか?そして、オープンソース文化では基本知識となっている、プルリクエストベースのコードのコントリビューションの仕組みや体制をどのように作っていくのか、開発者として何を学ぶ必要があるのか、について知見を整理してくれています。

https://confengine.com/conferences/xp2022/proposal/17101/innersource

Yuki Hattori

November 02, 2022
Tweet

More Decks by Yuki Hattori

Other Decks in Technology

Transcript

  1. #InnerSource #xpjug Solution Architect at Microsoft Founder of InnerSource Commons

    Japan InnerSource Yuki Hattori (@yuhattor) Yasunobu Kawaguchi (@kawaguti) Senior Agile Coach at HoloLab Inc. / Agilergo Consulting
  2. #InnerSource #xpjug ⾃⼰紹介 服部 佑樹 | @yuhattor - Microsoft で

    Cloud Solution Architect をやっています。 - InnerSource Commons Japan のファウンダーです。 InnerSource 活動 • InnerSource Commons ⽇本コミュニティの⽴ち上げ / ⽇本語コンテンツの整備 • InnerSource Commons - InnerSource Patterns Trusted Committer (⽇本語翻訳) • CTO協会 Day One「今後確実に必要になる InnerSource - GitHub と Microsoft の Day One 」 • Developer Summit 2021 「MicrosoftがGitHubで実践するインナーソースの取り組みとは?」 Twitter フォロー、LinkedIn リクエスト お待ちしてます💪
  3. #InnerSource #xpjug InnerSource is ... “Applying the concepts and lessons

    of successful open source ecosystems to how a company develops software internally” “ ”
  4. #InnerSource #xpjug • • • • • • • •

    • • • ( ) ① オリジナルを作る 諸々の事情を加味して、 オリジナルな表現を開発 → ビッグワードを駆使して定義
  5. #InnerSource #xpjug • • • • • • • •

    • • • ( ) ① オリジナルを作る 諸々の事情を加味して、 オリジナルな表現を開発 → ビッグワードを駆使して定義 ② 新しい提案 コード共有という文脈で テンプレートやプラクティスを提供する → InnerSource というキーワードで 一旦まとめてみたらどうですか
  6. #InnerSource #xpjug InnerSource Commons ž InnerSource Commons InnerSource InnerSource ž

    2015 InnerSource Commons 500 1800 InnerSource Commons 2020 2 19 501(c)(3) Slack : aka.ms/iscslack #jp-general : aka.ms/iscjpgeneral
  7. #InnerSource #xpjug InnerSource Commons Japan Community ž InnerSource ž OSS

    ž InnerSource InnerSource Commons ž InnerSource ž InnerSource ž Slack : aka.ms/iscslack #jp-general : aka.ms/iscjpgeneral
  8. #InnerSource #xpjug InnerSource Commons Japan Community Getting Started with InnerSource

    InnerSource InnerSource Patterns InnerSource Understanding the InnerSource Checklist InnerSource Community Call Monthly innersourcecommons.org Done In Progress In Progress Slack : aka.ms/iscslack #jp-general : aka.ms/iscjpgeneral Done Ready
  9. #InnerSource #xpjug 事例 1ES GitHub “ ” - Satya Nadella

    Case 1: Microsoft * 1ES (One Engineering System) =
  10. #InnerSource #xpjug Microsoft 1ES (One Engineering System) Mission Our mission

    is to enable the world's best engineering teams with world-class tools and systems that help them ship products their customer love. OpenSource Inclusive ( ) GitHub StackOverflow
  11. #InnerSource #xpjug InnerSource をドライブするとは ü ü ü ü ü ü

    ü ü / ü ü ü Slack : aka.ms/iscslack #jp-general : aka.ms/iscjpgeneral
  12. #InnerSource #xpjug InnerSource で運⽤が変わる ü ü ü ü != ü

    = ü ü ü ü = ü = 最⼤化を狙う Slack : aka.ms/iscslack #jp-general : aka.ms/iscjpgeneral
  13. #InnerSource #xpjug InnerSource プログラムオフィス * InnerSource Governance Office InnerSource InnerSource

    • InnerSource • • • • • Slack : aka.ms/iscslack #jp-general : aka.ms/iscjpgeneral