DUICUO

オープンソースをキャリアにする方法

メンテナーの80%が新しいコントリビューターの採用に苦労しており、雇用主の92%がオープンソースに精通した人材の採用に苦労していることをご存知ですか?一方で、開発者の52%はオープンソースへの貢献を希望し、33%は何から始めれば良いか分からず、31%は必要なスキルが不足していると感じています。公開データによると、オープンソーススキルを持つ人材への需要は非常に高いことが示されています。そこで、この需要と供給のギャップを埋めるために、オープンソースをキャリアにする方法を探ってみましょう。

スキルを習得する

オープンソースへの道は、得意なスキルを持つだけで簡単に始められます。多くの開発者は、自由時間をオープンソース活動に捧げ、不慣れな分野に時間と労力を費やし、そのスキルを技術分野に活かしています。機械学習(ML)、クラウドネイティブコンピューティング、ビッグデータ分析といったスキルは、多くのプロジェクトがそれらを中心に展開しているため、非常に需要が高いです。

開発者は、興味のある分野を見つけるまで実験を続ける必要があります。例えば、私がオープンソース分野で働き始めたとき、モバイルユーザーインターフェース(UI)とWeb開発(フロントエンドとバックエンドを含む)を選びました。この選択は容易ではなく、自分が何をしたいのかを理解するまでに多くの時間を要しました。だからこそ、自分の興味に従い、学習やプロジェクト構築を通して様々な分野を探求することが重要です。理論的なチュートリアルは、実際のプロジェクトを構築するほど役に立たないことがよくあります。スキルを習得する唯一の方法は、学んだことを実際のプロジェクトに適用することです。

特定のテクノロジーやプロジェクトに既にかなりの時間を費やしている場合は、時間をかけて徹底的に分析する必要があります。プロジェクトに興味がない場合は、中止する方が賢明かもしれません。しかし、これは諸刃の剣です。何か興味深い発見があり、新たなトレードオフにつながる可能性があります。分析を終え、どのようなスキルの組み合わせが自分に適しているかを把握したら、次のステップは独自のプロジェクトを構築することです。

プロジェクトの設立

プロジェクトの内容に関わらず、活動が活発であれば、大きな価値を生み出すでしょう。しかし、オープンソース化したら、他者の反応に左右されるべきではないことを覚えておいてください。アプリケーションのUIを構築する場合でも、適切なコメント、リソース、URLのリストを文書化するだけの場合でも、あなたの仕事はオープンソースユーザーにとって大きな助けとなる可能性があることを忘れないでください。

オープンソースプロジェクトの構築には、様々なツールを学ぶことが非常に役立ちます。そのため、バージョン管理システム、Git、GitHub、そして多くのプロジェクトが拠点を置くGitLabについて、あらゆることを学ぶことが重要です。すでにオンラインで多くのチュートリアルが公開されているので、ここでは​navendu.me/osidays​で見つけられるものをいくつかご紹介します。ドキュメントを作成し、学んだことを公開することで、「公に学ぶ」ことが重要です。

キャリアを築く

オープンソース分野でキャリアを築くには 3 つの方法があります。

独自のオープンソース プロジェクトを構築、拡張し、収益化します。

独自のプロジェクトを構築したい場合、問題を特定し解決することは非常に重要な経験則です。他者が直面する可能性のある問題を書き留めてください。そうすることでプロジェクトのニーズが生まれます。プロジェクトの市場規模は、試行錯誤を通してしか推定できません。資金と経験が限られている個人貢献者にとって、ソーシャルメディア、ブログ、投稿、カンファレンスでのプレゼンテーションは、ユーザーにリーチするのに非常に役立ちます。これらのプラットフォームは、オープンソースプロジェクトに膨大なトラフィックをもたらす可能性があります。

資金調達は、ほぼすべてのビジネスモデルにおいて重要な役割を果たします。Mozilla Foundationは、プロジェクトの資金を自発的な寄付に依存しています。MariaDBは遅延型オープンソース・ビジネスモデルを採用しています。IBMのオープンソース・プロジェクトの多くは、オープンコア・ビジネスモデルを採用しています。このモデルでは、プロジェクトの中核部分はオープンソースですが、周囲のアドオン部分はクローズドソースでプロプライエタリです。Red Hatはコードを販売するのではなく、プロジェクトに関連するサポート、ツール、技術支援などの専門サービスを販売しています。これらのビジネスモデルの例は、プロジェクトを構築し、オープンソース化し、収益化するために採用できます。


