GitHubとGitのおさらい

2016年3月23日(水)
池田 尚史

みなさん、はじめまして。GitHubの池田と申します。GitHubやTwitterのユーザーアカウントは@ikeike443です。GitHubではソリューションエンジニアという役割で、アジア・パシフィックを担当しています。我々GitHubは2015年6月に日本法人を設立しました。日本企業のソフトウェア開発の効率化のお手伝いをしています。

今回は数回にわたって、GitHubについて、その本質や我々が実現しようとしている世界観、また意外と知られていないGitHubの機能についてご紹介していければと考えています。

GitHubのマスコット「OctoCat」
GitHubのマスコット「OctoCat」

GitとGitHubとは何か

今さら感はありますが、ここで改めてGitおよびGitHubとは何かについて簡単におさらいしておきましょう。 よく混同されている方がいらっしゃるのですが、まずGitとGitHubは別のものです。

Gitは2005年にリーナス・トーバルズが開発した分散バージョン管理システムのことです。それまでのSubversionのようなバージョン管理システムとは異なり、リポジトリの完全なコピーを各開発者のローカルマシンに持てるようにしたことで、ブランチ作成などのオペレーションの圧倒的な高速化、ネットワークにつながらない環境でも開発を継続できる、などの特徴を持っています。Linuxカーネルのような大規模なコードベースを、地理的に分散したチームで効率よく開発できるようにデザインされています。

対してGitHubは、2008年に開発されたWebサイトに端を発します。トム・プレストン・ワーナー、クリス・ワンストラス、PJハイアット、スコット・チャコンの4人が自分たちのコードをシェアしやすいように作り始めたのが最初です。Gitの素晴らしさと同時に一般のプログラマーには少々しきいの高さがあることも感じていた彼らは、Gitを一般のプログラマーにも使いやすいものにするべく工夫をしました。その中でPull Requestという機能を発明し、その手軽さと便利さが世界中のプログラマーに受け入れられて現在に至ります。

今ではGitのホスティングサービスとしても、オープンソース・ソフトウェア(以降、OSS)のコラボレーションプラットフォームとしても世界最大級のものとなっています。

GitHub.comとGitHub Enterprise

このようにGitHubはOSSのプロジェクトを中心に世界中で受け入れられるようになりました。やがて世界中でプログラマーがGitHubを使い出すにつれ、企業内のソフトウェア開発にもGitHubを使いたいという声が強くなってきました。その声に応えて2010年頃にはTeamとOrganizationという機能を追加し、企業でもGitHubを使いやすいようにしました。また、コードをチームメンバー以外の目に触れないようにできる有料の機能(プライベートリポジトリ)も追加しました。ですが依然としてソースコードをクラウド上にアップすることに対する抵抗感は強く、社内にGitHubをインストールしたいという要望を広くいただくようになったのです。

そこで2012年、GitHub Enterpriseというパッケージソフトバージョンをリリースしました。これはGitHubと同等の機能を社内ネットワークにインストールできるものです。このリリースをきっかけに世界中の企業にもGitHubのコラボレーション機能が広く受け入れられるようになりました。

このGitHub Enterpriseについてのお話も連載の中でしていきたいと考えています。

多方面に広がっているGitHubの世界(Universe)

そんなGitHubですが、コラボレーションプラットフォームとしての価値が認められ、今日では下記のような分野まで広がりを見せています。

OSS、ソフトウェア企業、事業会社

2008年の創業からすぐ、OSSの世界で広く受け入れられたGitHubですが、GitHub Enterpriseのリリース後は多くのソフトウェア企業にも受け入れられるようになりました。企業利用に関してはケーススタディもあります。次のリンクを参照してください。

https://enterprise.github.com/case-studies

さらに近年の傾向として顕著なのは、従来ソフトウェア企業とは考えられてこなかった企業が続々とソフトウェア開発組織になってきていることがあげられます。彼らはその一環としてコラボレーションツールとしてGitHub Enterpriseを選択してくれています。具体的な名前はあげられませんが、製造業や小売業、農業の分野まで幅広い分野の企業が採用してくれています。

