私たちは無料プロジェクトのブームを目の当たりにしています。 主にGithubに感謝します。 2013年12月23日に、このサービスで1,000万番目のプロジェクトが作成されました。 2015年12月23日までに、プロジェクトの数は3倍以上になります。現在、Githubには2800万のプロジェクトがあります。
多くの人が自由の考えに惹かれます。それは、人間の生産的な活動の主な動機として「世界を改善する」という考えを反映しているからです。
しかし、オフィスのプログラマーの通常の仕事はオープンソースとはかけ離れているため、ほとんどの場合無料のプロジェクトを行うために、どのようにフィードする(そして、できれば金持ちになる!)かという疑問が生じます。
トースターに関する 最新の 問題から判断すると、人々は多くの期待を持っていますが、この分野ではほとんど理解していません。 そこで、私はこのエッセイを書くことにしました。
プロジェクトを立ち上げること自体が改善されるわけではありません。
世界への利益は、人々への利益、自然、文化/ヒューマニズム、経済学、科学のいずれかです。 最初の3つのカテゴリは無料のコードとは関係ありません。フリーでないコードは人、自然、文化に役立つからです。 ほとんどの科学者はこれに同意せず、世界の知識は独立した価値であると考えていますが、科学の恩恵はしばしば非常に遠い将来の経済への同じ支援と見なされます。 しかし、 科学的目新しさを備えたフリーソフトウェアプロジェクトはエキゾチックであるという事実を考慮しても、フリーコードが経済にどのように役立つかに集中します。
コードを投稿しました。 この時点で経済をどのように助けましたか? したがって、あなたはまだ世界を助けていません。
あなたのプロジェクトは、人々を癌から救い、無料で、何百万ドルも節約し、それでも閉鎖することができます。
プロジェクトの一般的な有用性ではなく、 その自由度がどのように有用であるかに集中してください。
無料のコードの相乗効果
あなたのプロジェクトが有益であれば、それを改善することはさらに多くの利益を意味します。 無料のプロジェクトユーザーはバグを修正し、新機能を吸収し、自分自身だけでなく他のすべてのプロジェクトユーザーの生活を向上させます。 これは相乗効果です。
ご注意 これは、次の条件が満たされている場合にのみ機能します。
1.プロジェクトのユーザー(プロジェクトから利益を得る人)はプログラマーです。 または、少なくともユーザーの大部分。 ケーキレシピを使用して主婦向けのすばらしいアプリを作成した場合は素晴らしいですが、主婦はGithubにアクセスせず、アプリケーションのバグを修正しません。
結論:モバイルアプリケーション、サイト、ゲーム、便利なデスクトッププログラム、プログラミングから遠く離れた地域の専門家向けのソフトウェアなどのプロジェクトの自由には、実質的に意味がありません。
2.システムは、可能な限り変更しやすいように拡張可能である必要があります。 このテーマについて、Guy Steeleによる「Growing a Language」という素晴らしいパフォーマンスがあります(6分から視聴できます)。
スピーチの最も重要な考えの1つは、システムの基本機能の上に[ユーザー]が作成した機能がこの「ネイティブ」機能のように「見える」ようにシステムを設計することです。
結論:プロジェクトの拡張性とハッキング可能性に最大限の注意を払ってください。 DSLの場合、演算子をオーバーロード可能にします。 これがフレームワークである場合、プラグインシステムに焦点を当てます。 等
相乗効果の観点からは、そのような拡張性を意味しないプロジェクトの自由にはあまり意味がありません。
3.必ずしもそうとは限りませんが、プロジェクトのエントリしきい値はできるだけ低くすることが望ましいです。 プロジェクトが複雑すぎると、ユーザー(プログラマーも含む)が自分で関数を追加したりバグを修正したりできなくなります。
複雑なコードは必ずしも悪いわけではありません。おそらく、解決される問題の複雑さの直接的な結果です。 たとえば、Hotspot JVMはそのオープン性の恩恵をほとんど受けません。何百万人ものユーザーのほとんどが侵入して合理的な改善を行うことができないほど複雑なプロジェクトだからです。
Hotspot JVMはC ++で記述されており、そのユーザーはJavaプログラマーであるため、考えは大声で-またはすべてですか? もう1つ結論があります。コンパイラーを作成している場合は、必ずプロモーションを行ってください。
ただし、Java IntelliJ IDEA Community Editionの無料の開発環境は、同じJavaで作成されていますが、ほとんど役に立ちません。 このプロジェクトは複雑すぎるため、突っ込むことはできません。
非常に相乗効果の高いプロジェクト:
Linuxカーネル 企業、システム管理者、プログラマーは、カーネルを自分自身で改善し、他のすべての人にとってそれを改善しています。
多くのApache Foundationプロジェクト。
フラスコWebフレームワーク 。 よく考え抜かれたプラグインシステムと高品質のモジュラーカーネルコードにより、フレームワークがDjangoとほぼ同じくらい強力になり、主な作成者の労力が大幅に削減された例。
他に何? コメントに例を投げてください。
セキュリティ要件のあるオープンプロジェクトは、より多くのユーザーを引き付けます
これは経済にとって有益です(プロジェクトが利益を上げ、より多くのユーザーがいる場合、より多くの利益をもたらします)。また、プロジェクトでお金を稼ぎたい場合はあなたにとって有益です(詳細は以下)。 オープンソースの方が信頼性が高い:不足しているブックマークがないかプロジェクトを確認できます。
暗号化、パスワードストレージ、ウイルス対策、管理者特権が必要なプログラムなど。
オープンソースプロジェクトは
特に興味深い点ではありません。 通常の作業用のデバイスには便利かもしれませんが、これから逃げたいと思いましたよね?)新しいプロジェクトを作成するか、既存のオープンプロジェクトを開発するために、実績は必要ありません。
唯一のことは、あなたがGithubのスーパースターであれば、すべての新しいプロジェクトが自動的に多くの注目を集めることです。 しかし、Githubスーパースターはこの記事のアドバイスを必要としません。
無料プロジェクトで燃え尽きる方法
寄付は機能しません。
「はい、でも私の素晴らしいプロジェクト...」
- いいえ。
無料プロジェクトのサポートを販売しても機能しないか、非常に機能しません。 客観的には、サポートが必要な人はほとんどいません:会社の従業員は、フォーラム/ニュースレター/バグトラッカーでこれを行う方法、または問題を説明する方法を尋ねるだけです。 「コミュニティ」は無作法です。 コンサルティングでも、同じことが言えます。ドキュメンテーションがひどい場合は、プロジェクトを使用することすらありそうになく、それが良ければ、コンサルティングは必要ありません。
ほとんどのオープンソース企業は、メンテナンスおよびサポートのサブスクリプションを販売することで成長することはできません。 しかし、クラウドは収益創出の鍵かもしれません。
無料のプロジェクトでお金を稼ぐ唯一の方法は、そのベースでシンプルで退屈なビジネスをすることです。
スキームは次のとおりです。
- テクノロジーは、通常のビジネスをサポートします。
- テクノロジーは、その自由(「相乗効果」および/またはオープン性への信頼)により勝ちます。
- テクノロジーが勝つため、ビジネスが勝ちます。
しかし、競合他社も私のテクノロジーでビジネスを構築しているとしたらどうでしょうか?
- まず、プロジェクトが人気に達し、人々がそのベースでビジネスを行うようになった場合、a)この記事からのアドバイスはもう必要ありませんb)十分なお金。
- 第二に、クライアントはいずれにせよあなたを信頼します。なぜなら、彼らはあなたがあなたがプロジェクトの作者であることを知っており、すべての複雑さを理解し、プロジェクトの方向を選択するからです。
どんなビジネス?
- 有料ソリューション。 例:Red Hatは、GNU / Linuxオペレーティングシステムという無料のプロジェクトを開発しています。 無料のGNU / Linuxプロジェクトに基づいて、Red Hatは有料製品Red Hat Enterprise Linuxを作成しています。 GNU / Linuxは相乗効果を享受し、RHELを間接的に改善します。
オープンソースソフトウェア≠フリーソフトウェア。 失礼な場合、自由は開放性と無料です。 したがって、最初は商業的であるがオープンなプロジェクトは、上記の「オープン性の信頼」の恩恵を受けることができます。
- サース、配布。 例:Dockerは無料のDockerプロジェクトを開発しており、そのエコシステムには商用のSaas Docker Hubソリューションが存在します。
私はDockerの専門家ではないので、誰かがこのケースを整理するのを手伝ってくれたらありがたいです。 基本的なDockerが無料である理由は明らかです。ユーザーはこのDockerに座って、Docker Hubへの支払いを開始します。 しかし、Dockerのオープン性(+無料=自由)がどのように役立つかはあまりわかりません。 私の観点からは、ハッキング可能なプラットフォームのようには見えません。 ただし、プロジェクトに1000人以上の貢献者がいるという事実(多く)から判断すると、そうです。 密輸業者は何をそこに行きますか? この千人が来て、それぞれが1つのバグを修正しましたか? または、何らかのプラグインを追加しましたか? 知りません (まあ、それはdockerfilesではありませんよね?)
- カスタム開発。 それが最も平凡なアウトソーシングです。 例:Chronicle Softwareは、無料プロジェクトのChronicleファミリーと、これらのプロジェクトを使用したカスタムデザインシステムを開発しています。
- 他に何? コメントで退屈なビジネスの種類を見てみましょう。