オープンソースに貢献するための決定的なガイド

オープンソースについて私が知っていることをすべてお話しします。簡単なことから始めましょう。あなたは製品が何であるか知っていますか?レストランのブリトーなど、手軽に食べられる商品です。ただし、この製品を作成するには、いくつかの手順を実行する必要があります。レストランには、このブリトーのレシピを持っているシェフがいます。彼らは常に同じレシピに従い、毎回適切な品質を確保するために同じ成分からそれを作ります。

オープンソースへの貢献は、技術分野への参入、キャリアの切り替え、または現在のキャリアの向上に役立ちます。コミュニティを助けながら!

ほとんどのレストランでは、シェフのところに行って、「ごめんなさい、ブリトーが大好きです。レシピをもらえますか?」彼らは拒否するでしょう—これはオープンソースではありません。オープンソースとは、製品に加えて、すべての材料とレシピにアクセスできる場合です。つまり、ブリトー全体を自宅で複製できます。

今、あなたがこのブリトーを作り始めたと想像してください、しかしあなたはあなたが肉を減らしたいという結論に達します。だからあなたはそれをアボカドに置き換えます。その場合は、レシピを取り、肉をアボカドと交換し、手紙の残りの手順に従って、何が出るかを確認します。

あなたの料理はレストランでの食事よりもおいしいことがわかるかもしれません。レストランがオープンソースプロジェクトのように運営されている場合は、シェフのところに行って、「ブリトーは素晴らしいですが、アボカドを追加したので、さらに良くなりました。メニューに追加できます。」

シェフの役割は製品メンテナーの役割です。彼らは変更を受け入れるか、決定するかもしれません

アボカドは悪い考えであり、レストランのコンセプトに合わないこと。いずれにせよ、プロジェクトへの変更を共有することで、あなたはただの貢献者になりました。

おめでとう!

プロジェクトを作るものは何ですか?

Firefoxブラウザはオープンソースプロジェクトの一例です。これは、数千行のソースコードと、このソースコードをWebブラウザなどの使用可能な製品に変換する方法の説明で構成されています。このコードは公開されているため、誰でもフェッチ、読み取り、監査、またはビルドできます。Firefoxの動作を変更したい人は、ソースコードを変更して、カスタマイズされたバージョンを作成できます。さらに、誰もがそれらの変更をプロジェクトのメンテナに送り返すことができます。

しかし、オープンソースプロジェクトにはコードだけではありません。また、ユーザーインターフェイスとグラフィックデザインもあります。はい、Vimエディターなどのターミナルプログラムでさえグラフィカルインターフェイスを備えています。

オープンソースに貢献するためにコーディングする必要はありません!

インターフェースの他に、ユーザーインタラクション、使いやすさ、ユーザーエクスペリエンス(UX)と呼ばれるものもあります。これらはすべて、ここ数十年で人気を集めています。デザイン、美術、心理学のバックグラウンドがある場合は、UI / UXでニッチを見つけることができます。製品を構成する次のものは、サウンド、グラフィックス、またはビデオを含むメディアです。すべてのプロジェクトにこれらがあるわけではありませんが、それほど珍しいことでもありません。

ただし、ドキュメントは見過ごされがちな部分の1つです。貢献する簡単な方法は、ドキュメントを改善することです。コピーライターは、これらのトピックに慣れている必要があります。テキストアセットと翻訳も簡単に入力できます。

次に、マーケティングがありますが、これもオープンソースプロジェクトに欠けていることがよくあります。これを修正できれば、コミュニティ全体にメリットがあります。マーケティングでプロジェクトを支援してください。そうすれば、より多くの潜在的な貢献者を引き付けることができます。

そして最後に、法的な部分があります。これは、主に巨大なプロジェクトに関係するかなりまれな要素です。主にオープンソースの問題を扱う弁護士がいて、そのほとんどがボランティアで時間を割いています。

あなたが散文を書いたり、描いたり、音楽を作ったり、優れたマーケター、または弁護士になれるなら、オープンソースコミュニティはあなたを必要としています!

設計、変更、ライセンスの作成ができないと感じた場合でも、恐れることはありません。別の種類の貢献をすることができます。エラーを報告したり、動作や外観の変更を提案したりできます。

