Một nỗ lực thất bại để được trả tiền cho một dự án nguồn mở

https://unStation.com/photos/Tjbk79TARiE

Khi khởi nghiệp gồm 4 người, đội ngũ kỹ thuật của chúng tôi đã phải cắt giảm nhiều góc để đưa ra danh sách các tính năng luôn thay đổi mà chúng tôi nghĩ rằng chúng tôi cần. Chúng tôi đặt rất nhiều ý kiến ​​TODO trong mã của mình với hy vọng tổ chức được nợ công nghệ cao. Siêu dữ liệu đã được bổ sung một cách chu đáo vào các bình luận với hy vọng giữ cho mọi thứ được tổ chức, nhưng chúng tôi nhanh chóng mất dấu vết của hầu hết nó. Chúng tôi có rất nhiều mã, không có nhiều người và quy trình phát triển xây dựng và duy trì hệ thống của chúng tôi nhanh chóng trở nên ít dễ chịu hơn.

Trong thời gian rảnh rỗi, tôi đã xây dựng một công cụ cho bản thân và nhóm của mình: Toodles. Nó có một công cụ quét một cơ sở mã cho tất cả các mục TODO, sắp xếp chúng và cho phép bạn thực hiện các thay đổi siêu dữ liệu sẽ được áp dụng trực tiếp vào các mục TODO của codebase. Tôi nghĩ rằng nó là một công cụ tiện lợi! Tôi rất vui mừng, khi tôi đặt mã lên GitHub, những người khác dường như cũng nghĩ như vậy. Mọi người đánh dấu sao, rẽ nhánh, nhân bản và tải xuống. Toodles bắt đầu nhận được sự đóng góp từ mọi người trên toàn cầu, và tôi đã rất ngạc nhiên khi thấy nó mở ra.

Được khích lệ bởi sự nhiệt tình từ mọi người trên internet và đồng nghiệp của tôi, tôi tiếp tục làm việc trên Toodles khi rảnh rỗi. Giống như hầu hết các dự án, hoạt động GitHub cuối cùng đã chậm lại, nhưng nó đã không biến mất. Tôi đã nhận được báo cáo lỗi thỉnh thoảng, đôi khi từ những người dường như đang làm việc tại các công ty lớn hơn nhiều. Tôi đã không muốn phần mềm của mình bị lỗi hoặc bị lỗi nên tôi đã sửa nó ngay khi có thời gian, nhưng ý nghĩ sẽ nổi lên:

Tại sao tôi tình nguyện dành thời gian cho một công ty lớn? Tại sao tôi thậm chí còn tình nguyện dành thời gian cho công ty tuyển dụng của mình?

Sau khi hầm câu hỏi này một lúc, tôi đi đến kết luận rằng tôi có thể cố gắng tính tiền cho Toodles. Rốt cuộc, tôi đã đặt rất nhiều công việc vào một công cụ đang được sử dụng tại một công ty, đó là công bằng cho tôi để cố gắng được trả tiền cho điều đó. Nhiều câu hỏi khác ngay lập tức sôi lên.

  • Khách hàng có thể mua Toodles ở đâu? Làm thế nào tôi sẽ đưa nó cho họ?
  • Có ai thực sự sử dụng Toodles một cách thường xuyên không? Bởi vì nó đã tải xuống và chạy trên máy người dùng và tôi đã viết mã tùy chỉnh để ghi dữ liệu sử dụng, tôi thậm chí không thể chắc chắn liệu nỗ lực này có đáng để tôi dành thời gian không.
  • Nếu nó có người dùng thường xuyên, liệu có ai trong số họ thực sự trả tiền cho nó không?
  • Nếu họ muốn, làm thế nào tôi có thể thu một khoản thanh toán từ họ?
  • Làm cách nào tôi có thể tính tiền cho các công ty cho Toodles và giữ nó miễn phí cho các cá nhân mà không phải thực hiện nhiều công việc mã hóa chỉ cho mục đích này?
  • Thậm chí có đạo đức để kiếm tiền trong một dự án nguồn mở mà người khác đã đóng góp và không trả tiền cho họ không? Làm thế nào tôi có thể gửi tiền cho tất cả những người đóng góp, hoặc quyết định một cách công bằng số tiền họ phải trả?

