世界最大のソフトウェア開発プラットフォームであるGitHubは2008年にリリースされ、2023年には開発者が1億人を突破するほどの規模に成長しました。そんなGitHubの共同創業者であるスコット・チャコン氏が、「一体なぜGitHubは成功したのか」について自ら解説しています。

Why GitHub Actually Won

https://blog.gitbutler.com/why-github-actually-won/



チャコン氏によると、GitHubの共同創業者である4人はそれ以前に別のサービスを立ち上げた経験があり、製品としての品質もセンスも良かったものの、市場の環境やタイミングが合わなかったためそれほど成長できなかったとのこと。それなのにGitHubが成功した理由について、チャコン氏は「適切なタイミングで立ち上げたこと」「センスが良かったこと」の2つに要約できるとしています。

まず、GitHubがリリースされる3年前の2005年に、ソースコードの分散型バージョン管理システムであるGitが登場しました。GitはLinuxカーネルのソースコード管理に用いるため、Linuxカーネルの開発者であるリーナス・トーバルズ氏が開発したものです。

当時のソフトウェア開発では、一般的にSubversionのような集中型バージョン管理システムが用いられていました。チャコン氏は、正直なところプロプライエタリな商用ソフトウェアを開発する限りにおいて、チェックアウトや変更、チェックインが容易な集中型バージョン管理システムに大きな問題はなかったとしています。



しかし、問題は当時成長しつつあったオープンソースソフトウェアの開発プロジェクトにありました。GitHubがリリースされた2008年当時、活動していたオープンソースプロジェクトは約1万8000件だったと推定されています。しかし、集中型バージョン管理システムは複数の開発者が開発に参加するオープンなプロジェクトにとって、非常に使い勝手が悪いものでした。

たとえば、あるオープンソースプロジェクトに外部の開発者が貢献したい場合、「最新バージョンをチェックアウトする」「変更を加える」「GNU Diffutilsでパッチファイルを生成する」「パッチファイルをオープンソースプロジェクトが使用するチケットシステムまたはメーリングリストにアップロードする」といった工程を踏む必要がありました。

さらにオープンソースプロジェクトのメンテナは、「パッチファイルをプルダウンする」「プロジェクトを適用して正常に動作するかをチェックする」「フィードバックを返すか、プロジェクトに変更を加えるか、変更をコミットする」といった対応をして、ようやくオープンソースプロジェクトに貢献が加えられます。このプロセスは非常に時間がかかるもので、オープンソースプロジェクトの運営や貢献は困難でした。

そんな中で台頭したGitは、ブランチ作成やマージが驚くほど簡単で素早く、権限の管理も非常に単純でした。チャコン氏は、「Gitの初期の頃は、ステージに上がっていくつかのブランチを作り、変更をコミットし、ブランチを切り替えてマージするということを60秒でやっていました。文字通り、人々はあぜんとしました。何人かは私がデモを偽造していると思ったほどです。2006年当時、コンテキストの切り替えとマージがこれほど速く簡単にできるということは、魔法のように感じられました。Subversionでは、これは完全に悪夢でした」と述べています。



また、リポジトリを簡単にフォークして変更をプッシュし、さらに他の人がフォークにプルダウンできるようになった点も重要だったとチャコン氏は指摘しています。一部の人はGitが受け入れられた理由について、「クローンを作成した際に全履歴を取得できたから」だと考えているそうですが、チャコン氏によると当時の人々はそんなこと気にしていなかったそうです。

とはいえGitに弱点がないわけではなく、GitはメインプロトコルにSSHを使用していたため、他のチームのメンバーに内部サーバーへのSSH権限を与える必要があるのが難点でした。このGitホスティングの面倒さを解決するというコンセプトの下で、GitHubのプロジェクトがスタートしたとのこと。

当初は小規模なプロジェクトにすぎなかったGitHubでしたが、Gitそのものの人気が高まったこともあって注目を集めました。また、特にGitHubの成長にとって重要だったのが、プログラミング言語・Rubyのコミュニティに受け入れられたことだったとチャコン氏は回想しています。当時、Rubyコミュニティは新進気鋭の存在として注目されており、彼らが自身のプロジェクトをGitHubに投稿したことが大きなアピールになりました。

RubyコミュニティがGitHubを受け入れたのは偶然ではなく、チャコン氏を含む創業メンバーは初期のRubyコミュニティとのカンファレンスを開き、GitHubを実演したり講演を行ったりしていました。チャコン氏は、「私たちは製品を売っていたのではなく、自分たちが情熱を注いでいるものをみんなで共有していたのです。このコミュニティには高い信頼があり、GitHubの創設メンバーもその深い部分にいました。私たちはお互いの製品を試し、支え合っていたのです」と述べています。

RubyコミュニティがGitHubを使用していたことで、あらゆるカンファレンスでGitHubのプラグインが表示されることとなり、実質的に無料の広告として機能しました。これによりますます多くのプロジェクトがGitHubに移行したり、新しいプロジェクトがGitHub上で始められたりして、ホスティング分野での優位性を確立することにつながったそうです。



チャコン氏は、その他のホスティングサービスとGitHubの大きな違いとして、開発者らが自分自身のために構築したサービスであり、開発者を本当に大切にしていたという点を上げています。

「私たちは開発者であり、自分たちが理想とする働き方を実現するために、自分たちが望むものを作りました。開発者が開発者のために作り、開発者のエクスペリエンスよりも収益のために最適化しようとするPMや会計士、CEOがいないのはGitHubだけでした。最終的にGitHubが勝利したのは、オープンソースコミュニティが分散型バージョン管理に収束し始め、ホスティング分野で開発者の働き方を本当に気にかけていたのが私たちだけだったからです」と、チャコン氏は述べました。