何が一番いいか知ってる?コミュニティのすべてのメンバーが少しの時間、少しの努力、そして少しの個人的な経験に貢献すれば、コミュニティ全体が素晴らしい製品を手に入れることができます。多くの場合、無料です。

クリエイターのように感じませんか?バグレポートを送信するか、機能リクエストを発行してください。

なぜそれは私の時間の価値があるのですか?

なぜオープンソースに貢献する価値があるのですか?散歩に行く代わりに、提案やコードを書いたり、翻訳をしたりするのに時間を費やす必要があるのはなぜですか?いくつかの理由があります。それらはすべて、オープンソースへの貢献が公に目に見えるという前提に基づいています。誰もが他の人がしていることを見ることができます。そしてそれは素晴らしいです!

あなたはあなたの能力を高めます

コードを書いたり、インターフェースを設計したり、グラフィックを作成したりする場合は、学習していることになります。これは、転職を探している人にとって素晴らしいエクササイズです。オープンソースでは、あなたが上級開発者として働いているのか、庭師として働いているのか、誰も気にしません。重要なのは、あなたがもたらすことができる貢献の質です。そして、オープンソースプロジェクトで自分自身を証明すると、貴重な経験を積むことができます。ブートキャンプを終えたばかりの詐欺師のように感じることはもうありません。あなたは誰でもチェックできる実績を持つコミュニティの確立されたメンバーになります。

これは、1つのテクノロジーに固執している場合でも機能しますが、まったく別のテクノロジーで将来を想像してください。あなたがUXジョブの着陸を夢見ているCOBOL開発者だとしましょう。FirefoxでUXの改善を始めて、貢献を送ってください。承認されたら、履歴書に新しいポジションを追加できます。FirefoxプロジェクトのUXデザイナーです。何か便利なことを学び、資格情報を改善しました。

視認性が向上します

オープンソースプロジェクトなどのコミュニティに参加すると、すぐに新しい知り合いができ、プロジェクトに参加している他の人と会うことができます。あなたは彼らから学び、彼らとアイデアを交換することができます。

このようなコミュニティに参加することの2つ目の利点は、他のすべてのチャネルが自動的に表示されるようになることです。たとえば、あなたが貢献しているオープンソースプロジェクトへの訪問者は、あなたのYouTubeチャンネルについて知ったり、LinkedInであなたを見つけて仕事を提供したりできます。

これは私たちを次のポイントに導きます。

今日では、IT採用担当者が新しい才能を求めてGitHubをチェックするのが一般的です。コードを公開することで、誰でも確認できる実際の履歴書を実際に作成できます。以前の雇用主やクライアントに連絡する必要はありません。また、GitHubプロファイルがLinkedInプロファイルまたはホームページにリンクしている場合は、簡単にアクセスできるため、夢の仕事に就く可能性が高くなります。

その特定の分野での商業経験さえ必要ないことを覚えておいてください。それらの採用担当者にとって、あなたのオープンソースの貢献は同じように有効です!

あなたは雇用または新しいクライアントを見つけます

あなたが本当に上手であれば、オープンソースプロジェクトに取り組むための有料オファーを得ることができます。これは主に、企業または非営利団体からの安定した財政的支援があるプロジェクトに予約されています。

あなたは新しい従業員を見つけます

これは逆の方法でも機能します—潜在的な従業員を見つけることができます。クールで他の人に役立つことをする場合は、それをオープンソースプロジェクトとして公開してください!誰かがあなたのプロジェクトを改善したり、あなたのために働いたりしたいと思う可能性があります。

あなたは他人のために何かをします

これらのプロジェクトに参加することのもう1つの利点は、他の人のために何かをして感謝の気持ちを得る機会です。あなたが受け取るすべての「ありがとう」のメモはあなたの時間を価値があるように思わせるでしょう— —そしてあなたは素晴らしいプロジェクトにさえ貢献したかもしれません。

あなたは素敵な統計にアクセスできます

あなたはゲーミフィケーションのファンですか?それならこれはあなたのためです。統計が本当に好きな人もいますが、GitHubは特別なものを提供します。最大のオープンソースコミュニティであるGitHubで実行する各アクションは、巨大なカレンダーに緑色の四角でマークされています。一日に多くのことをするほど、広場は明るくなります。数日間連続して投稿すると、GitHubはそれをストリークとしてカウントし、将来の参照用にスコアを保持します。これは、これまでの最高のスコアを打ち負かす動機として機能します。