Tôi quyết định đầu tiên giải quyết câu hỏi về thống kê sử dụng. Toodles là một chương trình sẽ được cài đặt trên máy của người dùng, vì vậy để thu thập bất kỳ dữ liệu nào, cần phải ghi nhật ký từ xa đến điểm cuối mà tôi đã phải chống đỡ. Một số nhà phát triển khá thù địch với ý tưởng này (ví dụ: https://github.com/lihaoyi/Ammonite/issues/607). Tôi không thể sử dụng các dịch vụ ghi nhật ký dựa trên đám mây truyền thống, vì điều đó sẽ yêu cầu một trình nền thu thập nhật ký trên các máy của người dùng. Thiết lập phụ trợ của riêng tôi chỉ để thu thập số liệu thống kê sử dụng của một ứng dụng chạy cục bộ cũng có vẻ như quá mức cần thiết. Nếu một giải pháp thích hợp cho vấn đề này tồn tại, tôi vẫn chưa tìm thấy nó.

Mặc dù thiếu dữ liệu và sự không chắc chắn chung, tôi quyết định tiến về phía trước và thực hiện một nhóm các công ty nhắm mục tiêu Toodles trả phí. Để tách các cá nhân khỏi các công ty, đã có giới hạn số lượng mục TODO mà Toodles sẽ quét, với ngưỡng được đặt đủ cao để chỉ được kích hoạt bởi các cơ sở mã rất lớn. Vì bản thân Toodles là một máy chủ mà người dùng chạy trên máy của họ, nên việc xác thực người dùng phải trả tiền rất khó khăn. Tôi có hai lựa chọn:

  1. Xây dựng hoặc mua một hệ thống phụ trợ theo dõi tài khoản người dùng, mua hàng, v.v. và làm cho ứng dụng khách Toodles nói chuyện với nó.
  2. Phân phối tệp giấy phép mà Toodles có thể xác thực để truy cập các tính năng phải trả tiền.

Tùy chọn xây dựng (1) là một khối lượng công việc quá lớn, vì vậy tôi muốn tránh điều đó. Một dịch vụ trả phí cho tùy chọn (1) didn (và doesn) dường như tồn tại. Không còn lựa chọn nào khác, tôi phải đi với lựa chọn (2). Tôi không biết làm thế nào để tạo và xác nhận một tệp giấy phép, nhưng cuối cùng đã tìm ra nó sau một khoảng thời gian bực bội. Tôi hy vọng những nỗ lực của tôi sẽ có giá trị nó.

Tiếp theo, tôi phải hỗ trợ một cửa hàng trực tuyến để mọi người có thể mua tệp giấy phép. Thật khó để tìm thấy một dịch vụ cửa hàng trực tuyến có thể cho phép tôi lập trình tạo tệp giấy phép khi khách hàng mua hàng. Cuối cùng tôi đã tìm thấy tính năng đó trong trang web thương mại điện tử fastspring.com. Đó là khó khăn để thiết lập. Khi lỗ thỏ của tôi về một nỗ lực ngày càng sâu hơn, lợi tức đầu tư dường như ngày càng ít có khả năng tích cực.

Sau khi đập đầu vào tường đủ lâu để FastSpring tạo các tệp giấy phép của tôi, cửa hàng trực tuyến của tôi đã hoạt động. Nó trông giống như một cửa hàng trực tuyến từ đầu năm 2000 nhưng ít nhất nó đã hoạt động. Tôi thiết lập một trang đích đơn giản sẽ chuyển hướng đến cửa hàng để mua hàng cuối cùng.

Khi cửa hàng trực tuyến hoàn tất, tôi đã sẵn sàng bắt đầu bán Toodles Pro! Tôi đã phải trả cho FastSpring một khoản phí lớn 5% cho bất kỳ doanh số nào tôi đã thực hiện, nhưng ít nhất tôi có thể kiếm tiền ngay bây giờ. Cửa hàng didn trông rất tuyệt vì FastSpring didn dường như tập trung vào thiết kế nhiều, nhưng tốt hơn là không có gì. Đó là chức năng, nhưng do tất cả các nỗ lực đã đi vào tất cả các thiết lập, nó đã để lại rất nhiều mong muốn.

Với mọi thứ đã sẵn sàng, tôi chờ xem liệu có bất kỳ người dùng hiện tại nào sẽ nâng cấp lên tầng Toodles trả phí hay không. Sau một thời gian đã trôi qua

Hoàn toàn không có gì xảy ra. Không có người đã mua Toodles Pro cho đến nay. Tôi nhận ra rằng tôi cần phải dành nhiều thời gian hơn để thực sự bán dự án này nếu tôi muốn có bất kỳ doanh thu nào. Nhưng tôi đã cố gắng để bắt đầu một công ty toàn diện với Toodles; Tôi chỉ muốn nắm bắt một số giá trị mà công việc của tôi đã mang lại cho các thực thể thương mại. Rõ ràng là kiếm được tiền sẽ mất một lượng lớn nỗ lực từ phía trước, tiếp tuyến với các mục tiêu thực sự của tôi về dự án.

Thế là tôi bỏ cuộc. Đã có quá nhiều vấn đề mất hoặc mất quá nhiều thời gian để kiếm tiền từ dự án nguồn mở của tôi:

  • Thiết lập một cách để thanh toán cho phần mềm là khó khăn. Ngay cả việc tìm ra nền tảng nào để sử dụng ở nơi đầu tiên cũng khó khăn.
  • Bởi vì giải pháp thanh toán không phải là một phần của phân phối dự án, chỉ cần xử lý các khoản thanh toán là đủ. Bây giờ, mã ứng dụng đã được kết hợp chặt chẽ với tuy nhiên tôi đã quản lý để triển khai tạo giấy phép với FastSpring. Xác thực giấy phép và xử lý cấp người dùng phải được nướng trực tiếp vào mã để hoạt động. Khớp nối chặt chẽ các mối quan tâm như thế này hy sinh tính duy trì và tính linh hoạt của mã. Thật khó để thay đổi cái này mà không phải làm lại cái kia.
  • Trên tất cả những điều trên, việc đánh giá xem tôi thậm chí có nên giải quyết những vấn đề này để kiếm tiền từ dự án của mình không, vì tôi không có dữ liệu về việc mọi người sẽ sử dụng công cụ của tôi ở đâu ngay từ đầu! Tôi không có cách nào dễ dàng để tìm ra, vì phần mềm được cài đặt trên máy của người dùng.

Một thực tế đáng tiếc là bất kỳ thời gian nào để kiếm tiền từ Toodles là thời gian tôi đã chi tiêu làm cho Toodles tốt hơn cho người dùng. Để giải quyết vấn đề này cho chúng tôi, các nhà phát triển nguồn mở, chúng tôi sẽ cần một cách để phân phối phần mềm của chúng tôi với báo cáo thanh toán và sử dụng, do đó, các nhà phát triển có thể chỉ tập trung vào việc xây dựng và quản lý dự án nguồn mở mà người dùng yêu thích.

Tôi sẽ tiết lộ nhiều suy nghĩ hơn về vấn đề này khi tôi tiếp tục giải quyết nó. Thực hiện theo để biết thêm.