オープンソースプロジェクトの支払いに失敗した努力

https://unsplash.com/photos/Tjbk79TARiE

4人のスタートアップで、エンジニアリングチームは、私たちが必要だと思う機能の絶えず変化するリストを出荷するために、多くのコーナーをカットする必要がありました。私たちは、技術的な負債を整理することを期待して、コードにたくさんのTODOコメントを入れました。メタデータは、物事を整理しておくためにコメントに思慮深く追加されましたが、すぐにそのほとんどを追跡できなくなりました。多くの人ではなく多くのコードがあり、システムの構築と保守の開発ワークフローはすぐに不快になりました。

暇なときに、自分とチームのためにToodlesというツールを作成しました。これは、すべてのTODOエントリのコードベースをスキャンして整理し、コードベースのTODOエントリに直接適用されるメタデータの変更を可能にするツールです。気の利いたツールだと思いました!嬉しいことに、GitHubにコードを置いたとき、他の人もそう考えていたようです。人々は、スターを付け、フォークし、クローンを作成し、ダウンロードしました。 Toodlesは世界中の人々から寄付をもらい始め、その展開を見て驚いた。

インターネット上の人々や私の同僚からの熱意に勇気づけられて、私は自由な時間にToodlesに取り組み続けました。ほとんどのプロジェクトと同様に、GitHubアクティビティは最終的には遅くなりましたが、消えることはありませんでした。時々大規模な会社で働いているように思われる人々から、時々バグ報告を受け取ります。ソフトウェアの外観やバグを避けたいので、時間があればすぐに修正しますが、考えが浮かび上がります。

大企業に自分の時間をボランティアで参加させたのはなぜですか?なぜ私は自分の雇用会社にボランティアで時間を割いたのですか?

この質問をしばらくの間考えた後、私はToodleにお金を請求することができるという結論に達しました。結局のところ、私は会社で使用されているツールに多大な労力を費やしていました。そのための支払いをしようとするのは公平です。さらに多くの質問がすぐに盛り上がりました。

  • 顧客はどこでToodlesを購入できますか?彼らにどうやってあげるの?
  • Toodleを実際に使用している人はいますか?ユーザーのマシンでダウンロードおよび実行され、使用状況データを記録するカスタムコードを記述していなかったため、この作業に時間を費やす価値があるかどうかさえ確信できませんでした。
  • 通常のユーザーがいた場合、実際に料金を支払う人はいますか?
  • もしそうなら、どのようにして彼らから支払いを徴収しますか?
  • 企業にToodlesにお金を請求し、この目的のためだけに多くのコーディング作業をせずに個人に無料で提供する方法
  • 他の人が貢献したオープンソースプロジェクトでお金を稼ぎ、彼らにもお金を払わないことは倫理的ですか?すべての貢献者にどのようにお金を送ることができますか?