最初のプロジェクトをどのように見つけますか?

いくつかの方法があります。まず第一に、FirefoxやAndroidのような大手プレーヤーはユーザーベースが高く、多くの変更と改善が必要です。そのようなプロジェクトに変更を導入すると、その変更は何百万人もの人々に見えるようになります。GitHubにアクセスして、最も人気のあるリポジトリを確認できます。たとえば、この記事の執筆時点で最もスターの多いリポジトリはfreeCodeCampです。

あなたが初心者の場合、私は必ずしもこの最初のアプローチをお勧めしません。巨大なプロジェクトの主な利点は、その主な呪いでもあります。誰もが貢献したいと思っていますが、あなたの要求に応えることができるメンテナの数は限られています。本当に影響を与えたい場合は、代わりに、増加している小さなプロジェクトを試すことができます。GitHub Trendingは、そのようなケースを見つける場所です。

別のアプローチは、初めての貢献者として素晴らしいプロジェクトを選択することです。これをエネルギー効率の高いアプローチと呼びましょう。素晴らしいプロジェクトは、リンクのリストがまとめられ、キュレーションされています。たとえば、awesome-shellはクールなCLIの結果を一覧表示しますが、awesome-JavaScriptは毎日ポップアップするすべての光沢のある新しいフレームワークを処理します。あります素晴らしい本と当然の拡大マインドのリスト素晴らしいリストが。

なぜそれが良いアプローチなのですか?実際に貢献するために必要な労力はかなり少ないので、よくやった仕事の結果としてドーパミンブーストを得る可能性が高いです。このドーパミンブーストは、次の貢献などをトリガーする必要があります。ボールが転がり始めると、それを止めるのは難しいです。

私がお勧めする最後のアプローチは、巨大なオープンソースイベントに便乗することです。毎年10月に祝われるそのようなイベントの1つはHacktoberfestです。参加者は、GitHubで5つのプルリクエストを行う(つまり、5つの投稿を行う)ことが期待されています。このタスクを実行するすべての人は、スポンサーから素晴らしい特典(Tシャツやステッカーなど)を受け取ります。参加者が簡単に利用できるように、いくつかのサンプルプロジェクトがWebサイトにリストされています。

もう1つの同様のイベントは、Google Summer ofCodeです。過去のプロジェクト一覧をご覧いただけます。たぶん、貢献するのに十分なインスピレーションを与えるでしょう!ああ、それから素晴らしい最初のPR機会リストがあります!

オープンソースに持続的に貢献したい場合は、定期的に使用するものを見つけてください。このようにあなたの貢献はあなた自身にも利益をもたらします。これは、質の高い作業を保証するための最善の方法です。

貢献を価値あるものにするものは何ですか?

貢献する理由がわかり、どこに貢献するかがわかりました。それでは、私たちの貢献が価値あるものになる理由に焦点を当てましょう。価値のない寄付は受け付けませんので、ご用意ください!

労働条件を尊重する必要があります

何よりも、他人の労働条件を尊重する必要があります。多くのプロジェクトでCONTRIBUTORS.mdは、貢献するための好ましい方法を提示するようなドキュメントを見つけることができます。参加したいプロジェクトに同様のドキュメントがない場合は、README.mdまたはプロジェクトのwikiページなど、他の可能な場所を確認してください。ルールをよく理解し、ルールを理解して従うようにしてください。

あなたの作品が寄稿者のガイドラインに概説されている条件を満たしていない場合、レビューの前であってもおそらく拒否されます。これらのガイドラインと条件は、メンテナの時間を保護するのに役立ちます。あなたがそれらに従うことができない場合、メンテナはあなたがあなたがする他の仕事と同じように不注意であると思い込むかもしれません。

あなたの貢献が他の人にとってどれほど価値があるかを考えてください

振る舞い方がわかったら、私たちの貢献が他の人にとってどれほど価値があるかを考えてみましょう。オーダーメイドのスーツを製造している会社を少し想像してみてください。あなたはその店でスーツを買って、それからビールを買いに行きました。インスピレーションが湧くので、自宅のスーツに栓抜きを付けます。このように、あなたがビールに行くたびに、それを開けるのに問題はありません。

