LinuC-1 - 102試験 - 1.11:オープンソースの文化 - 1.11.2 オープンソースのコミュニティとエコシステム

Last Update : January 11 2021 23:19:19

     

a. オープンソース開発

オープンソース・ソフトウェアに代表されるソフトウェアの開発方式は、インターネットを中心としたオープン・ネットワーク上で、多数の企業、開発者の参加によってオープンな形態で進められ、また開発されたプログラムはソース・コードも含めて公開され、修正・改良が加えられ再配布される。

Linux に代表されるオープンソース・ソフトウェア、これによる新たなソフトウェアやシステムの開発はインターネットも利用して自主的に参加する人材が集まり、自由に利用できるソース・コードと、迅速な対応が可能となる。また統一した規格や標準化もオープンな場で議論し、決めることが可能であり、開発においても中小企業であってもソフトウェアに機能を付加したり、システムを構築するなどのビジネス機会を広げる可能性がある 。
オープンソース・ソフトウェアの開発方式は従来のソフトウェア開発のトップダウンの開発方式=「伽藍(大聖堂)型」の開発方式(スケジュールと役割分担を明確し、高層ビルを建設するように開発が進む=ウォーター・フォールの開発モデル)に対して、企業や組織の枠を超えて多くの研究者、開発者、ベンチャー企業などが自発的に開発に参加する「バザール型」の開発方式によって進められてきた。この企業や組織の枠を超えたオープンソース・ソフトウェアのエンジニアによる「組織」は「コミュニティ」と呼ばれ、このきわめて協働的なコミュニティに参加するエンジニアの動機はオープンソースに対する信念や知的刺激、技術力の向上であると言われている。



b. OSS コミュニティ

  1. コミュニティは、ある目的を達成するために、世界中の有志が各人のできることを提供することで成り立っている組織。
  2. コミュニティには、開発コミュニティとユーザコミュニティがある。
  3. OSSのバグや不足している機能を発見し、その修正点をコミュニティへ送ることで、開発に参加できる。
  4. ユーザ会の運営するメーリングリストに登録して技術的な質問を行い、ノウハウを共有することからコミュニティ参加が始まる。

1) OSSコミュニティの種類と特徴
OSSコミュニティには、開発をするためにプログラマが参加しているコミュニティや、ドキュメントの提供やメーリングリストの運営を実施しているコミュニティなどがある。
ユーザ会は使う側と開発する側がメーリングリストなどで技術的な質疑応答を行い、事例・ノウハウを共有する。

2) コミュニティへの参加方法
OSSにバグや不足していると思われる機能を発見し、その部分の修正を行って、その修正点(パッチ)をコミュニティへ送ることで、開発に参加するケースが多い。



a. OSS コミュニティの体制

コミュニティは以下のような役割の人たちで成り立っています。

  1. リーダー:機能やリリース、その他のアクティビティについて、最終決定を下す責任者のこと。いくつかのケースでは、1人の人物です。またはプロジェクトを統括するコア技術委員会(Core Technical Committee)のように、プロジェクトのさまざまな側面を担当する複数の委員会を設置しているプロジェクトもあります。
  2. メンテナー:リーダーは、プロジェクトのいくつかの特定の部分を保守する責任を持つ人々に一部の決定事項を委譲します。大きなプロジェクトでは、これらのメンテナーが、さらに、その中のサブ コンポーネントに対する保守責任を他の人に委譲する場合もあります。
  3. コミッター:一部のプロジェクトでは、プロジェクトに参加してきた、信頼できる責任感のある人々のグループがあり、サブミットに対するメンテナーのレビューなしに、プロジェクト全体、または一部に直接コミットできるようにしています。コミッターからの提案や働きは、メンテナーやプロジェクト リーダーのレビューの対象となり、提案や働きに懸念があれば元に戻されます。
  4. コントリビューター:多くの人々が、コード、ドキュメント、およびその他のコントリビューションでオープンソース プロジェクトに貢献しています。これらの参加者の提案や働き(コントリビューション)は、参加者の提案や働きが採用される前に、経験豊富なコミッターやメンテナーからレビューを受けます。
  5. ユーザー:オープンソース プロジェクトの最も重要なグループは実際に製品を使用しているユーザーだと思います。ユーザーはプロジェクトに目的を与え、成長を助けてくれます。これらのコミュニティの貴重なメンバーは、機能、バグレポートなどについてのフィードバックを提供してくれています。

コミュニティは、オープンソース プロジェクトを作ることも壊すこともでき、強力で活気に満ちて、多様な人たちで構成されたオープンソース コミュニティを持つことは、プロジェクトの成功にとって重要です。上に挙げた役割を果たしている人々は、ドキュメンテーション、マーケティング、ユーザー サポートなど、プロジェクトの他の重要な役割を果たしている人たちとともにコミュニティを構成しています。



z. 出題範囲概要

概要 :
  • オープンソース開発のしくみを知っている。

詳細 :
  • コミュニティの構成や参加方法を知っている。
    メーリングリスト、掲示板、開発サイト、開発体制
  • オープンソースエコシステムへの参加について知っている。
    使用、紹介、バグ報告

  [ 例題 ] 


         

    www.it-shikaku.jp