最初に使用統計の問題に取り組むことにしました。 Toodlesはユーザーのマシンにインストールされるプログラムです。そのため、データを収集するには、サポートする必要があるエンドポイントへのリモートロギングを行う必要があります。一部の開発者は、このアイデアにかなり敵対的です(例:https://github.com/lihaoyi/Ammonite/issues/607)。従来のクラウドベースのログサービスを使用することはできませんでした。ユーザーのマシンでログ収集デーモンが必要になるからです。ローカルで実行されるアプリケーションの使用統計を収集するためだけに自分のバックエンドをセットアップすることも、やり過ぎのように思えました。この問題の適切な解決策が存在する場合、私はまだそれを見つけていません。

データの欠如と一般的な不確実性にもかかわらず、私は前進し、企業をターゲットにしたToodleの有料階層を作成することにしました。個人を企業から分離するために、ToodleがスキャンするTODOエントリの数に上限があり、非常に大きなコードベースによってのみトリガーされるようにしきい値を十分に高く設定しました。 Toodles自体はユーザーがマシン上で実行するサーバーであるため、有料ユーザーの認証は難しいものでした。次の2つのオプションがありました。

  1. ユーザーアカウントや購入などを追跡するバックエンドシステムを構築または購入し、Toodlesクライアントに話しかけます。
  2. 有料機能にアクセスするためにToodlesが検証できるライセンスファイルを配布します。

構築オプション(1)は非常に大量の作業であったため、それを避けたいと思いました。オプション(1)の有料サービスは存在しなかった(存在しない)。他に選択肢がないため、オプション(2)を選択する必要がありました。ライセンスファイルを作成して検証する方法がわかりませんでしたが、最終的にはイライラする時間をかけてそれを見つけました。私の努力がそれだけの価値があることを願っていました。

次に、人々がライセンスファイルを購入できるように、オンラインストアを立てなければなりませんでした。顧客が購入したときにプログラムでライセンスファイルを生成できるオンラインストアサービスを見つけるのは困難でした。私は最終的にその機能をeコマースサイトfastspring.comで見つけました。設定するのは面倒でした。私の努力のうさぎの穴が深くなるにつれて、投資収益率はますますプラスになりそうにありませんでした。

FastSpringがライセンスファイルを生成するのに十分な時間、頭を壁にぶつけた後、私のオンラインストアは機能していました。 2000年代前半のオンラインストアのように見えましたが、少なくとも機能していました。最終購入のためにストアにリダイレクトする簡単なランディングページを設定しました。

オンラインストアが完成したら、Toodles Proの販売を開始する準備ができました! FastSpringで行った売上に対して5%の大きな料金を支払わなければなりませんでしたが、少なくとも今はお金を稼ぐことができました。 FastSpringはデザインにあまり焦点を当てていないようでしたが、店は見栄えがよくありませんでしたが、何もないよりはましでした。それは機能的でしたが、すべてのセットアップに費やされたすべての努力のために、それは望まれるべき多くを残しました。

すべてが整ったので、既存のユーザーが有料のToodlesにアップグレードするかどうかを待ちました。しばらくして…

まったく何も起こりませんでした。これまでにToodles Proを購入した人はゼロです。収益を上げるには、このプロジェクトを実際に販売するのにより多くの時間を費やす必要があることに気付きました。しかし、私はToodlesで本格的な会社を始めようとはしていませんでした。私の仕事が営利団体にもたらした価値の一部を捉えたかっただけです。お金を稼ぐには、プロジェクトの本当の目標に反して、多くの先行投資が必要であることが明らかになりました。

だから私はあきらめた。私のオープンソースプロジェクトを収益化するのに時間がかかりすぎる、または時間がかかりすぎた問題が多すぎました。

  • ソフトウェアの支払いを受け取る方法を設定することは困難でした。そもそもどのプラットフォームを使用するかを把握することさえ困難でした。
  • 支払いソリューションはプロジェクトの配布の一部ではないため、支払いを処理するだけでは十分ではありませんでした。現在、アプリケーションコードは密接に結合されていますが、FastSpringでライセンス生成を実装することができました。ライセンスの検証とユーザー層の処理は、機能するためにコードに直接焼き付ける必要がありました。このような懸念の緊密な結合は、コードの保守性と柔軟性を犠牲にします。もう一方を作り直すことなく、一方を変更することは難しくなります。
  • 上記のすべてに加えて、プロジェクトを収益化するためにこれらの問題を解決する必要があるかどうかを評価することは明確ではありませんでした。ソフトウェアはユーザーのマシンにインストールされているため、簡単に見つける方法はありませんでした。

残念なことに、Toodleの収益化に費やした時間は、ユーザーにとってToodleの改善に費やしていない時間でした。オープンソース開発者のこの問題を解決するには、支払いと使用状況レポートを組み込んだソフトウェアを配布する方法が必要です。開発者は、ユーザーが愛するオープンソースプロジェクトの構築と管理に集中できます。

この問題の解決に向けて、引き続きこの問題に関する考えを発表していきます。詳細を確認してください。