オープンソースの方法で、あなたは仕立て屋に行き、オープナーをスーツに取り付けるというあなたの素晴らしいアイデアを提示します。さて、あなたのアイデアの創意工夫に関係なく、プロジェクトのメンテナーとして行動する仕立て屋は、あなたの追加が彼のコンセプトに合っているとは思わないかもしれません。それはあなたの仕事が弱いか価値がないという意味ではありません。これは、一部の機能が少数のオーディエンスにのみアピールすることを意味します。また、各機能を維持および保護する必要があり、プロジェクトのコストが増加するため、プロジェクトメンテナは、すべての機能が価値のある量の利益を提供することを確認する必要があります。

コミュニケーションを冗長にする

貢献しているのが変更ではなくレポートである場合は、詳細に説明してください。コンテキストを詳細に説明するために、知っていることをすべて書き留めます。これは、エラーを報告するときに特に重要です。あなたが説明する文脈が多ければ多いほど、誰かがあなたが望む方法でそれを修正するのがより簡単になります。考えられる使用例と予想される動作を念頭に置いてください。ただし、必ずしもレポートに関連しない詳細は省略してください。他の競合製品と一致するため、要素を緑色にしたいというのは問題ありません。競争に関する完全な歴史的背景を提供することは少し多すぎます。

実行、テスト、チェック、そして再チェックしてから送信してください

変更を送信する前に、すべてを確認してテストしてください。変更が、過去のバージョンではなく、現在開発されているバージョンに対応していることを確認してください。テストを実行する必要があるのは1回だけであることに注意してください。メンテナはそれらの多くを毎日実行しているので、すべてが一流であることを確認して時間を節約してください。そしてとにかく、これはあなたが気にかけていて、ずさんな仕事を提出しないことを示しています。

オンラインで落胆しないようにする方法

これを覚えておいてください:あなたが何かをオンラインで投稿するたびに、あなたは自分自身を批判にさらします。とにかく、それがコメント、写真、記事、またはコードである場合、あなたは今や脆弱です。それはあなたが成長するのを助けるので、あなたは批判のいくつかを歓迎するべきです。

しかし、他の種類の批判もあります:有毒で不当です。自分の作品を一般の人々と共有し始める前に、さまざまな種類の批判に対処する方法を学ぶのが最善です。このようにして、あなたはあなたを待っていることに備えることができ、すべてを個人的にとることはありません。

私たちの最高のアイデアは誰にとっても最高ではありません

まず第一に、あなたの最高のアイデアは、誰にとっても最高のアイデアではないかもしれません。これを覚えておきましょう。あなたが考案した栓抜きが彼らのスーツと互換性がないと誰かがあなたに言っても怒らないでください。それがプロジェクトメンテナの意志である場合は、それを尊重してください。このプロジェクトに再び参加したい場合は、レッスンとして役立つかもしれません。または、そのような変更が必要になる可能性のある別のプロジェクトを探すこともできます。

私たちの最高の仕事は基準に達していない可能性があります

聞くのは難しいかもしれませんが、あなたの最高の仕事はプロジェクトの基準に達していないかもしれません。自分で体験しました。私が貢献していたあるプロジェクトで、良いコードを書く方法に関するガイドラインの合理的なリストを受け取りました。初めて完璧にやろうと決心しました(そう思ったのですが)。結局のところ、私は何に注意すべきかを知っていました。変更を送信しましたが、しばらくすると返信がありました。コードのほぼすべての行が強調表示されました。興味深いことに、すべてのコメントは合理的かつ正確でした。私が完璧だと思ったのは、ほとんどすべての行に欠けていたということでした。

すべてのコメントを修正し、変更を再送信しました。今回は5つの発言しかありませんでした。あなたが正しいことをしているとしても、他の人があなたをさらに上手に働かせるように促すかもしれません。それがレビュアーの目的です。彼らは批判されたり非難されたりするべきではありません—彼らはあなたを助けたいのです、これを覚えておいてください!

すべてを正しく行ったとしても、拒否される可能性があります

答えが「いいえ」になることもありますが、これを変更するためにできることはあまりありません。あなたはまだ栓抜き付きのスーツは素晴らしいアイデアだと思いますか?その後、あなた自身の生産を開始してください!オープンソースでは、既存のプロジェクトに基づいて新しいプロジェクトを作成する行為は「フォーク」と呼ばれます。

