Een mislukte poging om betaald te worden voor een Open Source-project

https://unsplash.com/photos/Tjbk79TARiE

Bij een startup van 4 personen moest ons engineeringteam vele hoeken afsnijden om de steeds veranderende lijst met functies te verzenden die we dachten dat we nodig hadden. We hebben veel TODO-opmerkingen in onze code geplaatst in de hoop de toenemende technische schulden te kunnen organiseren. Metadata is zorgvuldig toegevoegd aan de opmerkingen in de hoop om de zaken georganiseerd te houden, maar we hebben het meeste ervan snel uit het oog verloren. We hadden veel code, niet veel mensen, en de ontwikkelingsworkflow van het bouwen en onderhouden van ons systeem werd snel minder aangenaam.

In mijn vrije tijd bouwde ik een tool voor mezelf en mijn team: Toodles. Het is een tool die een codebasis voor alle TODO-items scant, ze organiseert en u in staat stelt metadatawijzigingen aan te brengen die rechtstreeks op de TODO-items van de codebase worden toegepast. Ik vond het een handig hulpmiddel! Toen ik de code op GitHub plaatste, leken anderen dat ook te denken. Mensen hebben een ster, gevorkt, gekloond en gedownload. Toodles begon bijdragen te krijgen van mensen over de hele wereld en ik was verbaasd het te zien ontvouwen.

Aangemoedigd door enthousiasme van mensen op internet en mijn collega's, bleef ik in mijn vrije tijd aan Toodles werken. Zoals de meeste projecten vertraagde de GitHub-activiteit uiteindelijk, maar deze ging niet weg. Ik zou af en toe een bugrapport ontvangen, soms van mensen die bij veel grotere bedrijven leken te werken. Ik wilde niet dat mijn software eruit zou zien of fouten zou bevatten, dus zou ik het oplossen zodra ik tijd had, maar de gedachte zou opborrelen:

Waarom bood ik mijn tijd aan bij een groot bedrijf? Waarom was ik zelfs vrijwilliger bij mijn werkend bedrijf?

Na een tijdje op deze vraag te hebben gestudeerd, kwam ik tot de conclusie dat ik kon proberen geld in rekening te brengen voor Toodles. Ik had tenslotte veel werk verzet aan een tool die bij een bedrijf wordt gebruikt, het is eerlijk dat ik daarvoor probeer te worden betaald. Veel meer vragen kwamen meteen op.

  • Waar kan een klant Toodles kopen? Hoe zou ik het hun geven?
  • Gebruikt iemand daadwerkelijk Toodles op een regelmatige basis? Omdat het wordt gedownload en op de computer van de gebruiker wordt uitgevoerd en ik geen aangepaste code heb geschreven om gebruiksgegevens te loggen, kon ik niet eens zeker weten of dit mijn tijd waard was.
  • Als het regelmatige gebruikers had, zou een van hen er daadwerkelijk voor betalen?
  • Als ze dat zouden doen, hoe zou ik dan een betaling van hen ontvangen?
  • Hoe kan ik bedrijven geld in rekening brengen voor Toodles en het voor particulieren gratis houden zonder veel codeerwerk te doen alleen voor dit doel?
  • Is het zelfs ethisch om geld te verdienen aan een open source-project waaraan andere mensen hebben bijgedragen, en hen ook niet te betalen? Hoe kan ik geld naar alle bijdragers sturen of eerlijk beslissen hoeveel ik ze wil betalen?

