1. ホーム
  2. コース一覧
  3. LinuC Level1 v10.0 対策コース(パート2)
  4. オープンソース開発について

LinuC Level1 v10.0 対策コース(パート2)29/29

オープンソース開発について

こちらの記事ではオープンソース開発のしくみやオープンソースコミュニティへの参加方法について解説します。

オープンソース開発の仕組み

オープンソースの広まり

ソフトウェアを作成・構築する上で、オープンソースは標準的な方法の一つと言えるでしょう。オープンソース開発は主にインターネットを中心としたオープン・ネットワークを通じて、多数の企業や開発者が参加して進められます。開発されたプログラムはソースコードと共に公開され、修正・改良・再配布されることで広まっていきます。

開発手法

従来のソフトウェア開発は設計者が全てのプランを決定する「カテドラル(大聖堂)モデル」であったのに対し、オープンソース開発は企業や個人などあらゆる枠組みを超え様々な人が自発的に開発に参加できる「バザールモデル」により作り上げられるのが大きな特徴として挙げられます。 OSSを共に開発する人たちによって形成されているのが「コミュニティ」です。

コミュニティの構成

一例として、コミュニティは以下のような役割で構成されることがあります。

1. リーダー

プロジェクトを統括し、コミュニティの最終決定責任者です。必ずしもコミュニティ内で最も優れたコードを書く人物ではなく、プロジェクト全体を大切にし、コミュニティ全体の最善の利益のために決定を下す能力を持った人物が適任とされます。

2. メンテナー

メンテナーはオープンソースプロジェクトの中心的な役割を担い、バグの修正や新機能の実装がプロジェクトの目的や方針に沿って行われることを確認します。開発者が作成したコードをレビュアーが検証した後、メンテナーが最終的な承認を行い、変更をプロジェクトのコードベースにマージします。また、プロジェクトの品質を保つためのガイドラインやポリシーの策定、コントリビューターとのコミュニケーション、リリース管理などもメンテナーの責任範囲に含まれます。そのため、メンテナーはオープンソースプロジェクトにおいて重要な役割を果たす指導者といえます。

3. コミッター

リポジトリへのコミット権限を持つ人を指します。

4. コントリビューター

OSS開発において、有志により開発へ貢献する人です。

5. ユーザー

実際にOSSを使用する人です。

OSSコミュニティの種類と参加方法

OSSコミュニティの種類及びそれぞれの参加方法について解説します。

コミュニティの種類

OSSコミュニティは、大きく2つに分類できます。

1. ユーザーコミュニティ

使用側と開発側がメーリングリストなどで事例・ノウハウの共有をするコミュニティや、OSSを普及させたり、OSSの使い方の勉強会を開いたりするサークルのようなものがあります。

2. 開発コミュニティ

OSSのプログラム自体の開発を行う目的のコミュニティを指します。

コミュニティへの参加方法

まず、自分がどのタイプのコミュニティに参加したいかを決めることから始めましょう。 意欲的にコミュニティ活動に取り組んでも、自分の活動したい内容とコミュニティの方針がずれていると両者とも上手くいかなくなってしまいます。

開発コミュニティの目的は開発なのでコードを書くことやドキュメント執筆、テストなどの技術面で貢献できることが参加するための基本的な条件となります。一方ユーザーコミュニティの在り方は多岐に渡るので、自分自身の目的に沿ったコミュニティを探すと良いでしょう。

オープンソースコミュニティへの参加を支援するツール

1. GitHub

GitHubはソフトウェア開発のためのプラットフォームであり、世界各国無数のオープンソースプロジェクトが立ち上げられており、世界中のユーザーが自分の目的に合ったプロジェクトを探してOSS活動に参加しています。

2. GitHub Help Wanted

OSS開発への参加に不安を感じる人は、 GitHub Help Wanted から始めてみると良いかもしれません。自分が触れたことがある言語を選択し、「bug」「easy」「help wanted」などのレベルを絞り込み、イシュー(Issue=課題)を探してチャレンジしてみましょう。

他にも様々な方法でコミュニティへ参加できるので積極的に情報を探し、勉強会・カンファレンスなどにも参加してみましょう。

オープンソースエコシステム

エコシステムという言葉は、もともと「生態系」を意味する英単語です。 ビジネスの分野では、独立した個々の企業・事業・製品・サービスなどが相互に影響・依存しあって一つの環境を構成する様子を生物の生態系に模して 「エコシステム」 と表現します。

オープンソースのエコシステムでは、ハードウェア、ソフトウェア、開発、サービス、ユーザーといった要素がそれぞれ相互に影響を及ぼしながら、どのように開発や改良を行い、利用していくかという問題に取り組み、オープンソースの世界の健全で安定的な発展を促進する理念が追求されます。

まとめ

オープンソース開発のしくみや参加方法について解説しました。 OSSの開発に参加することはハードルが高いと感じられるかもしれませんが、Githubをはじめとする様々なプラットフォームを通じて、多くのコミュニティに参加することが可能です。まずはOSSの使い方の勉強会を開いているユーザーコミュニティや、簡単なバグの修正から始められる開発コミュニティに参加してみましょう。

記事の内容は理解できましたか?