Slide 1

Slide 1 text

コアチーム InnerSource Patterns Speaker: Yuki Hattori (@yuhattor) Pattern Author: Russ Rutledge

Slide 2

Slide 2 text

概要 インナーソースのプロジェクトが広く必要とされていても、プロジェクトが難しいためにコントリビューシ ョンや活用に支障をきたす場合があります。プロジェクトの基本的な項目を専門に担当するコアチームを設 立してください。コアチームの作業により、コントリビューターは自分のシナリオに価値をもたらす機能を 追加し、使用することができます。 InnerSource Patterns: コアチーム @yuhattor 2

Slide 3

Slide 3 text

問題 プロジェクトにコントリビュートすることが困難な場合、以下のようなことが原因として考えられま す。 ローカルでプロジェクトを実行できない。 ドキュメントが貧弱 コードが複雑 テストが不適切である プロジェクトを使用するのが困難な場合、以下のようなことが原因として考えられます。 ドキュメントに不備がある バグが頻繁に発生する セットアップが直感的でない InnerSource Patterns: コアチーム @yuhattor 3

Slide 4

Slide 4 text

ケーススタディ 誰もが依存する中心的なプロジェクトがあります。「なんて素晴らしいインナーソースのための候補でしょ うか!」 しかし残念ながらこれまでプロジェクトは有機的に成長し、様々なコントリビューションと追加が無計画に 行われてきました。今では、誰も理解できず、誰もが触れることを恐れている、厄介で厚いコードの沼にな っています。 明らかにオーバーホール(リファクタリング、テスト、ドキュメンテーションなど)を行うべきなのに、誰 もがその作業を必要とし、望んでいるにもかかわらず、誰もそのための時間を取らないのです。 InnerSource Patterns: コアチーム @yuhattor 4

Slide 5

Slide 5 text

状況 多くのチームがそのプロジェクトを必要としています。 プロジェクトに大きな技術的負債があります。 プロジェクトの採用やイテレーションは遅いです。 プロジェクトとコントリビューションのエコシステム全体に対して責任を持つオーナーやメンテナが存 在しません。 InnerSource Patterns: コアチーム @yuhattor 5

Slide 6

Slide 6 text

組織に働く力学 コントリビュートするチームは皆忙しいので、自分たちにすぐに利益が出る仕事を優先します。 プロジェクトが成長するにつれ、使用や変更が難しくなるのは当然の傾向です。 InnerSource Patterns: コアチーム @yuhattor 6

Slide 7

Slide 7 text

ソリューション 他の人が簡単に参加でき、コントリビュートできるようにこのプロジェクトを維持することを仕事とするコ アチームを形成します。このコアチームは、健全な利用やコントリビューションのエコシステムに必要な作 業を行います。この重要な仕事は、コントリビューションとして優先されない傾向があります。この種の作 業のカテゴリには、コミュニケーション、ローカル環境、DevOps インフラストラクチャが含まれます。 具体例 本番環境のバグ ドキュメンテーション オンボーディングチュートリアルとサンプル CI/CD, 自動テスト ローカル環境 モジュール化 バージョニング モニタリング InnerSource Patterns: コアチーム @yuhattor 7

Slide 8

Slide 8 text

ソリューション (2) 項目は健全な製品エコシステムにとって重要だが、優先されない コアチームは少人数で、フルタイムまたはパートタイムで構成でき、必要な作業量、リソースの利用可 能性、組織の文化に依存 重要な考慮点は組織が他のチームと同じように権限を与え、責任を負わせるようにチームを編成するこ と コアチームのメンバーはトラステッドコミッターの役割も果たすべきで、ほぼ常にプロジェクトに貢献 する コアチームには独自のビジネスアジェンダはなく、他の人がプロジェクトを利用し貢献するために最も 役に立つことを決定する InnerSource Patterns: コアチーム @yuhattor 8

Slide 9

Slide 9 text

ソリューション (3) この目標を継続的にリマインドさせるためには、コアチームに定期 的に以下の項目を報告してもらうのがよいでしょう。 そのプロジェクトを使用しているアクティブなチームの数 プロジェクトに対するチーム外からの貢献の数 これらのメトリックに継続的に焦点を当てることで、コアチームは 自然と、プロジェクトの周りに繁栄するインナーソースエコシステ ムを作成するための適切な作業に優先順位を付けるようになりま す。 InnerSource Patterns: コアチーム @yuhattor 9

Slide 10

Slide 10 text

結果の状況 プロジェクトを利用しコントリビュートすることが容易になります 多くのチームがこのプロジェクトを利用し、貢献するようになります コアチームの成功は、他のプロジェクトとの相互作用とプロジェクトへの対応という観点から定義され ています。 InnerSource Patterns: コアチーム @yuhattor 10

Slide 11

Slide 11 text

理論的解釈 コアチームを分離し、このようにタスクを与えることで、プロジェクトを成功させるために必要なギャップ を埋めることができます。 コアチームはそのギャップを埋め、コントリビューションのエコシステムが健全であるよう、潤滑油の役割 をします。 InnerSource Patterns: コアチーム @yuhattor 11

Slide 12

Slide 12 text

事例 Nike は、再利用可能なCI/CD パイプラインを中心としたインナーソースの取り組みを管理するためにこのパ ターンを導入しました。 InnerSource Patterns: コアチーム @yuhattor 12

Slide 13

Slide 13 text

InnerSource についてもっと知る InnerSource Commons: https://innersourcecommons.org Join our Slack community: https://innersourcecommons.org/slack InnerSource Patterns: https://patterns.innersourcecommons.org Twitter: @InnerSourceOrg 日本語 Slack チャンネル: #jp-general 日本語 Twitter: @InnerSourceJP InnerSource Patterns: コアチーム @yuhattor 13