GitHub UniverseでMSのエンジニアが語った「共有と協力」への険しい道
いかにしてMicrosoftはLinuxラブになったのか
ソースコードリポジトリーサービス、GitHubの年次イベント、GitHub Universe 2017には様々なエンジニアがセッションを実施したが、その中でも特に興味深かったのが、Microsoftによる自社開発のリポジトリーからGitHubに移行したプレゼンテーションである。今回はその内容を紹介したい。
これは「MICROSOFT ?S OPEN SOURCE: BECOMING THE BIGGEST CONTRIBUTOR」と題されたセッションで、若干の意訳をすれば「Microsoft Loves Open Source:いかにしてMicrosoftはOSSの最大の貢献者になったか?」ということで、IT業界の謎の一つと言える「Microsoftにおけるオープンソースソフトウェアに対する180度の方向転換」の裏話を、内部の人が語るというものだった。
セッションを担当したのはEdward Thomson氏で、彼はMicrosoftが2009年に買収したSourceGearのTeampriseというソフトウェアの開発者として、買収の際にMicrosoftに移ったエンジニアだ。
Thomson氏はまず、1976年2月3日当時のMicrosoftの社長、Bill Gatesがプログラミングをホビーとしているマニアに向けて書いたとされるオープンレターの一文を紹介した。これは「ホビーイストの大多数の人たちは、自分がソフトウェアを盗んでいることを自覚すべき」という内容だ。当時のMicrosoftは、Basicのインタープリターを販売していた。パソコンのホビーイストはそのBasicのインタープリターを貸し借りしながら、プログラミングを楽しんでいたという。Bill Gatesにとってそれは、たまらなく不快なものだったのだろう。
また同じくBill GatesのGPLに対するコメント、「世の中にGPLというものがあるが、これには賛成できない」というスライド、そして極めつけはBill Gatesの後を引き継いたSteve Ballmerによる「Linuxはガンだ」を紹介。この時点ではMicrosoftはLinux、とりわけライセンスとしてのGPLを敵視していたといえるだろう。「ソフトウェアはそのようにして書くものではない」というBill Gatesの当時の哲学がよく分かるエピソードだ。
しかし次に紹介したスライドには現在のCEO、Satya Nadellaの写真を使って「Microsoft Loves Linux」、つまり態度を180度変えたことを紹介した。
ここまでは、IT業界にいる人間であれば知っている範囲の内容だ。そこからThomson氏は、具体的に現時点のMicrosoftの状態として紹介したのが、このスライドだ。
続いて、Thomson氏自身が買収によってMicrosoftの一員になった当時を振り返って経緯を紹介した。その当時、Teampriseという4名のプログラマーが開発していたソースコードをMicrosoftが買収した際に、関連するソフトウェアもMicrosoftに移管された。それらのソフトウェアにオープンソースソフトウェア、それもGPLのライセンスを持ったものがあったことにMicrosoftは驚愕したという。それは納得できる。なぜなら2009年はまだ、Steve BallmerがCEOとして指揮を取っていたのだから。
自社製バージョン管理システムからGitへ
その当時、Microsoftには自社製のソースコードバージョン管理システムが存在したという。これはTeam Foundation Serverと呼ばれるもので、「非常に大規模なプロジェクトには理想的だが、小さいプロジェクトには向かない」という特徴を備えていたという。
次のスライドでは、このTeam Foundation Serverがエンジニアに途轍もなく評判の悪いソフトウェアであったことが明かされた。
ここでThomson氏はGitの特徴である分散型のバージョン管理システムと、当時のMicrosoftが開発していた集中型のバージョン管理システムの違いを解説した。1つ前のスライドにあるように、プロジェクトが非常に大型になる場合には集中型の利点が出るが、比較的小さい規模のシステムには集中型は向かないというのがThomson氏の評価のようだ。GitベースのコードをMicrosoftのプラットフォーム上、つまりAzureやSQL Serverで再現しようと試みた頃もあったそうだが、最終的にオープンソースソフトウェアであるGitをそのまま実装したほうがずっと効率的であるという結論に達したという。つまりこの時点で車輪を再発明するよりも、今の車輪をさらに良くするほうに舵を切ったと言えるだろう。
ここでThomson氏は「オープンソースソフトウェアはゼロサムゲームではない(つまり誰もが勝者になれる)」というスライドを使い、とかく他社を打ち負かすことに熱心であったMicrosoftのカルチャーを、コラボレーションすることで「誰もが価値を受け取ることができる」というものに変えられたことを訴求した。
また次のスライドで「Microsoft Development Tools Legal Team Loves GitHub」と書かれた写真を紹介した。これはプログラマーだけではなく、著作権などを管理する法務チームでさえ、GitHubによるコラボレーションに賛同しているということを示している。Microsoftの法務といえば、かつては絶対に喧嘩してはいけない部門として社内からも一目を置かれていたというのが筆者の経験だが、そのチームでさえオープンソースソフトウェアによる価値を認めているというのは、変化の大きな証拠といえるだろう。
またThomson氏は、結果的にGitベースのバージョンコントロールシステムであるVisual Studio Team Services(VSTS)が非常に高い評価をうけていることを紹介。ここで、会場からも大きな笑い声とも賞賛の声ともとれるノイズが湧き上がったことをメモしておきたい。
ここからMicrosoftの組織としての変化について言及。当時のMicrosoftの社内は、各部門がお互いに敵対しあう攻撃的なものだったということを紹介。ここでも大きな笑い声が起きていた。
このスライドではAmazonは標準的なツリー構造、Googleは個々のエンジニアがメッシュ条のつながりを持つように描かれている。またOracleは、Engineering部門よりもLegal(法務)のほうが大きいということを表している。一方Microsoftは、事業部同士がピストルで撃ち合っているイラストで、他の部門とは基本的に敵対し合うというようすを表している。
この状態は社内共通のツールなどは存在し得ないが、One Engineering System(1ES)と言うコンセプトで社内のエンジニアが共通に使うシステムとしてのGit、つまりVisual Studio Team Servicesを位置付けることで、部門間のサイロ化がなくなり、ソースコードは社内で公開・共有され、プルリクエストを受け付けるようにカルチャーが変わったという。
ここまででMicrosoftが単にツールを変えただけではなく、社内の組織からカルチャーまで大きな変化を経験した結果として、オープンソースソフトウェアへの貢献が拡大した経緯をご理解いただけただろうか。社内の部門が競い合うことでビジネスを拡大するという方法論が有効な組織や状況もあるだろうが、ソフトウェア開発においては「公開と共有による効果を否定するべきではない」ということを教えてくれたセッションであった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- OpenSSF Day Japan開催。中国からの脅威から新しいOSSプロジェクトの紹介までを総括
- CI/CD Conference 2021 MicrosoftとGitHubの連携をMSKKのアーキテクトが解説
- Axsoft、クロスプラットフォームのGitクライアント「GitKraken 3.4」リリース
- IBMのオープンソースプログラムのトップJeff Borek氏が語るOSSについて(後編)
- GitHub、初めてのコミュニティイベント「GitHub Universe」を開催
- オープンソースを活用する企業にオープンソースプログラムオフィスは必要か?
- IBMのオープンソースプログラムのトップJeff Borek氏が語るOSSについて(前編)
- Open Source Leadership Summit開催、変化に対応し持続するために何をするべきか?
- PivotalとGoogleによる「クラウドネイティブのススメ」
- OSSの脆弱性をチェックするWhiteSourceが日本でのビジネスを本格的に開始