学習方法

OSS (オープンソースソフトウェア) とは?開発への参加方法などを解説

ソースコードが公開されており、オープンに開発されているOSSについてや、OSSの開発に参加する方法などを解説します。

OSS (オープンソースソフトウェア) とは?開発への参加方法などを解説

arrow_drop_down 目次

みなさんOSSというものは知っていますか?

OSSはオープンソースソフトウェアの略称で、ソースコードが公開されているソフトウェアのことを指します。

みなさんにとって非常に馴染み深いものにもOSSが多く、OSSと知らずに使っている人も多いでしょう。

有名なものでいうと以下のような名だたるソフトウェアがOSSで開発されています。

  • Linux
  • MySQL
  • WordPress
  • Ruby
  • PHP
  • Python
  • React.js
  • FireFox

エンジニアがOSS開発へ取り組むべき理由

エンジニアがOSS開発に取り組むべき理由は以下のようなものがあります。

実績になる

OSSへの貢献は開発者個人の実績になります。

OSS開発に参加することで、本質的に自分自身の開発の実力が高まります。

これはOSS開発という経験で実力が高まるだけでなく、自身のGitHubリポジトリが充実したりなど表面的にも転職やフリーランス活動時のブランディングにもなります。

繋がりができる

OSS開発に参加し、コミュニティに属する中で当然繋がりができます。

こういった繋がりは、自身のエンジニアとしてのモチベーションになったり、転職のきっかけやチャンスになる可能性があります。

楽しい

これは一番基本的なことですが、多くの人にとって自分が一部でも開発したソフトウェアを広く多くの人が使うのは非常に嬉しく、楽しいことでしょう。

OSS開発に参加している人は、自身のブランディングやコミュニティとの繋がりといった理由よりも、結局は楽しめるからやっているという人が多いでしょう。

OSS開発への参加の仕方

OSSの開発への参加はとっつきづらい印象がありますが、実際にはそんなことはありません。

もちろん身勝手な開発などはコミュニティに受け入れられないでしょうが、基本的なモラルやマナーに沿って行えばOSSへの貢献は歓迎されるものです。

OSS開発への参加の流れは以下のようになります。

1. 開発に参加するOSSを決める

当然ですがまずはどのOSSの開発に参加するか決めます。選択肢は以下のようなものがあります。

・普段使っているOSS

これはあなたが普段使っているOSSのバグやドキュメントの不備に気が付いて開発への参加を決めるパターンです。ほとんどの人はこういった経緯でOSSの開発に参加しだすと思います。

・イシューバウンティサービスを利用する

OSSのイシューやバグのバウンティ (懸賞) プログラムのためのサービスがあり、それを利用するという選択肢です。

これはOSSの管理者によってイシューの解決やバグの修正案件がリストされ、そのリストの中から自分が貢献できそうなものを選ぶという方法です。

このようなサービスを利用した場合、報酬が与えられる場合も多々あります。

イシューバウンティサービスは以下のようなものがあります。

中でもブロックチェーンを利用したものには以下のようなものがあります。

2. OSSのコントリビューションガイドを読む

OSSにはほぼ必ずコントリビューションガイドなどという名前のファイルで、開発に貢献する上でのそのプロジェクト内での取り決めや手順が説明されています。

これをしっかり読んでから参加しましょう。

3. 開発への参加の仕方を決める

基本的に以下の3つような参加の仕方があります。

・ドキュメントを改善する

開発ドキュメントは必ずしも完璧ではないので、不備があったり翻訳が必要だったりします。ドキュメントの改善という参加の仕方はOSSへの開発とは言えないのではないかと思いがちですが、全くそんなことはなく、むしろ喜ばれるものです。

・イシューを立てる

基本的にOSSを使っていて何か問題が発生した場合はそのOSSのGitHubリポジトリでイシューとして報告します。これもコードへの変更は加えていませんが、立派な開発への貢献です。

・コードを書く

実際にコードを直すことが一番大きなOSS開発への貢献の仕方です。

問題として報告されているイシューの中でオープンなもののコードを改変するなどが、とっつきやすいでしょう。それぞれのOSSでコードの雰囲気が異なるのでまずはメンテナーに連絡してみるのもいいでしょう。

実際に参加する

上述のようにコントリビューションガイドなどが存在し、そのファイルで手順やルールなどが説明されていますが、一般的に基本的な流れは以下のようになっています。

  1. GitHubで自分のリポジトリにフォークする
  2. イシューを報告する or 自分のリポジトリからローカルにクローンする
  3. 変更を自分のリポジトリのブランチにプッシュしプルリクエストを送る
  4. マージされる or 議論ののちにマージされる

まとめ

このようにOSS開発への参加は難しいものではありませんし、OSSの開発に参加することで良いことが多くあります。

これを機に皆さんも一度OSS開発に参加してみてはいかがでしょうか。

「PR」自身の力でブロックチェーンアプリケーションを作ってみませんか?

自身の手でブロックチェーンアプリケーションを作りたいと考えている方は、プログラミングスクールに通ってみてはいかかでしょうか?

  • ブロックチェーンを学んで、今までにない何か作ってみたい
  • 今のうちにブロックチェーンの概念を理解し、開発もできるようになっておきたい
  • プログラミング初心者だけどブロックチェーンアプリケーションを作ってみたい
  • 独学で本や記事を見ながら勉強したけど、途中で一度挫折してしまったためメンターをつけて学びたい

と感じてる方は、BLOCKCHAIN Code Campがおすすめです。

BLOCKCHAIN Code Campとは

プログラミンング初心者からでもブロックチェーンアプリケーションを作ることができるオンライン完結型のプログラミングスクールです。現役のブロックチェーンエンジニアが1対1でメンターとなって、最短3ヶ月で、ブロックチェーンの概念や、ブロックチェーンアプリケーションを作れるようになれます。

現在無料相談会も実施しております。 少しでもご興味ある方は、こちらのサイトよりお問い合わせください。