オープンソースプロジェクトへの貢献方法
Sam Hepburn
2022年10月17日
0 分で読めます開発者として、日々オープンソースを活用していることでしょう。オープンソースコードは、個人用・業務用を問わず、製品の構築や改善に大きく役立ちます。では、さらに一歩進んで、オープンソースプロジェクトに貢献することを考えたことはありますか?貢献することで、自分のスキルを磨き、ソフトウェア開発コミュニティ全体に良い影響をもたらせます。
とはいえ、踏み出すのは難しく感じるかもしれません。何から始めればよいのでしょうか?オープンソースプロジェクトを取り巻くコミュニティやフォーラムに、どう参加すればよいのでしょうか?失敗への不安をどう乗り越えればよいのでしょうか?大きな壁に思えるかもしれませんが、オープンソースの仕組みを理解すれば乗り越えられます。
オープンソースに貢献する理由
オープンソースとは、定義上、特定のライセンス要件のもとで公開され、閲覧、変更、配布ができるソースコードです。オープンソースコードの利用しやすさから、開発者が新しいプロジェクトを立ち上げたり、既存のプロジェクトを改善したりして、開発コミュニティ全体に貢献する文化が自然に生まれました。
誰もが利用できるソースコードとして始まったオープンソースは、今では対話、イノベーション、貢献の場となっています。オープンソースプロジェクトを利用するだけでなく、貢献することを選ぶ主な理由を見ていきましょう。
利用しているソフトウェアに貢献する
よく使うオープンソースコンポーネントはありますか?使い慣れているからこそ、バグやエラーを見つけやすいでしょう。よく使うプロジェクトに貢献する開発者が多いのは、内容をよく理解しており、見つけた問題を修正したいと考えるからです。
より大きなコミュニティに参加する
プロジェクトに貢献すると、ユーザーやコントリビューターからなる、より大きなコミュニティの一員になれます。つながりを通じて、人に教えたり、共通の関心を持つ人と出会ったり、経験豊富な開発者から学んだりする機会が得られます。仕事探しやキャリアアップに役立つ情報源にもなるでしょう。
スキルを磨き、自分の力を高める
特定の分野のスキルを磨きたいなら、オープンソースへの貢献は絶好のスタートです。伸ばしたいスキルに合わせてプロジェクトを選び、コミュニティの力を借りて成長できます。学習と協力の過程では、ドキュメントの作成や自分の作業の説明も上達し、チームの一員としてより力を発揮できるようになります。
さらに、自信がつくというメリットもあります。プロジェクトに小さな変更を加えるだけでも、次に利用する人に良い影響を与えられるのは、大きな励みになります。
初心者向けのオープンソースプロジェクト
オープンソース開発の初心者は、インポスター症候群や、他人のプロジェクトを台無しにしてしまうことへの不安(もっともな不安です)を感じるかもしれません。こうした不安を乗り越えるためのヒントをいくつか紹介します。
プロジェクトは慎重に選ぶ
初心者のうちは、複雑すぎたり難しすぎたりするプロジェクトは避けましょう。簡単なものから始め、少しずつ難易度を上げていきます。
慣れ親しんだエコシステムのプロジェクトを選ぶのも一つの方法です。使い慣れた技術を採用し、適切にメンテナンスされているものを探しましょう。メンテナンス状況は、読みやすいREADME、リポジトリ上の課題がきちんと解決されていること、定期的なコードの更新などから判断できます。
経験を最大限に生かすには、複数の貢献ができそうなオープンソースプロジェクトを見つけ、チームと継続的な関係を築きましょう。
ルールを守る
オープンソースの根幹にあるのは協力です。開発者がプロジェクトを損なうことのないよう、ルールが設けられています。ルールはプロジェクトごとに異なりますが、変更内容を指定の詳しさで記録することや、希望するプラットフォームやフォーラム(GitHubなど)で変更を提案する手順が定められている場合があります。
もちろん、コミュニティで暗黙の了解となっているルールは、文書化されていないこともあります。最初に知っておきたいものをいくつか紹介します。
プロジェクトに取り組み始めたら、どこまで貢献できるのか、できないのかを十分に理解する時間を取りましょう。
課題に取り組む前に、担当してよいか確認しましょう。
変更を加えると決めたら、その後の迅速な対応にも備えましょう。
プロジェクトを管理するコアチームから、PRへのレビューやコメント、反対意見が寄せられる可能性があることも念頭に置きましょう。
何より大切なのは、失敗から学ぶことです。失敗したり、周囲から批判されたりするのを恐れて、変更をためらう開発者は少なくありません。しかし、失敗を通じて学べることは、オープンソースへの貢献の大きなメリットの一つです。実践し、スキルを伸ばし、助けを求める方法を継続的に学ぶ機会になります。
貢献の種類
開発者がオープンソースプロジェクトに貢献する方法はいくつもあり、コード自体の変更だけが貢献ではありません。自分のスキルや成長目標に合うプロジェクトを探す際は、コミュニティ全体に向けてできる、次のような貢献も検討してみましょう。
ユーザーフィードバックを提供する
プロジェクトを頻繁に使っているなら、率直なフィードバックを届けましょう。オープンソースコミュニティは、何らかのフォーラムやサーバーを中心に形成されていることが多くあります。プロジェクトのRedditスレッド、Discordチャンネル、GitHub Discussionsなどを確認してみましょう。会話に参加してフィードバックを伝えれば、コアチームやほかのコントリビューターがプロジェクトを改善する際に役立てられます。
コードを書く
この記事で紹介してきたように、プロジェクトへの貢献で特に大きく、取り組みやすい方法の一つは、より良く動作するようにコードを修正または作成することです。コミュニティから指摘されている課題を探し、そこから始めましょう。プロジェクトの管理者が定めたガイドラインに従ってください。
バグを見つけたらコアチームに知らせる
コミュニティを支援する、簡単でありながら効果的な方法として、見つけたバグをプロジェクトのコアチームに直接知らせることもできます。チームが対応して変更を加えることで、すべてのユーザーにとってソフトウェアが改善されます。
ドキュメントの修正を提案する
オープンソースのドキュメントを最新の状態に保つのは大変な作業です。新しい情報や誤り、誤字脱字に注意を払いながら、定期的かつ継続的に更新しなければなりません。オープンソースコミュニティでは、誰もがボランティアで貢献しているため、さらに難しくなります。
ドキュメントの更新は、コードの機能やセキュリティに影響する情報を反映することもあるため、重要な作業です。オープンソースプロジェクトのコアチームもユーザーも、誰もがプロジェクトを安心して自由に使えるよう、コミュニティのメンバーによるドキュメントの修正や更新を歓迎します。
新しいユーザーを支援する
プロジェクトのフォーラムやサーバーに参加していて、コードに詳しいなら、新しいユーザーの質問や悩みに答えてみましょう。特定の問題への対処法を共有したり、DevOps、SecOps、セキュリティ・バイ・デザインなどの重要なトピックについて自分の考えを伝えたりできます。
プロジェクトについて自分のコンテンツを作る
YouTubeチャンネルやブログ、その他のソーシャルメディアアカウントを運営しているなら、プロジェクトの使い方を紹介する文章や動画を作ることで、オープンソースコミュニティに貢献できます。
今日から始めよう
オープンソースプロジェクトへの貢献に、卓越したスキルや何年もの経験は必要ありません。現在のキャリア、スキル、経験に合わせて、今いる場所から始められます。
オープンソースコミュニティに参加すれば、自分を成長させ、経験を積めるだけでなく、最高のコードを生み出し、最終的にはテクノロジーを誰にとってもより良いものにするための、世界規模の議論に加われます。
Snykのチームも、オープンソースコンポーネントのセキュリティと品質を高めるツールを通じて、この継続的な議論に参加できることを誇りに思っています。
よくある質問(FAQ)
GitHubでオープンソースに貢献するには?
GitHubは、オープンソースコンポーネントを見つける場所として広く利用されています。GitHub上のプロジェクトに貢献するには、まず変更したいプロジェクトの部分を自分のGitHubアカウントにコピーします(フォークと呼ばれる操作です)。次に、自分のコンピューターにクローンして変更を加え、プッシュします。その後、プルリクエストを作成すると、プロジェクトのオーナーが変更内容を確認できます。
オープンソースプロジェクトはどこで見つかる?
インターネット上には、利用や貢献ができるオープンソースコードが数多く公開されています。探すのにおすすめの場所は、GitHub、Gitlab、SourceForgeなどです。また、Up For Grabs、Ovio、First Contributionsなどのサイトでは、初心者向けのプロジェクトを集めて紹介しています。
CTFを始めよう
オンデマンドのバーチャル入門ワークショップを視聴して、CTFの課題の解き方を学びましょう。