教育、研究分野

教育、研究分野にもGitHubの利用は広がっています。現在米国を中心に1,000を超える大学の授業で採用されています。日本でもこの流れは徐々に広がっています。GitHub社としては世界中誰でもどんな境遇の人もソフトウェアで問題を解決できるような世界が来ることを望んでいます。学校への浸透はこのビジョンを裏付けるもので、我々は学生さんにはStudent Packという形でGitHubのプライベートプランを含む複数のソフトウェアライセンスの無償提供をしていますし、学校や教員の方に対してもディスカウントを提供することで教育現場の助けになればと考えています。詳しくはこちらをご確認下さい。また、クラスルームの運営を助けるような機能も提供しています。

GitHub Education
GitHub Education

オープンデータ、行政、NPO

行政分野での採用も盛んです。ホワイトハウスが利用しているのは既にご存じの方も多いと思います。また日本では和歌山県をはじめとする地方自治体がGitHubを利用しています。政策文書の公開や、ドキュメント等の公開や編集に利用されています。

また、国土地理院自らが提供する地図データのショーケースとなるソフトウェアをGitHub上で公開し、広く市民の協力を呼びかけています。国のデータを利用できる上、それに対してPull Requestを送って貢献できるわけです。国土地理院の藤村さんはGitHub Universeにも登壇してくれました。詳しくはThink ITのレポートをご確認ください。

編注:初出時に国土地理院に関する表記および藤村氏の所属に誤りがありました、お詫びし訂正致します(2016/3/24)

プレゼンテーションを行う国土地理院の藤村氏
プレゼンテーションを行う国土地理院の藤村氏

GitHubが発明したPull RequestをベースとしたGitHub Flow(次回の記事で詳しく解説します)は、ソフトウェア開発だけではなく、文書を協働で編集するような仕事にも向いています。このように、行政の業務にも利用できることからわかるように、あらゆるホワイトカラーの仕事に適合する可能性があることが伺えると思います。

あらゆる分野でソフトウェアの重要性が高まっている

なぜこのようにGitHubの世界が広く受け入れられているのでしょうか。1つにはおかげさまでGitHubのコラボレーションプラットフォームの使いやすさが皆さんに受け入れられたことが大きいと思いますが、もう1つあげたいのが、あらゆる分野でソフトウェアの重要性が高まっている、という事実です。

なぜソフトウェアが重要なのか

元ネットスケープの創業者で現在は投資家として著名なマーク・アンドリーセンが、2011年にウォール・ストリート・ジャーナル上で次のような趣旨のことを提言し話題になりました。"Software is eating the world"(ソフトウェアが世界を飲み込んでいる)と。

彼の意図するところを私なりに要約すると、こういうことかと思います。

  • テクノロジーがあらゆる既存産業を再構築し始めている
  • ソフトウェアの質が事業の成功可能性を大きく左右するようになってきている
  • 今やあらゆる分野で成功している企業はすべて自らをソフトウェア企業へと変えてきている

1点目、2点目はもはや今さら指摘するまでもないことかと思います。Amazonは書籍の売買から始まって今やAWSというコンピューティングリソースの販売までも扱っており、あらゆる産業に進出しています。Airbnbはホテル業のあり方をソーシャルな体験にかえ、既存のホテル業を脅かすほどになっていますし、Uberは世界中で問題は起こしつつも、タクシー業のあり方を変えてきています。さらにはUberは人だけではなくモノの輸送にも進出してきています。またAirbnbやUberは空き物件や空き時間を有効活用することで、人の働き方も変えつつあります。

そしてお気づきのように、これら企業はすべてソフトウェア企業です。Amazonはソフトウェア企業ですし、AirbnbやUberもソフトウェア企業です。今日世界を最も席巻しているビデオ業者はNetflixですが、彼らもソフトウェア企業ですし、ディズニーの傘下に入った映画会社のPixarもソフトウェア企業です。自動車業界においてもたとえばテスラモーターズはソフトウェア企業と言っても過言ではありません。Googleも今や検索にかぎらずありとあらゆる事業を行っていますが、もちろん彼らははじめからずっとソフトウェア企業です。

