インナーソースで文化を変えるMicrosoftの挑戦
前半は服部氏が登壇し、Microsoft内におけるインナーソースの活動について言及した。「InnerSource Commonsの定義によると、インナーソースとは、オープンソースのコンセプトと学びを、企業が社内でソフトウェア開発に適用する試みだ。その目的は開発効率を上げ、より良い顧客満足度と成果につなげること。社内のシェアリングエコノミーの実現に向けて、文化的に変革していく旅である」。
Microsoftがこの終わりのない旅に踏み出した理由は、巨大化する組織によって生じていた弊害——官僚制組織化による柔軟性の低下、部門間の競争激化や社内政治の蔓延によるコラボレーションの低下、またコンウェイの法則により結果的にモノリシックになってしまったソースコード——を除去するためだった。
サティア・ナデラ CEOが大きな期待を寄せるMicrosoftの開発基盤チームである1ES(Microsoft One Engineering System)チームは、インナーソースの適用をはじめ、GitHubの推進や社内Stack Overflowの整備などを担い、最善のツールとプラクティスを社内のすべてのエンジニアに提供して支援するために存在している。これにより、サイロ化した組織を崩し、社内コラボレーションを促進し、エンジニアの満足度向上を図っているのだ。
次に服部氏は、インナーソースを実現するために重要な4つのポイントを挙げた。
発見可能性
単にソースコードを共有するだけではダメ。他のチームメンバーが、コードベース、ドキュメント、およびその他関連資料のすべてを検索してプロジェクトを探索できる状態にしておかなければならない。
実行可能性
コラボレーションを促進するには、使ってもらえなければ意味がない。他のチームメンバーが、ドキュメンテーションからプロジェクトの活用方法が分かり、迅速かつ簡単に実行できることが大切。
貢献性
インナーソースの活動に貢献することは、社内に対するセールス活動にもなる。強いエンジニアが魅力的なプロジェクトを見つけ、自らの貢献度をアピールしやすいよう、簡単に問題を報告したり、新しい機能を提案したりできる環境を整え、参加の障壁を低くしておくこと。
継続性
プロジェクトをホストするチームがコードをメンテナンスし続け、イシューに対する対応などを含め、社内ユーザーをサポートし続ける必要がある。
「インナーソースは統制プロセスや、社内システム・プラクティス標準化活動の一部になってはいけない。またソースコードのキュレーション活動でもない。インナーソースの最終的な目標は文化的な変化。そのため、オープンソースにコミットする人たちの行動原理と同様に、インナーソースも『コラボレーション』や『コントリビューション』ベースになるよう、我々も気をつけながら取り組みを進めている。」(服部氏)
ここからはMicrosoftがどのようにインナーソースに取り組んでいるのかを見ていこう。同社では、以下のフレームワークを用いている。
「インナーソースの活動は、ただのボランティアではない」と服部氏は強調する。エンジニアが「自らのプレゼンスを示す」などのモチベーションを持ち、担当するプロダクトを開発する中で、プラスαの要素として取り組んでいるのだ。だからと言って、片手間で取り組んでいるわけではない。社内でユーザーインタビューを重ねるなど、顧客向けのプロダクトと同様のモチベーションを持っているという。
そのため、インナーソースを有効化するための手段や環境を提供する「プログラムオフィス」があるほか、メトリクスを取って社内のコラボレーションの状況を可視化したり、OKRsを設定したりするなど、インナーソースをドライブさせるための仕掛けを複数用意しているのが特徴だ。
「最終的には楽しいことが何よりも重要。社内統制や標準化の観点で進めてしまうとインナーソースはドライブされないので、『投資』として行うべきだ」(服部氏)