今後確実に必要になる InnerSource
GitHub と Azure DevOps は同じチームで開発している
GitHub Actions は Azure DevOps 上で動いている
GitHub の public roadmap, Azure DevOps ではもともとあった
チームの統合と並行して文化の統合をした
vscode workspace や copilot
もともとの Microsoft の文化 : 肥大化してそれぞれが銃口を向けあっているような組織
コードにも政治が持ち込まれた感じが出ていた
Satya Nadella : 生産性を推進するシステムに取り組むよりも重要なことはない
1ES : One Engineering System マイクロソフトの開発基盤チーム。GHやOSS、InnerSource の推進をしているチーム。
サティアのCEO就任、GH買収で1ESチームの重要性が増してきた
本題
オープンソースも重要だけど、InnerSource がもっと重要、InnerSource がしっかりしないと OSS もしっかりしない。
社内でも OSS のような開発手法をとって加速させていこう、という話。
InnerSource ってそもそもなんだ?
成功したオープンソースエコシステムのコンセプトと学びを企業が社内でソフトウェアを開発する方法に適用する
文化変革の足袋だと言われる。長い道のり、投資。
企業文化や制限を尊重しつつ、開発効率を上げて顧客満足と成果につなげる
金融なら金融、マイクロソフトならマイクロソフトの文化、制限…
InnerSource がなぜ重要なのか? → 来る開発の未来に備えるため
開発がOSSにさらされていく
k8s のクラスタアップデートが早い、ドキュメントもOSSだ、SDKもOSSだ、問題があったらissueを上げていく
今後 SaaS 開発していく上でも重要に成る。こういう開発が銃ようになる、自分たちが API や SDK を提供していく、それがメンテされているかどうかで SaaS の魅力が決まる
OSS の先? → web3 時代に何が来るだろう?
歴史を紐解くと、 free software -> oss -> enterprise oss -> ???
自分の書いたコードがキャリアを彩る?
MS のサイロを壊せ!
コラボレーションの低下、政治
モノリス、大きくなりすぎ、分割できない → 車輪の再発明が止まらない
いろんなチャット・コミュニケーションツールがある、たくさん買収してきた
コラボレーションもっとしないといけない
1ES
「顧客に愛される製品を出荷するためのワールドクラスのツールとシステムを利用できるようにする」
インナーソース、しゃないStackOverflow、OSS, Inclusive デザイン…
強制力はないけどプラクティスを共有して文化変革をしていく
重要視している4ポイント
発見可能性 → ドメイン知識無しで、探索して価値を発見できるという事が重要。README, Contribution.md の整備 とか
実行可能性 → 別プロジェクトの一部として簡単に使用できる。
貢献姓 → どうやってコントリビューションできるの?
継続性
(ただ「このライブラリ使ってくださいね」と言っても仕方ない)
ではない集
標準を決めて従わせる
コードベースのキュレーション
コラボレーションとコミュニティへの投資
1ES チームがインセンティブ構築をする、ある程度のフレームワーク (外れても良い) を用意している
InnerSource をうまくやることが、社内での人の取り合いのブランディングになる (いかに風通しが良いか…)
1ES チームに InnerSource プログラムオフィスを置いている。方針の共有、指導、インセンティブモデルの開発、適切なツーリングの確保…
適切な支援をどうやるの?
メンテナーへの道のり、いきなり「なります」と言ってできるわけではない。user -> contributor -> maintainer
user -> contributor に登るのが難しい。敷居を下げる。
ドキュメント整備、Issue/pr テンプレート、ラベル、マージ条件
InnerSource としていい感じにできているレポジトリのメトリクスを測る (複数contributor いるか?ドキュメントがあるか?fork されているか? etc ...)