これに対応して、新しいプロジェクトは元のプロジェクトの「フォーク」と見なされます。たとえば、UbuntuはDebianのフォークです。プロジェクトのメンテナーがあなたの仕事を製品に組み込むことを拒否した場合は、プロジェクトをフォークして自分でメンテナーになることを検討できます。これは極端な場合にのみ実行する必要があります。メンテナの両方のグループに負担をかけるだけでなく、コミュニティにとっても混乱を招きます。「いいえ」と聞いた場合は、この回答の背後にある理由を学ぶ価値があります。

将来にとって貴重な教訓になるかもしれません。

トロルはいたるところにあります

さて、トロル。

インターネットは匿名性の幻想を提供するので、他の人々を破壊することに喜びを感じるサブカルチャーが出現しました。このサブカルチャーはインターネットトロールと呼ばれています。私はまだこのような人と戦う機会がありませんでした。しかし、RagenChastainによる「オンライントロールを理解して対処するための完全ガイド」を読むことをお勧めします。それはあなたがそのような不快な出会いに備えるのを助けるでしょう。

オープンソースでお金を稼ぐ

これまで読んだことがあるなら、おそらくオープンソースプロジェクトに取り組んでいる間にいくらかのお金を稼ぐことが可能かどうか疑問に思うでしょう。

もちろん!

ソフトウェア自体は通常無料ですが、オープンソースで生計を立てる方法は他にもあります。この点で、それは芸術に非常に似ています。アートと同様に、いくつかの方法はあなたのために働くかもしれませんが、他の方法はうまくいかないかもしれません。それは不正確な科学です。

恒久的な方法

私のお気に入りの方法は寄付ボタンです。私のプロジェクトの1つであるSongcorderで動作しているのを見ることができます。期待するチップのサイズに応じて、検討する価値のあるオプションには、Paypal(15ドルを超えるチップを受け取る予定の場合)とBuy me a Coffee(15ドル未満のチップの場合)があります。

「コーヒーを買って」ボタンは次のようになります(私がそれに値すると思う場合はクリックできます):

汎用ボタンの他​​に、Gittip / Liberapayのようなオープンソースプロジェクト専用のメソッドがあります(これは名前を頻繁に変更するのが好きです)。面白いことに、Liberapayがサポートする人気のあるリポジトリの1つは…素晴らしいです。

前提はFlattrの前提と似ています。作品に費やしたい月額を選択し、作品を承認すると、作品の作者が予算の一部を受け取ります。たとえば、オープンソースプロジェクトに毎月5ドル支払う余裕があると判断したとします。特定の月に4つのプロジェクトを承認すると(スターを付けるか、Flattrボタンをクリックして)、各プロジェクトの作成者は$ 1.25を受け取ります。ものすごく単純。

プロジェクト全体をサポートする代わりに、(ほぼ)貢献者に直接寄付することもできます。Tip4Commitはこのように動作します。サポーターはプロジェクトにビットコインの一部をデポジットし、プロジェクトにコミットする各コントリビューターはデポジットの一部を受け取ります。

別の可能なアプローチはPatreonです。ここでは、均等に分割された予算の代わりに、サポーターは選択したクリエイターに一定額の現金を提供します。これがあなたにとって正しいアプローチであるかどうかを知りたい場合は、ErikaSauterが「Patreonがクリエイター向けのドープAFである理由」を完全に説明しています。素晴らしい名声のSindreSorhusは、そこで著名なオープンソースメンテナーの1人です。しかし、HomebrewやLinuxbrewなどの大規模なプロジェクトでも、資金調達にPatreonを使用しています。

オープンソースを趣味やサイドハッスルとして扱う場合は、上記のすべての方法がうまく機能します。あなたが運が良ければ、彼らはあなたの情熱を日常の仕事に変えることさえできます。しかし実際には、オープンソースを日常業務にしたい場合、通常のアプローチはコンサルティングサービスを提供することです。これは、プロ機能をエンタープライズクライアントに販売したり、エンタープライズクライアントが製品を展開およびカスタマイズするのを支援したりすることを意味します。多くの企業は、オープンソースプロジェクトを社内のニーズに適応させるために必要なスキルを欠いています。そして、元のプロジェクトのメンテナよりも、このタスクに適しているのは誰ですか?