また近年では従来ソフトウェア企業と思われてなかった企業が自らをソフトウェア企業へと変革してきています。たとえば英国で最大の新聞社であるGuardianも、今やソフトウェア企業と言っても過言ではありません。日本でも最近、日本経済新聞社がソフトウェアの内製に舵を切ったことが話題になりました。GEやウォールマートも社内に大量のソフトウェアエンジニアを抱え、ソフトウェア企業へと変貌しています。

このように各企業がソフトウェアを単に事業に必要な物と捉えるだけでなく、自らの企業体質をソフトウェア企業へと変えるまでに至っているのは、現代がまさにアンドリーセンが提言した通りの世界になってきているからです。IoTやディープラーニング、AI、フィンテックなどここ数年、経済界や産業界を賑わしているワードも全てがソフトウェアの話です。

近年、企業がOSSへの貢献に力を入れ始めたのも、また各企業がGitHubをソフトウェア開発の中心として採用してきているのも、すべては今後の世界において魅力あふれるソフトウェアをいかに作り、人々を惹きつけるかが重要不可欠なものだと認識しているからです。

GitHubの本質、目指す世界

そんな中、我々GitHubが目指すものは一体なんなのでしょうか。もちろん各企業がGitHubを選択し、ソフトウェア開発の中心に据えてもらえるのは大変ありがたいと考えています。また今までより一層OSSに貢献し、OSSの世界をより良くしていくことも同様に重要だと考えています。

ですが、GitHubはさらに先の世界を見たいと考えています。

我々はGitHubをソフトウェア開発のためのツールであるのみならず、あらゆるコラボレーションを支援するプラットフォームだと捉えています。

我々は人(People)にフォーカスしたいと考えています。CEOのDefunkt(クリス・ワンストラスのハンドルネームです)は次のように言っています。

人間が発明したものの中で、ソフトウェアは一番最強のツールだと思う。僕たちにはまだその可能性の全貌が見えていない。でもそれには、世界中の誰もがアクセスできるようにするべきなんだ。その人がどこに住んでいて、どんな人生を歩んで来て、子どもの時に高性能なコンピューターを持っていたかどうかなんて関係ない。誰もが自分の人生の舵取りができるようにするべきで、これからの時代、それを可能にするのがソフトウェアだと思う。

だから、僕にとっての長期的ゴールは、誰もがそのエコシステムに参加できるようにすること。そしてそのエコシステムをサポートすること。ソフトウェア業界には沢山のお金が集まっているし、人が雇用を生んだり、コーディングを学んだりすることを後押しできる。ソフトウェア開発を誰もが選べる選択肢にすること。

また次のようにも言っています。

20世紀は、ハードウェアが主役だった。21世紀の主役は、人だと思う。人類は、テクノロジーを取り入れれば取り入れるほど、人間らしくなることができる。なぜなら、そのテクノロジーやソフトウェアは、どれも人が作るものだから

出典:機械のためではなく人のためにコードが書けるかーーGitHub CEOのクリス・ワンストラス氏にインタビュー(THE BRIDGE.)

我々は誰もがソフトウェアを使って問題解決をできる世界になることを目指しています。そのお手伝いができればと考えています。そういった考えの下、Patchworkという名の初心者向けのGitワークショップを度々開催したり、Hour of Codeという子供向けのプログラミングイベントの支援を行っています。

Patchwork in Kyoto にて
Patchwork in Kyoto にて

最後に、我々GitHubが目指す世界について、ちょっとしたビデオを紹介いたします。GitHubの目指す世界が端的に表現されていると思います。

次回からは、GitHub Flowについての解説や、意外と知られていない機能等々について解説していきたいと思います。

ソフトウェア開発者。大学卒業後、ITコンサルタントとしてキャリアをスタート。その後コンサルタントからプログラマーに転身し、パッケージソフトウェア開発、Webサービス開発を経て、2015年現在GitHubにてソリューションエンジニアとして働いている。著書に『チーム開発実践入門』(2014年 技術評論社)がある。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています