CodeZine(コードジン)

特集ページ一覧

MicrosoftがGitHubで実践するインナーソースの取り組みとは?【デブサミ2021】

【18-E-2】オープンソースのベストプラクティスを企業内で実践 ~インナーソースのすすめ

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/03/04 12:00

 昨今、注目を集めている「インナーソース」。社内でのオープンソース化を図ることで、組織の壁を越えたコラボレーションの促進を狙うものだ。効率的な開発を実現する手法として注目が高まる一方、いざ社内で実践する際に何から始めれば良いのかと迷うことが少なくない。日本マイクロソフト株式会社 Azure AppDev スペシャリストの服部 佑樹氏とギットハブ・ジャパン合同会社 シニアソリューションズエンジニアの田中 裕一氏により、Microsoftが実践するインナーソースの取り組みと、それを支えるGitHubの機能について紹介された。

目次
(上)日本マイクロソフト株式会社 クラウド&ソリューション事業本部 Azure AppDev スペシャリスト 服部佑樹氏 (下)ギットハブ・ジャパン合同会社 シニアソリューションズエンジニア 田中裕一氏
(上)日本マイクロソフト株式会社 クラウド&ソリューション事業本部 Azure AppDev スペシャリスト 服部佑樹氏 (下)ギットハブ・ジャパン合同会社 シニアソリューションズエンジニア 田中裕一氏

インナーソースで文化を変えるMicrosoftの挑戦

 前半は服部氏が登壇し、Microsoft内におけるインナーソースの活動について言及した。「InnerSource Commonsの定義によると、インナーソースとは、オープンソースのコンセプトと学びを、企業が社内でソフトウェア開発に適用する試みだ。その目的は開発効率を上げ、より良い顧客満足度と成果につなげること。社内のシェアリングエコノミーの実現に向けて、文化的に変革していく旅である」。

 Microsoftがこの終わりのない旅に踏み出した理由は、巨大化する組織によって生じていた弊害——官僚制組織化による柔軟性の低下、部門間の競争激化や社内政治の蔓延によるコラボレーションの低下、またコンウェイの法則により結果的にモノリシックになってしまったソースコード——を除去するためだった。

 サティア・ナデラ CEOが大きな期待を寄せるMicrosoftの開発基盤チームである1ES(Microsoft One Engineering System)チームは、インナーソースの適用をはじめ、GitHubの推進や社内Stack Overflowの整備などを担い、最善のツールとプラクティスを社内のすべてのエンジニアに提供して支援するために存在している。これにより、サイロ化した組織を崩し、社内コラボレーションを促進し、エンジニアの満足度向上を図っているのだ。

 次に服部氏は、インナーソースを実現するために重要な4つのポイントを挙げた。

発見可能性

 単にソースコードを共有するだけではダメ。他のチームメンバーが、コードベース、ドキュメント、およびその他関連資料のすべてを検索してプロジェクトを探索できる状態にしておかなければならない。

実行可能性

 コラボレーションを促進するには、使ってもらえなければ意味がない。他のチームメンバーが、ドキュメンテーションからプロジェクトの活用方法が分かり、迅速かつ簡単に実行できることが大切。

貢献性

 インナーソースの活動に貢献することは、社内に対するセールス活動にもなる。強いエンジニアが魅力的なプロジェクトを見つけ、自らの貢献度をアピールしやすいよう、簡単に問題を報告したり、新しい機能を提案したりできる環境を整え、参加の障壁を低くしておくこと。

継続性

 プロジェクトをホストするチームがコードをメンテナンスし続け、イシューに対する対応などを含め、社内ユーザーをサポートし続ける必要がある。

 「インナーソースは統制プロセスや、社内システム・プラクティス標準化活動の一部になってはいけない。またソースコードのキュレーション活動でもない。インナーソースの最終的な目標は文化的な変化。そのため、オープンソースにコミットする人たちの行動原理と同様に、インナーソースも『コラボレーション』や『コントリビューション』ベースになるよう、我々も気をつけながら取り組みを進めている。」(服部氏)

 ここからはMicrosoftがどのようにインナーソースに取り組んでいるのかを見ていこう。同社では、以下のフレームワークを用いている。

「これはあくまでも例。自社に合ったフレームワークを作って提示することが大切だ」(服部氏)
「これはあくまでも例。自社に合ったフレームワークを作って提示することが大切だ」(服部氏)

 「インナーソースの活動は、ただのボランティアではない」と服部氏は強調する。エンジニアが「自らのプレゼンスを示す」などのモチベーションを持ち、担当するプロダクトを開発する中で、プラスαの要素として取り組んでいるのだ。だからと言って、片手間で取り組んでいるわけではない。社内でユーザーインタビューを重ねるなど、顧客向けのプロダクトと同様のモチベーションを持っているという。

 そのため、インナーソースを有効化するための手段や環境を提供する「プログラムオフィス」があるほか、メトリクスを取って社内のコラボレーションの状況を可視化したり、OKRsを設定したりするなど、インナーソースをドライブさせるための仕掛けを複数用意しているのが特徴だ。

 「最終的には楽しいことが何よりも重要。社内統制や標準化の観点で進めてしまうとインナーソースはドライブされないので、『投資』として行うべきだ」(服部氏)


  • LINEで送る
  • このエントリーをはてなブックマークに追加

あなたにオススメ

著者プロフィール

  • CodeZine編集部(コードジンヘンシュウブ)

    CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

バックナンバー

連載:【デブサミ2021】セッションレポート

もっと読む

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5