DUICUO

GitHub はオープンソースの民主化に革命をもたらしました。

GitHubは、コラボレーションプラットフォームとして、国内外のオープンソースコミュニティにとって徐々に第一選択肢となっています。最近、オープンソースコミュニティのベテランであり、Getableの最高技術責任者であるMikeal氏は、GitHubがもたらしたオープンソースの変化を分析した記事を執筆し、民主化の重要性を強調しました。また、この価値観に基づいて生まれたソフトウェアは、顧客にとって使いやすく、過度に「エンジニアリング」されておらず、大規模なソフトウェアエコシステムを支えていると指摘しました。

Mikeal 氏は、GitHub が作られる前は、オープンソース ソフトウェアは人々が期待するほど民主的でも平等主義的でもなかったと指摘しています。

実際はそうではありません。ほとんどのオープンソースソフトウェアは、少数の特権的な開発者グループによって開発・保守されており、彼らは同じレベルの少数の内部関係者とのみ交流しています。

GitHub導入前は、オープンソースプロジェクトの管理と維持に全力を尽くしていました。なぜなら、共同作業にかかるコストが比較的高かったからです。例えば、プロジェクトが順調に進み、ある程度の規模のコミュニティに成長した時、肥大化したプロジェクトを小さなサブプロジェクトに分割するのではなく、そのまま維持し続けることが最善のアプローチだと気づきました。しかし、結果としてプロジェクトは複雑化し、個々の開発者が望むような貢献をすることが難しくなってしまいました。そのため、前述の通り、オープンソースプロジェクトの管理と維持に専念できるのは少数の人々だけとなり、プロジェクトの実際のユーザーとメンテナーの間に情報格差が生じていました。

しかし、GitHubの「民主化」モデルはこの問題を効果的に解決し、より多くの開発者に貢献の機会と可能性を与えました。その理由は次のとおりです。

GitHubのワークフローは非常にユーザーフレンドリーです。すべての開発者はGitHubに自分のアカウントを登録でき、そこにはすべての情報が含まれています。プロジェクトを修正したい場合は、フォーク操作を実行するだけで、元のプロジェクトのコピーが自分の作業ディレクトリにコピーされ、コードが変更されます。

このワークフローは非常に強力です。個々の開発者が、他者が既に作成したプロジェクトを修正することを奨励しながらも、自分が作成したプロジェクトと同様に、それらのプロジェクトの所有権と管理権を保持できるからです。この革新的なオープンソース文化の中で、すべての開発者が認められ、評価されることができます。そして、GitHubは事実上、インターネット上で最大の共同開発サービスプロバイダーとなりました。

マイケルは10年以上にわたりオープンソースプロジェクトに貢献してきましたが、今日のオープンソース文化における大きな変化は、彼がもはやプロジェクトの「特定のメンバー」ではなく、単なるユーザーであるということです。ユーザーの重要な特徴は、誰もがプロジェクトに「自分の役割」を貢献できることです。マイケルが利用している様々な小規模プロジェクトでは、プロジェクトのメンテナーとより具体的なやり取りを行っており、週に数回のやり取りを続けています。しかし、別の方向から大きな流れが生まれています。マイケルは自身のプロジェクトの発起者として、これらのプロジェクトのコード変更に関して、見知らぬ開発者から多くの依頼を受けるようになったのです。

Mikealは、GitHubの最初のバージョンが1つの点で優れていたと考えています。それは、個々の開発者がコードを公開することが以前よりもはるかに容易になったことです。これにより、Ruby on Railsなどの多くの影響力のあるプロジェクトがGitHubに迅速に移行できました。しかし、その後に起こったことは、実際にはさらに興味深いものでした。人々はソースコード以外のほぼすべてのものをGitHubで公開し始めたのです。GitHubでのコード公開はツイートするのと同じくらい簡単になったと言っても過言ではありません。ユーザーの参入障壁を下げ、オープンソースプロジェクトへのコラボレーションと貢献を容易にすることで、GitHubは共同開発の範囲を一般開発者にまで拡大しました。

