私は現在学生(応用情報技術)であり、ほとんどのプログラミングはC#とJavaで行っています。どうすれば開発者として、オープンソースでお金を稼ぐことができるのかと思っていました。サポートを提供したりサービスを提供したりする話があることは知っていますが、私はシステム管理者ではないので、システム管理者の仕事は好きではありません。実際、私は将来、いくつかのCおよびC++を手に入れて、低レベルの開発をしたいと思っています。
だから私の実際の質問は:オープンソースソフトウェアの開発で稼ぐお金はありますか?
編集:自分のオープンソースプロジェクトを開始することは必須ではないことを指摘するだけです。
この回答は、いくつかの追加の調査と意見とともに、以下の質問に対する回答の多くを要約しています。
オープンソース は、特定のプロジェクト作業を通じて直接的に、またはスキル、経験、および評判の獲得を通じて間接的に、実行可能な主要または補助的なビジネスモデルになることができます。追加の動機もあります。他人に役立つソフトウェアを作成することの満足度、「個人的なかゆみの掻き傷」(オープンソースソフトウェアの優れた部分への最初のステップ Eric S. Raymondによると )、または- 哲学的理由 、通常 フリーソフトウェア 、 copyleftRichard Stallman が提唱するアプローチ、またはそれ以上の概念に基づいています BSDライセンス の寛容なアプローチ。
これはいくつかの方法で発生する可能性があります。
個人または企業は、既存のオープンソースプロジェクトに価値を付加する主要プロバイダーとしての地位を確立できます。既存のプロジェクトをパッケージ化、階層化、結合、または拡張することによってサービスを提供する企業の例はたくさんあります。それらは大きく2つのカテゴリに分類されます。
強力なアプローチは、ソフトウェアを 2つの代替ライセンス の下で提供することです。ソフトウェアが配布された場合、変更をコミュニティにリリースする必要があるコピーレフトライセンス、およびオープンライセンスなしでソフトウェアを使用できる商用ライセンスです。ソースの制限。このアプローチは、 Qt や Open Office などの大規模なプロジェクト、および 小規模な1回限りのプロジェクト にも適用されています。
オープンソースの仕事は、貴重なコミュニティの可視性を得る方法を提供することができます。
最後に、収入は advertising (- Stackoverflow と同じ)、 donations などの補助チャネルを通じて、または ナグウェアテクニック ユーザーを煩わしくして著者に金銭的貢献を提供することを目的としたソフトウェア自体。これらの手法は、オープンソース開発モデルに固有のものではありません。たとえば、フリーでない シェアウェア 製品でよく使用されます。
あなたはこのシステムの作成者なので、あなたは「究極のエキスパート」です。あなたのソフトウェアを使用している、または使用したい営利企業は、いくつかのコンサルティング業務にあなたを連れてくるかもしれません。また、あなたは私がよく支払われると聞いている大会で話す資格があります。
既存のプロジェクトにコードを寄稿することも、あなたの名前を広める良い方法です。あなたが貢献すればするほど、契約作業を探すときの信用が高まります。
ここに例があります。
Qmailコミュニティでぶらぶらしていると、Qmailを知っている人が何人かいます。 Qmailの機能を拡張したい場合は、そのうちの2、3だけがthe go-to guysになります。彼らは、家に座って、Qmail拡張機能を作成し、それに支払われることを含む請負の仕事を得ます。
それがあなたが行くことができるライフスタイルのように聞こえるなら、それを試してください-ニッチを見つけて、契約の仕事をしてください。クライアントがクローズドソースを作成するコードを所有したいかどうか、またはコードをオープンソースとしてリリースしても、クライアントがそれを使用できるかどうかに応じて、クライアントに異なる条件を提供する場合があります。
このように考えてください。クライアントが単にこのコードを存在するにしたいという状況はたくさんあります。その後、彼らはそれに排他的にアクセスできるかどうかを気にしません。
私の経験では、OSSを作成してもお金はありません。しかし、それはあなたをより価値のあるものにし、それゆえ雇用可能になります。練習から得られる高度に調整された機能と、既存のOSSを使用できる場合は、エコシステムに慣れているため、ホイールの書き換えを避けるために、既存の機能を評価する時間を大幅に短縮できます。
ほとんどの場合、企業は beekeeperモデル を使用してお金を稼ぎます。基本的に、オープンソースの貢献者は最新かつ最高の製品を無料で使用でき、顧客は信頼できる成熟した製品を入手できます。 Red Hat、Novell、Sunはすべて、このモデルのバリエーションを使用しています。
別のオプションは、コンサルティングとトレーニングです。特定の製品の使用経験が豊富な場合(またはさらに優れているのは、それを発明した場合)、その製品を使用するように教えるために人々が喜んでお金を払ってくれる可能性があります。これはCanonicalが使用するモデルです。これは、あなたがそうしなければ、必ずしもsysadminタイプの作業を行わなければならないという意味ではありません。結局のところ、プログラマー、エンドユーザー、および幹部にはトレーニングも必要です。
3番目に、学生として、真剣に検討する必要があります Google Summer of Code 来年の夏。
全体として、オープンソースの貢献は、あなたがそれらから直接お金を稼ぐかどうかに関係なく、価値があると私は思います。ただし、短期的にはメリットを実感できないと思います。
それは本当に依存します。多くの人が趣味としてオープンソース開発を行っており、1日の仕事をしています(これは、常にではありませんが、多くの場合、ソフトウェア開発でもあります)。
いくつかは、オープンソースプロジェクトに関心を持っている会社によって支払われます。 LWN.netは、Linuxカーネル開発者に誰が支払うかについての記事を投稿しました、例えば:
http://lwn.net/Articles/222773/
Linuxディストリビューターだけでなく、多くの企業がLinuxカーネル開発に資金を提供していることがわかりました。
一部の開発者はコンサルティングビジネスも行っており、ソフトウェア開発を使用して主要な作業をサポートしたり、ショーケースとして使用したりしています。
かなりいくつかの方法があります
そして、私が思う最大の問題は、彼らの知識を広げ、彼らの製品のユーザーから愛を得ることです。
オープンソース製品に関するWebサイト(アプリケーション、フォーラム、サポートサイトなど)を作成し、そこにいくつかの広告を配置します。
それでうまくいきます。
友人がいるように、私はオープンソースソフトウェアによってうっかりお金を稼いだ。同様のケースがありましたが、私は自分のケースについてのみ説明します。私はオープンソースのVCDiffデコーダーを作成しました。 (長い話ですが、私はもともと会社の時間にそれを書くつもりでしたが、代わりに金曜日の夜にそれをしました。)
数年後、商用パッケージでそれを使用したいが、必要な帰属がなかった会社から連絡を受けました。彼らはこのためのライセンス料を喜んで支払い、私に非常に合理的な非独占的ライセンスを提示しました。私たちは取引を行い、双方は幸せでした。
お金を稼ぐことは決して目的ではありませんでした。それは基本的に、他のパーティーが望むものを生み出すことの副作用として起こっただけです。
一般的なシナリオは、彼らも仕事を支払っていることだと思います。オープンソースの仕事の多くは、開発者の暇な時間と、有料の仕事の要素から生まれています。
たとえば、職場での特定の問題を解決するためのソリューションを作成し、同様のシナリオに直面している他の開発者を支援するためにソリューションをオープンソース化することがあります。
オープンソースソフトウェアプロジェクトを開発するだけでは、おそらく多くのお金を稼ぐことはできません。プレミアムサポート、カスタマイズなどを提供できます。私は、Firefox、Thunderbird、Red5、およびその他のいくつかのオープンソースプロジェクトの拡張機能とカスタムビルドを開発することで、かなり良い変更を加えています。私が作成したものの大部分は、オープンソースコミュニティにも提供されています。
デュアルライセンスシステムの可能性もあります。たとえば、GPLタイプのライセンスと商用ライセンスの下でソフトウェアをリリースできます。商用ライセンスを購入した人は、変更を独占的に維持し、ソースコードをリリースせずにそれを販売することが許可されます。
もしあなたがあなた自身のオープンソースプロジェクトを作ってお金を稼ぎたいのなら、それはかなり長い道のりだと思います。一方、Red Hat、Sun、IBM、さらにはMicrosoftなどの企業では、オープンソーステクノロジーを使用したり、オープンソースソフトウェアを開発したりする必要のある、給料の高い仕事がたくさんあります。
実際の質問に対する答え
オープンソースソフトウェアの開発で儲けるお金はありますか?
はい、そしてさまざまな方法があります。開発者になりたいだけの場合、つまり自分のビジネスを始めない場合は、最初に、好きなプロジェクトに参加することをお勧めします。その後、次のような機会が見つかる可能性があります: http://webapps.ubuntu.com/employment/canonical_GDOS/ (MySQLなど、さまざまな分野に多くの別の「ビッグ」ネームについて言及します)。
次に、LinkedInでプロファイルを作成し、スキルや興味に関連するOSSグループに参加します。
最後に、ローカルグループ(LUG、JUGなど)に参加して、メーリングリストを読んでください。多くの場合、これらのリストには多くの求人情報が表示されます(残念ながら、後で仕事を見つけただけです).
その性質上、コードはオープンであるため、通常、コードから直接収益を上げることはできません。デュアルライセンスを使用することもできますが、それによってOSSコミュニティも無効になる可能性があります。
おそらく最も簡単な方法は、オープンソースソフトウェアを開発している会社forで作業することです。あなたはコードを書くことで報酬を得て、会社はサポートなどからお金を稼ぎますが、あなたはその側面に直接関わる必要はありません。
または、OSSを記述して担当者を作成し、その裏で契約作業/フルタイムの作業を行うことができます。
一部のオープンソースソフトウェア会社は、サービスを提供し、収益を上げています。 (アプリケーションホスティングなど)ほとんどの場合、顧客の要件に応じていくつかのカスタマイズを提供し、長期にわたるサポートとメンテナンスを提供します。
「寄付」が大きな変化をもたらすことはないと思いますが、それらからの影響もあります。
これは、オープンソース製品に基づいているスリランカ企業の良い例です。
私が合理的によく知っている、成功し収益性の高い2つのオープンソース企業があります。
SleepyCat Softwareは、Oracleに買収されるまで、Berkeley DBのサポートと拡張によって収益を上げていました。創設者の1人は1日の仕事をしていましたが、もう1人は仕事をせず、12人の従業員がいました。
Chez Scheme は、コンパイラに拡張機能を追加し、コンパイラのネイティブコードバージョンを販売することで収益を上げています。典型的な機能強化には、新しいバックエンドが含まれる場合があります。より野心的な最近の機能強化は、ネイティブスレッドパッケージでした。創設者(Kent Dybvig)は1日の仕事をしています。彼の従業員の数はわかりません。 Chezはインタープリターがオープンソースであるという点で珍しいですが、コンパイラーはそうではありません。
CygnusとRed Hatはどちらも、「サポート」とそのソフトウェアの特殊バージョンを販売していますが、ソフトウェアも配布されています。私はこのビジネスモデルをよく理解していません。
あなたのソフトウェアがそのクラスで卓越している場合、人々はあなたがあなたのものを使って問題を解決するのを助けるためにあなたにお金を払うということです。つまり、コンサルタントのようなものです。
これにはいくつかの方法があります。現在 freemium モデルが人気です。
あるいは、他の人がオープンソースの作品を投稿したように、傍観されています。私が使用するモデルは、私の職場でオープンソースを使用し、私の貢献をメインラインに戻すことです。あなたは経営陣から賛同を得なければなりませんが、それはうまくいきます。ストールマンの言葉も覚えておいてください Freedomのように無料
ここに2つの質問があります。
1)開発者はどのようにしてお金を稼ぎますか
ほとんどの開発者はお金のためにそれをしません。理由はたくさんあるかもしれませんが、私たちがそれらを絞り込むと、それは1)かゆみを掻く2)信頼を得るために3)その特定の言語/ドメインの知識を高めるためになります。
2)ビジネスはどうやってお金を稼ぐのか
通常は、サポート、トレーニング、認定、拡張からのものです。しかし、それから問題が発生します。製品が本当に良ければ、それほどのサポートは必要ありません。つまり、Joelが言う Consultingware でなければなりません。
ソフトウェアが「すでにそこに」あるので、一度インストールされるとその価格よりも価値が高くなることは、今では受け入れられている事実だと思います。私はもっとエンタープライズスタイルのアプリについて話している。
多くの企業がソフトウェアの購入時に料金を請求し、保守契約を結んで彼らの足元を守り、7回以上購入した場合よりもさらに$$を稼いでいます。私が30年以上前のプロプライエタリソフトウェアを使用している場合は確かにそうです。
このソフトウェアは無料でインストールできます(「最初は無料のドラッグ」ビジネスモデルと考えてください)。もちろん、課題は、十分に維持され、オンラインで優れたサポートコミュニティを持つプロジェクトを選ぶことです。しかし、それはフリーではないソフトウェアでも同じです。
オープンソースを頻繁にサポートする傾向があるため、オープンソースへの移行とオープンソースからの移行は、専用アプリよりもはるかに簡単です。独自仕様のアプリは通常、アプリへの移行サービスやその他のサービスを「提供」して、アプリを使い続けやすくします。
O/Sアプリは、最初は学習曲線が高くなる傾向があり、メンテナンス契約をほとんど必要とするため、$$を作成する機会がたくさんあります
私の意見では、どちらのビジネスモデルも優れていません。プロプライエタリモデルはたまたま広く普及しています。
現在、ビジネスの多くはオープンソースソフトウェアに基づいているか、オープンソースソフトウェアから派生しているため、一部(多くの?)の企業が開発者にオープンソースソフトウェアへの貢献に支払っています。