Açık Kaynaklı Bir Proje İçin Ücret Alma Çabası Başarısız Oldu

https://unsplash.com/photos/Tjbk79TARiE

4 kişinin başlangıcında, mühendislik ekibimiz ihtiyaç duyduğumuz sürekli değişen özelliklerin listesini göndermek için birçok köşeyi kesmek zorunda kaldı. Montaj teknolojisi borcunu düzenleme umuduyla kodumuzda birçok TODO yorumu yayınladık. Meta veri, işleri düzenli tutmak umuduyla yorumlara düşünceli bir şekilde eklendi, ancak hızlı bir şekilde izini kaybettik. Pek çok insanın değil, birçok kodumuz vardı ve sistemimizi geliştirmenin ve sürdürmenin iş akışı hızla daha az keyifli hale geldi.

Boş zamanlarımda kendim ve ekibim için bir araç yaptım: Toodles. Tüm TODO girişleri için bir kod temeli tarayacak, düzenleyebilecek ve doğrudan kod temeli TODO girişlerine uygulanacak meta veri değişiklikleri yapmanıza olanak tanıyan bir araçtır. Şık bir araç olduğunu düşünmüştüm! Zevkime göre, kodu GitHub’a koyduğum zaman, diğerleri de öyle görünüyordu. İnsanlar oynadı, çatallandı, klonlandı ve indirildi. Toodles dünyanın dört bir yanından insanlardan katkı almaya başladı ve açılmasını izlerken hayret ettim.

İnternetteki insanlardan ve meslektaşlarımdan gelen coşkuyla, boş zamanlarımda Toodles üzerinde çalışmaya devam ettim. Çoğu projede olduğu gibi GitHub etkinliği de sonunda yavaşladı, ancak gitmedi. Bazen hata raporunu alırdım, bazen çok daha büyük şirketlerde çalışıyor gibi görünen insanlardan. Yazılımımın görünmesini ya da canını sıkmasını istemedim, bu yüzden vaktim olduğu anda tamir ettim, ama düşünce patlayacak:

Neden zamanım büyük bir şirkete gönüllü oldu? Neden çalıştığım şirkete zaman ayırdım ki?

Bir süre bu soruya değindikten sonra, Toodles için para almaya çalıştığım sonucuna vardım. Ne de olsa, bir şirkette kullanılan bir araç üzerinde çok fazla çalışma yapmıştım, bunun için para almaya çalışmak benim için adil. Çok daha fazla soru hemen kaynatıldı.

  • Bir müşteri nereden Toodles alabilir? Onlara nasıl verirdim?
  • Toodles'ı düzenli olarak kullanan biri var mıydı? Kullanıcının makinesinde indirilip çalıştırıldığından ve kullanım verilerini günlüğe kaydetmek için özel kod yazmadığımdan, bu çabanın zaman ayırmaya değer olup olmadığından bile emin olamadım.
  • Düzenli kullanıcıları olsaydı, herhangi biri gerçekten bunun için para öder miydi?
  • Olsalardı, onlardan nasıl ödeme alabilirim?
  • Şirketler için Toodles'tan nasıl para alabilirim ve çok fazla kodlama işi yapmadan bireyler için ücretsiz tutabilirim.
  • Diğer insanların katkıda bulundukları ve onlara para ödemeyen açık kaynaklı bir projede para kazanmak bile etik mi? Katkıda bulunanların tümüne nasıl para gönderebilir ya da onlara ne kadar ödeyeceğime oldukça karar verebilirim?