Ik besloot om eerst de kwestie van gebruiksstatistieken aan te pakken. Toodles is een programma dat op de machines van zijn gebruikers zou worden geïnstalleerd, dus om gegevens te verzamelen, zou het loggen op afstand moeten doen naar een eindpunt dat ik zou moeten ondersteunen. Sommige ontwikkelaars staan ​​nogal vijandig tegenover dit idee (bijvoorbeeld: https://github.com/lihaoyi/Ammonite/issues/607). Ik zou geen traditionele cloudgebaseerde logboekservices kunnen gebruiken, omdat daarvoor een daemon voor het verzamelen van logboeken op de computers van de gebruikers nodig zou zijn. Het opzetten van mijn eigen backend alleen om gebruiksstatistieken van een lokaal uitgevoerde applicatie te verzamelen leek ook overbodig. Als er een goede oplossing voor dit probleem bestaat, heb ik het nog steeds niet gevonden.

Ondanks het gebrek aan gegevens en algemene onzekerheid, besloot ik door te gaan en een betaalde reeks Toodles-bedrijven te maken. Om de individuen van de bedrijven te scheiden, was er een limiet voor het aantal TODO-vermeldingen dat Toodles zou scannen, met de drempel hoog genoeg om alleen door zeer grote codebases te worden geactiveerd. Omdat Toodles zelf een server is die door een gebruiker op zijn computer wordt uitgevoerd, was het lastig om een ​​betaalde gebruiker te verifiëren. Ik had twee opties:

  1. Bouw of koop een backend-systeem dat gebruikersaccounts, aankopen, enz. Bijhoudt en de Toodles-client ertoe aanzet.
  2. Distribueer licentiebestanden die Toodles zou kunnen valideren om toegang te krijgen tot betaalde functies.

De bouwoptie (1) was ontzettend veel werk, dus dat wilde ik vermijden. Een betaalde service voor optie (1) bestond (en bestaat niet). Met geen andere keuze, moest ik kiezen voor optie (2). Ik had geen idee hoe ik een licentiebestand moest maken en valideren, maar uiteindelijk kwam ik er na een frustrerende tijd achter. Ik hoopte dat mijn inspanningen het waard zouden zijn.

Vervolgens moest ik een online winkel opzetten zodat mensen een licentiebestand konden kopen. Het was moeilijk om een ​​online winkelservice te vinden waarmee ik programmatisch een licentiebestand kon genereren wanneer een klant een aankoop doet. Ik vond die functie uiteindelijk in de e-commerce-site fastspring.com. Het was lastig om op te zetten. Terwijl mijn streven naar een steeds dieper wordende, leek het rendement van de investering minder en minder waarschijnlijk positief te zijn.

Nadat ik lang genoeg met mijn hoofd tegen de muur had gestoten om FastSpring mijn licentiebestanden te laten genereren, werkte mijn online winkel. Het zag eruit als een online winkel uit begin 2000, maar het werkte tenminste. Ik heb een eenvoudige bestemmingspagina opgezet die zou doorverwijzen naar de winkel voor definitieve aankoop.

Nu de online winkel compleet was, was ik klaar om Toodles Pro te verkopen! Ik moest FastSpring een hoge 5% vergoeding betalen voor elke verkoop die ik maakte, maar nu kon ik tenminste geld verdienen. De winkel zag er niet geweldig uit omdat FastSpring zich niet veel op design leek te concentreren, maar het was beter dan niets. Het was functioneel, maar door alle moeite die aan de installatie werd besteed, liet het veel te wensen over.

Met alles op zijn plaats, wachtte ik om te zien of een van de bestaande gebruikers zou upgraden naar de betaalde laag van Toodles. Na enige tijd was verstreken ...

Er is absoluut niets gebeurd. Niemand heeft tot nu toe Toodles Pro gekocht. Ik realiseerde me dat ik veel meer tijd moest besteden om dit project te verkopen als ik überhaupt inkomsten wilde hebben. Maar ik probeerde geen volledig bedrijf met Toodles te starten; Ik wilde alleen maar een deel van de waarde vastleggen die mijn werk aan commerciële entiteiten bracht. Het werd duidelijk dat het verdienen van geld een grote hoeveelheid inspanning vooraf vergde, die mijn ware doelstellingen van het project raakt.

Dus ik gaf het op. Er waren te veel problemen geweest die te veel tijd hebben gekost of zouden hebben gekost om geld te verdienen met mijn open source-project:

  • Het was moeilijk om een ​​manier te vinden om betalingen voor software te accepteren. Zelfs uitzoeken welk platform in de eerste plaats te gebruiken was moeilijk.
  • Omdat de betalingsoplossing geen deel uitmaakt van de distributie van het project, was het eenvoudigweg niet voldoende om betalingen af ​​te handelen. Nu was de applicatiecode nauw gekoppeld, maar ik slaagde erin om het genereren van licenties met FastSpring te implementeren. Licentievalidatie en gebruikerslaagverwerking moesten rechtstreeks in de code worden ingebouwd om te kunnen werken. Strakke koppeling van problemen zoals deze offert onderhoudbaarheid en flexibiliteit van de code op. Het wordt moeilijk om de ene te veranderen zonder de andere te moeten herwerken.
  • Bovenop al het bovenstaande was het niet duidelijk of ik deze problemen zelfs moest oplossen om geld te verdienen met mijn project, omdat ik geen gegevens had over of / wanneer / hoe mensen mijn tool in de eerste plaats gebruikten! Ik had geen gemakkelijke manier om erachter te komen, omdat de software op de machines van de gebruikers is geïnstalleerd.

De ongelukkige realiteit was dat elke keer dat ik geld verdiende met Toodles tijd was die ik niet besteedde aan het verbeteren van Toodles voor zijn gebruikers. Om dit probleem voor ons open source-ontwikkelaars op te lossen, hebben we een manier nodig om onze software te distribueren met ingebouwde betalings- en gebruiksrapporten, zodat de ontwikkelaars zich kunnen concentreren op het bouwen en beheren van het open source-project waar gebruikers dol op zijn.

Ik zal meer gedachten loslaten over dit probleem terwijl ik er doorheen blijf werken. Volg mee voor meer informatie.