あなたが他の人を助け、そうすることで報酬を得ることができるなら、それのために行ってください!

ワンタイムメソッド

オープンソースプロジェクトで資金をブートストラップするための一般的な方法の1つは、クラウドファンディングです。この目的に特化したプラットフォームは数多くあります。たとえば、Kickstarterは、オープンソースの音声アシスタントであるMycroft MarkIIの立ち上げを支援しました。別の大手プレーヤーIndiegogoは、電子メールクライアントGearyのキャンペーンを主催しました。悲しいことに、プロジェクトはその目標を達成しませんでした。MediaGoblinは、サードパーティなしで独自のキャンペーンを開始することさえしました。

クラウドファンディングを成功させるために必要な多くのサポーターが見つからないのではないかと心配している場合は、助成金を試すことができます。私はそのような助成金を提供している少なくとも2つの財団を知っています。そのうちの1つは、人気のあるTravisCIの背後にある会社が支援するTravisFoundationです。もう1つは、Firefox WebBrowserの作成者であるMozillaFoundationです。

これまでに紹介したツールのほとんどは、オープンソースのメンテナーに焦点を当てています。しかし、貢献者はバウンティハンターになることで生地を作ることもできます。バウンティは、金銭的報酬に裏打ちされたサードパーティによって要求された機能です。それらを狩るには、機能のリクエストを実行し、報酬を請求する必要があります。現在、バウンティハンティングで最も人気のあるプラットフォームはバウンティソースのようです。

しかし、暗号通貨を支払いとして受け取りたい場合、Gitcoinは同様の原則で動作します。詳細については、VivekSinghによる「Gitcoinについて知っておくべきことすべて」をご覧ください。

有給のインターンシップは別の有効なアプローチです。利用可能な2つの人気のあるオプションは次のとおりです。

  • Google Summer of Code —学生向け
  • Outreachy —テクノロジー分野のマイノリティを対象

または、あなたが本当に情熱を持っているなら、オープンソースソフトウェアの開発を専門とする会社に参加してみませんか?選択できるものはたくさんあります。コンサルティングと同じように、あなたは報酬を受け取り、同時にコミュニティのために何かをするでしょう。

それはお互いに有利な状況です!

さらなる研究

より多くのインスピレーションを探している場合は、GitHubのレモネードスタンドプロジェクトをチェックしてください。または、そこに独自のアイデアを追加します。オープンソースで、すべてが可能です!

あなたの親族を見つける

これまで言及していませんが、製品、プロジェクト、テクノロジーは、オープンソース運動全体のごく一部にすぎません。何よりも重要なコンポーネントは素晴らしいコミュニティです!貢献し始めると、すぐにたくさんの新しい知り合い、学ぶべき人々、あなたが指導できる人々、そしてあなたがアイデアを交換できる人々を得ることができます。

各プロジェクトには独自のコミュニティがありますが、オープンソースの愛好家が背景に関係なくたむろする場所もあります。

LinkedInのLinux&オープンソースグループなど、ソーシャルメディアのグループに参加できます。チェックアウトする興味深いGitterチャンネルもたくさんあります。Gitterは、オープンソースコミュニティ向けのインスタントメッセージングシステムです。コラボレーションとコミュニケーションを可能にするメーリンググループ、フォーラム、またはGitHubのようなプラットフォームもあります。しかし、志を同じくする人々と直接会いたい場合は、ハッカースペースを訪れたり、参加したりすることを検討してください。

ハッカースペースは、ソフトウェアの世界を超えて実験への愛情を伝える場所です。ソフトウェア、ハードウェア、DIY、手工芸品も同様に歓迎されます。すべてのハッカースペースをリストしたWikiページがあるので、最も近いものを見つけて、それらにアクセスしてください。アイデアが実行に出会ったときに何が可能かということに驚かれることでしょう。

気に入りましたか?私はあなたを助けましたか?もしそうなら、私のニュースレターに気軽に参加してください:

投稿が気に入ったら、私のニュースレターを購読することを検討してください。私が書いたりお勧めしたりするものすべて(本、記事、ツール、そしておそらく音楽)について通知されます。