İlk önce kullanım istatistiği sorununu ele almaya karar verdim. Toodles, kullanıcılarının makinelerine kurulacak bir programdır, bu yüzden herhangi bir veri toplamak için, yükseltmek zorunda olduğum bir uç noktaya uzaktan günlük kaydı yapmanız gerekecekti. Bazı geliştiriciler bu fikre karşı oldukça düşmanca davranır (örneğin: https://github.com/lihaoyi/Ammonite/issues/607). Geleneksel bulut tabanlı günlük kaydı hizmetlerini kullanamadım, çünkü bu, kullanıcıların makinelerinde günlük toplama arka planını gerektiriyordu. Yalnızca yerel olarak çalışan bir uygulamanın kullanım istatistiklerini toplamak için kendi arka uçumu ayarlamak, fazladan bir uygulama gibi görünüyordu. Bu soruna uygun bir çözüm varsa, hala bulamadım.

Veri eksikliği ve genel belirsizliğe rağmen, ilerlemeye ve şirketleri hedefleyen ücretli bir Toodles katmanı yapmaya karar verdim. Bireyleri şirketlerden ayırmak için, Toodles'ın tarayacağı TODO girişlerinin sayısı vardı, eşik değeri yalnızca çok büyük kod tabanları tarafından tetiklenebilecek kadar yüksek oldu. Toodles'in kendisi bir kullanıcının makinelerinde çalıştığı bir sunucu olduğundan, ücretli bir kullanıcının kimliğini doğrulamak zordu. İki seçeneğim vardı:

  1. Kullanıcı hesaplarını, satın alma işlemlerini vb. İzleyen ve Toodles istemcisinin onunla konuşmasını sağlayacak bir arka uç sistemi oluşturun veya satın alın.
  2. Ücretli özelliklere erişmek için Toodles'ın doğrulayabileceği lisans dosyalarını dağıtın.

Oluşturma seçeneği (1) oldukça büyük miktarda bir işti, bu yüzden bundan kaçınmak istedim. Seçenek (1) için ücretli bir hizmet mevcut değildi (ve görünmüyor). Başka bir seçenek olmadan, seçenekle gitmek zorunda kaldım (2). Bir lisans dosyasının nasıl oluşturulacağı ve doğrulanacağı hakkında hiçbir fikrim yoktu, ancak sonunda sinir bozucu bir süreden sonra çözdüm. Çabalarımın buna değeceğini umuyordum.

Daha sonra, insanların bir lisans dosyası satın alabilmeleri için bir çevrimiçi mağaza açmam gerekiyordu. Bir müşteri satın aldığında programatik olarak bir lisans dosyası oluşturmamı sağlayacak bir çevrimiçi mağaza hizmeti bulmak zordu. Sonunda bu özelliği fastspring.com e-ticaret sitesinde buldum. Kurulumu zordu. Bir çabanın tavşan deliği derinleştiğinden, yatırımın geri dönüşünün olumlu olması daha az ve daha az muhtemel görünüyordu.

FastSpring'in lisans dosyalarımı üretmesini sağlayacak kadar başımı duvara çarptıktan sonra çevrimiçi mağazam çalışıyordu. 2000’lerin başında bir çevrimiçi mağazaya benziyordu, ama en azından çalışıyordu. Son satın alım için mağazaya yönlendirilecek basit bir açılış sayfası hazırladım.

Online mağaza tamamlandığında, Toodles Pro'yu satmaya hazırdım! FastSpring'e yaptığım tüm satışlarda% 5'lik bir ücret ödemek zorunda kaldım, ancak en azından şimdi para kazanabilirim. Mağaza mükemmel görünmüyordu çünkü FastSpring, tasarıma çok fazla odaklanmıyor gibi gözüküyordu, ama hiç olmadığı kadar iyiydi. İşlevseldi, ancak tüm kuruluma uygulanan tüm çaba nedeniyle, arzulanan çok şey bıraktı.

Her şey yerinde olduğunda, mevcut kullanıcıların herhangi birinin ücretli Toodles seviyesine geçip geçmeyeceğini görmek için bekledim. Bir süre sonra…

Kesinlikle hiçbir şey olmadı. Sıfır kişi bugüne kadar Toodles Pro'yu satın aldı. Herhangi bir gelir elde etmek isteseydim, bu projeyi gerçekten satmak için çok daha fazla zaman harcamam gerektiğini fark ettim. Ama Toodles'la dolu bir şirket kurmaya çalışmıyordum; İşimin ticari varlıklara getirdiği değerin bir kısmını yakalamak istedim. Herhangi bir para kazanmanın, projenin gerçek hedeflerime göre büyük miktarda ön çaba harcayacağı açıkça ortaya çıktı.

Ben de pes ettim. Açık kaynak projemden para kazanmak için çok fazla zaman alan veya çok fazla zaman alan bir sorun vardı:

  • Yazılım için ödeme almak için bir yol ayarlamak zordu. İlk olarak hangi platformun kullanılacağını bulmak bile zordu.
  • Ödeme çözümü, projenin dağıtımının bir parçası olmadığı için, ödemeleri halletmek yeterli değildi. Şimdi, uygulama kodu sıkı sıkıya bağlıydı, ancak FastSpring ile lisans oluşturmayı başardım. Ruhsat doğrulaması ve kullanıcı seviyesi yönetimi, çalışmak için doğrudan koda yazılmalıdır. Bu gibi endişelerin sıkı bir şekilde birleştirilmesi, kodun sürdürülebilirliğini ve esnekliğini feda eder. Birini değiştirmek zorunda kalmadan birini değiştirmek zorlaşır.
  • Yukarıdakilerin hepsine, projemden para kazanmak için bu sorunları çözüp çözmem gerekip gerekmediğinin değerlendirilmesi net değildi, çünkü insanların ilk olarak aracımı nasıl / ne zaman / nasıl kullandıkları hakkında hiçbir bilgim yoktu! Yazılım, kullanıcıların makinelerine kurulduğundan, öğrenmenin kolay bir yolu yoktu.

Talihsiz gerçeklik, Toodles'ı para kazanmak için harcadığınız herhangi bir zamanın, Toodles'ı kullanıcıları için daha iyi hale getirmek için harcamamaya başladığım zamandı. Açık kaynaklı geliştiriciler için bu sorunu çözmek için, yazılımımızı yerleşik ödemeler ve kullanım raporları ile dağıtmak için bir yola ihtiyacımız olacak, böylece geliştiriciler yalnızca kullanıcıların sevdiği açık kaynaklı projeyi oluşturmaya ve yönetmeye odaklanabilir.

Üzerinde çalışmaya devam ettikçe bu sorun hakkında daha fazla düşünce yayınlayacağım. Daha fazlası için takip edin.