GitHubモデルを採用したオープンソースソフトウェアの利点は何でしょうか?Mikeal氏は、主に3つの利点があると考えています。

ソフトウェアはよりユーザーフレンドリーです

オープンソースソフトウェアは長年、「前進しながら止まる」傾向にあることが大きな問題となってきました。多くの類似の商用ソフトウェアプログラムと比較すると、オープンソースソフトウェアはドキュメント、ウェブサイトのデザイン、そして汎用性が不十分であることが多いのが現状です。

しかし、貢献への参入障壁が低いため、技術スキルに乏しいユーザーでもオープンソースソフトウェアを使いながらこれらの問題を改善できます(以前は難解だったエラーメッセージがよりユーザーフレンドリーになり、CSSを1、2行変更するだけで、古いブラウザやモバイルプラットフォームでもウェブページを利用できるようになります)。この新しいオープンソースソフトウェアモデルでは、誰もがテクノロジーを活用でき、必ずしも専門家である必要はありません。使いやすさは常に最優先事項です。

過剰なエンジニアリングを避ける

エンジニアは常に挑戦を喜びとし、問題を解決する機会が多ければ多いほど、より完璧な解決策を思いつく可能性が高まります。もし、そのような解決策のユーザーがエンジニアと同等の技術力を持ち、古い問題をよりスマートに解決する方法を見つけることに同じくらい熱意を持っているなら、すべてはうまくいきます。

問題は、アマチュアは自分にとって明白で自明な解決策を好む傾向があり、一度解決した問題を再度検討することはほとんどないということです。アマチュアは最も明白な解決策しか使わないため、開発者は難しい問題を解決するために、シンプルで実用的な解決策を模索せざるを得なくなります。

大規模なソフトウェアエコシステムのサポート

Mikealが頻繁に参加しているNode.jsプロジェクトを例に挙げると、Node.jsは誰もが独立した小さな関数ライブラリを作成し、自由にリリースできる、非常にシンプルなパターンを定義しています。このエコシステム内では、誰もがコラボレーションなしにその価値を活用できます。これは、多数のツールや機能を備え、特定の商用ソフトウェア環境(Cocoaなど)を必要とする大規模なソフトウェアプロジェクトとは対照的です。

GitHub の Node.js プロジェクトなどのオープンソース環境では、API の障壁が低く、開発者がエコシステム内の他の価値を活用できるようになっています。

マイケル氏は次のように結論づけました。

GitHubは、新世代の開発者がより協調性、創造性、生産性を高めるための力となります。多くの開発者は、かつての正式なオープンソースグループや委員会を懐かしむかもしれませんが、新しいオープンソースモデルが登場し、新しい世代のオープンソース参加者が誕生しました。この新しい文化を受け入れていきましょう。

編集部注:GitHubは国内のオープンソースおよび開発コミュニティにおいてますます影響力を強めています。多くの国内技術者やインターネット企業が、GitHub上でコードや書籍を含む独自のオープンソースプロジェクトを展開しています。オープンソースプロジェクトへの参加は、開発者の真の技術力と協調性を示す指標となることもあります。「オープンソースプロジェクトへの参加経験者は優遇します」と謳う求人広告が数多く見られるのも、この現象が如実に表れています。国内の技術コミュニティがオープンソースプロジェクトとその参加者をいかに重視し、高く評価しているかを如実に示しています。オープンソースはステータスの象徴となりつつあります。あなたはGitHubを使っていますか?

[編集者のおすすめ]

  1. GitHub がどうしてこんなに人気になったかご存知ですか?
  2. オープンソースの発展についてどうお考えですか?
  3. GitHub世代:私たちは皆オープンソースのファンです
  4. 管理者ハンドブック: きっと気に入るオープンソースツール

[編集者:黄丹、電話:(010) 68476606]