「メンテナーでなくても、メンテナーの仕事は行うべきです。」


オープンソースのビジネスモデルを使用してプロジェクトを構築する会社で働いています。

貢献者やメンテナーのコミュニティに参加し、議論に参加したり、会議に出席したりすることで、プロジェクトへの貢献度が高まります。最初の貢献はガイドラインに従って行うことができますが、必ずしもコードである必要はありません。大規模なコードベースは難しそうに思えるかもしれませんが、重要なのは小さなことから始めることです。問題を見つけて解決することで、貢献プロセス、コードベース、プロジェクトのセットアップなどを理解するのに役立ちます。

コード以外の貢献も貴重です。ライティングスキルのある人は、ドキュメントの作成やソーシャルメディアへの投稿などを通じて貢献できます。デザインスキルのある人は、テンプレートや配色をデザインしたり、より優れたユーザーインターフェースの作成に専念したりできます。新人はベテランエンジニアよりもエラーを見つける可能性が高くなります。彼らはユーザーエクスペリエンスをテスト、検証、報告できるため、プロジェクトの品質が向上します。もう一つの領域はオンボーディングです。多くのオープンソースプロジェクトでは、メンターと新人を結びつけ、彼らが大きな貢献を果たせるよう支援しています。もう一つの選択肢は、オーガナイザーやコミュニティ管理者になることです。これはプロジェクトマネージャーの役​​割を担い、機能が期待通りに提供され、ロードマップが遵守され、貢献者が適切に管理されるよう保証することを意味します。多くのオープンソースプロジェクトでは、エンジニアがこの種の作業を嫌うため、適切な管理が行われていません。

Google Summer of Code(GSoC)やLinux Foundationのメンターシッププログラム(メンターは給与を受け取り、必要に応じてフルタイムまたはパートタイムで働くことができます)など、収入を得られるインターンシッププログラムは数多くあります。スキルをしっかり伸ばせば、インターンシップ先の企業で正社員として採用される可能性もあります。例えば、Red Hatのプロジェクトに携わっている場合、既に社内で高い評価を得ているため、正社員として採用されるチャンスがあります。

NumPy、SciPy、Anaconda の作者である Travis Oliphant はこう言っています。「オープンソース プロジェクトを構築し、人々に貢献してもらい、その中から人材を雇用するのです。」 — こうして私はフルタイムの仕事に就きました。


  • 時間の経過とともに、貢献の質と量は向上していきます。プロジェクトに長期的に参加することで、より多くの貢献分野を発見できるでしょう。積極的に参加し、貢献することで、あなたは注目され、認められるでしょう。
  • オープンソース プロジェクトにはプロジェクト マネージャーが不足していることが多いため、プロジェクト マネージャーになることはキャリアにとって有益です。
  • メンテナーになって、コードのレビュー、システムの設計、ドキュメントの作成、他の人の貢献の支援など、エンジニアが行うべきことを行います。
  • 良い貢献をするための鍵は「事前に与える」ことです。つまり、自分の経験と知恵を共有し、新人が間違いを犯さないように支援する必要があります。

オープンソースに取り組むためのスポンサーシップを受ける

個人として、企業が立ち上げたプロジェクトに取り組んでいる場合は、資金援助を申請できます。ただし、組織は、あなたの貢献度が相当大きい場合にのみスポンサーとなることに注意してください。ただし、独自のプロジェクトを立ち上げ、大規模なユーザーベースを持っている場合は、ユーザーから資金援助を申請できます。

組織として、Open Collective、Patreon、GitHub Sponsorsなどのプラットフォームを通じて、プロジェクトのための資金を調達し、寄付を受けることができます。Linux FoundationやMozilla Foundationといったオープンソース界の巨人たちも、プロジェクト支援のために資金を提供しています。GitHubはすでに、インドの15人の貢献者によるプロジェクトに資金を提供しています。

かつて3ヶ月かけてオープンソースプロジェクトを構築したことがあります。このプロジェクトは後にProduct HuntとJS Weeklyで取り上げられ、GitHubのトレンドリストで1位にまで上り詰めました。このプロジェクトが、私をオープンソースの道へと導いたのです。