Nepavyko sumokėti už atvirojo kodo projektą

https://unsplash.com/photos/Tjbk79TARiE

Pradėjus dirbti 4 žmonėms, mūsų inžinierių komanda turėjo nukirsti daugybę kampų, kad galėtų išsiųsti nuolat kintantį funkcijų, kurių, mūsų manymu, reikėjo, sąrašą. Į savo kodą įdėjome daug TODO komentarų, tikėdamiesi suorganizuoti įsiskolinimą dėl montavimo technologijos. Metaduomenys buvo apgalvotai pridedami prie komentarų, tikintis, kad viskas bus tvarkinga, tačiau greitai praradome daugumos jų stebėjimą. Turėjome daug kodo, o ne daug žmonių, o mūsų sistemos kūrimo ir priežiūros kūrimo eiga greitai tapo ne tokia maloni.

Laisvalaikiu sukūriau sau ir savo komandai skirtą įrankį: „Toodles“. Tai įrankis, kuris nuskaito visų TODO įrašų bazinę bazę, juos sutvarko ir įgalina atlikti metaduomenų pakeitimus, kurie būtų taikomi tiesiogiai kodų bazės TODO įrašuose. Aš maniau, kad tai madinga priemonė! Džiaugiuosi, kad kai aš įdėjau kodą į „GitHub“, atrodė, kad ir kiti galvoja. Žmonės pažymėjo žvaigždutes, padarė šakutes, klonavo ir atsisiuntė. „Toodles“ pradėjo gauti indėlį iš žmonių visame pasaulyje, ir aš nustebau, kai jis atsiskleidė.

Paskatinta žmonių internete ir bendradarbių entuziazmo, laisvalaikiu dirbdavau „Toodles“. Kaip ir daugumoje projektų, „GitHub“ veikla galiausiai sulėtėjo, tačiau nepraėjo. Retkarčiais gaučiau pranešimą apie klaidą, kartais iš žmonių, kurie atrodė dirbantys daug didesnėse įmonėse. Nenorėjau, kad mano programinė įranga atrodytų ar būtų klaidinga, todėl ją taisyčiau, kai tik turėsiu laiko, bet mintis užklupo:

Kodėl aš savanoriškai leidžiau laiką didelėje kompanijoje? Kodėl aš net leidžiau laiką savo įdarbinančioje įmonėje?

Kurį laiką ėmęsis šio klausimo, priėjau išvados, kad galėčiau pabandyti nuskaičiuoti pinigus už „Toodles“. Galų gale aš įdėjau daug darbo su įrankiu, kuris naudojamas įmonėje, man teisinga, kad aš stengiuosi už tai mokėti. Daug daugiau klausimų iškart kilo.

  • Kur klientas galėtų nusipirkti vėžlių? Kaip aš jiems tai suteikčiau?
  • Ar kas nors iš tikrųjų reguliariai naudojo „Toodles“? Kadangi jis atsisiųstas ir paleistas vartotojo kompiuteryje, o aš dar neparašiau pasirinktinio kodo, kad galėčiau registruoti naudojimo duomenis, net negalėčiau būti tikra, ar šios pastangos buvo vertos mano laiko.
  • Jei jis turėtų nuolatinius vartotojus, ar kuris nors iš jų už tai sumokėtų?
  • Jei jie to norėtų, kaip aš iš jų gaučiau mokėjimą?
  • Kaip galėčiau nuskaičiuoti įmonėms pinigus už „Toodles“ ir išlaikyti juos nemokamai asmenims, neatlikdamas daug kodavimo darbų tik šiam tikslui?
  • Ar net etiška užsidirbti pinigų atvirojo kodo projektui, prie kurio prisidėjo kiti žmonės, ir nemokėti jiems taip pat? Kaip galėčiau nusiųsti pinigus visiems įmokų mokėtojams ar teisingai nuspręsti, kiek jiems sumokėti?

Aš nusprendžiau pirmiausia išspręsti naudojimo statistikos klausimą. „Toodles“ yra programa, kuri būtų įdiegiama jos vartotojų kompiuteriuose, todėl norint surinkti bet kokius duomenis, jai reikės atlikti nuotolinį registravimąsi į galinį tašką, kurį turėčiau pateikti. Kai kurie kūrėjai yra gana priešiški šiai idėjai (pvz .: https://github.com/lihaoyi/Ammonite/issues/607). Negalėčiau naudotis tradicinėmis debesijos duomenų kaupimo paslaugomis, nes tam reiktų žurnalų rinkimo demono naudotojų kompiuteriuose. Nustatyti savo pagrindinę programą vien tam, kad būtų galima rinkti vietinės programos naudojimo statistiką, taip pat atrodė per daug sudėtinga. Jei egzistuoja tinkamas šios problemos sprendimas, aš vis dar jos neradau.

Nepaisant duomenų trūkumo ir bendro netikrumo, nusprendžiau judėti pirmyn ir sukurti mokamą „Toodles“ pakopą, skirtą įmonėms. Norint atskirti asmenis nuo kompanijų, buvo nustatyta viršutinė TODO įrašų, kuriuos nuskaito „Toodles“ skaičius, riba, nustatyta riba yra pakankamai aukšta, kad ją galėtų sukelti tik labai didelės bazinės bazės. Kadangi pats „Toodles“ yra serveris, kurį vartotojas naudoja savo kompiuteryje, sumokėto vartotojo autentifikavimas buvo sudėtingas. Aš turėjau dvi galimybes:

  1. Sukurkite arba nusipirkite užpakalinę sistemą, kuri galėtų sekti vartotojų abonementus, pirkimus ir pan., Ir priversti „Toodles“ klientą su ja susikalbėti.
  2. Paskirstykite licencijų failus, kuriuos „Toodles“ galėtų patvirtinti, kad galėtų naudotis mokamomis funkcijomis.

Statybos variantas (1) buvo nepaprastai didelis darbo krūvis, todėl norėjau to išvengti. Mokamos paslaugos už 1 variantą neegzistavo (ir nėra). Neturėdamas kito pasirinkimo, turėjau pasirinkti 2 variantą. Net neįsivaizdavau, kaip sukurti ir patvirtinti licencijos failą, tačiau galiausiai supratau, kad praėjo daug laiko. Tikėjausi, kad mano pastangos bus to vertos.

Tada turėjau pasiūlyti internetinę parduotuvę, kad žmonės galėtų nusipirkti licencijos failą. Buvo sunku rasti internetinės parduotuvės paslaugą, kuri leistų man programiškai sugeneruoti licencijos failą klientui įsigyjant pirkinį. Galiausiai šią funkciją radau elektroninės prekybos svetainėje fastspring.com. Buvo sudėtinga įsikurti. Kai mano pastangos triušiui pasidarė vis gilesnės, investicijų grąža atrodė vis mažesnė ir tikėtina.

Po to, kai galvą pakankamai ilgai trenkiu prie sienos, kad „FastSpring“ galėtų generuoti mano licencijos failus, mano internetinė parduotuvė dirbo. Tai atrodė kaip internetinė parduotuvė nuo 2000-ųjų pradžios, bet bent jau veikė. Aš susikūriau paprastą nukreipimo puslapį, kuris nukreiptų į parduotuvę galutiniam pirkimui.

Sukūrusi internetinę parduotuvę, buvau pasirengusi pradėti pardavinėti „Toodles Pro“! Aš turėjau sumokėti „FastSpring“ didelį 5% mokestį už bet kokius pardavimus, tačiau bent jau galėjau užsidirbti pinigų dabar. Parduotuvė neatrodė puiki, nes neatrodė, kad „FastSpring“ daug dėmesio skyrė dizainui, tačiau ji buvo geriau nei nieko. Jis buvo funkcionalus, tačiau dėl visų pastangų, įdėtų į visas sąrankas, liko daug norėjimo.

Turėdamas viską vietoje, laukiau, ar kuris nors iš esamų vartotojų atnaujins mokamą „Toodles“ pakopą. Po kurio laiko praėjo ...

Visiškai nieko neįvyko. „Nulis“ žmonių iki šiol įsigijo „Toodles Pro“. Supratau, kad iš tikrųjų norėdamas gauti kokių nors pajamų turėsiu išleisti daug daugiau laiko pardavęs šį projektą. Bet aš nesistengiau užmegzti visapusiškos kompanijos su „Toodles“; Aš tiesiog norėjau suvokti vertę, kurią mano darbas suteikė komerciniams subjektams. Tapo aišku, kad uždirbant bet kokius pinigus reikės didelių išankstinių pastangų, liečiančių mano tikruosius projekto tikslus.

Taigi aš pasidaviau. Buvo per daug problemų, kurių prireikė arba būtų reikėję per daug laiko, kad galėčiau užsidirbti iš mano atvirojo kodo projekto:

  • Buvo sunku nustatyti būdą, kaip imti mokėjimus už programinę įrangą. Net suprasti, kurią platformą naudoti, visų pirma, buvo sunku.
  • Kadangi mokėjimo sprendimas nėra projekto platinimo dalis, vien mokėjimų tvarkymo nepakako. Dabar programos kodas buvo tvirtai sujungtas, tačiau man pavyko įdiegti licencijų generavimą naudojant „FastSpring“. Norint dirbti, licencijų patvirtinimas ir vartotojo pakopų tvarkymas turėjo būti įrašytas tiesiai į kodą. Griežtas susirūpinimą keliantis susirūpinimas, kaip antai, pakenčia kodo išlaikomumui ir lankstumui. Vieną pakeisti sunku, nereikia perdaryti kito.
  • Be to, nebuvo aišku, ar įvertinti, ar net turėčiau išspręsti šias problemas, kad galėčiau užsidirbti iš savo projekto, nes neturėjau duomenų apie tai, ar / kada / kaip žmonės pirmiausia naudojo mano įrankį! Man nebuvo lengva sužinoti, nes programinė įranga yra įdiegta vartotojų kompiuteriuose.

Apgailestaujant, tikrovė buvo tokia, kad bet koks laikas, praleistas pinigais iš „Toodles“, buvo laikas, kurio aš neišleidau, kad „Toodles“ būtų geresnis jos vartotojams. Norėdami išspręsti šią problemą mums, naudodami atvirojo kodo kūrėjus, mums reikės būdo, kaip paskirstyti savo programinę įrangą su integruotais mokėjimais ir naudojimo ataskaitomis, kad kūrėjai galėtų sutelkti dėmesį tik į atviro kodo projekto, kurį mėgsta vartotojai, kūrimą ir valdymą.

Aš išleisiu daugiau minčių apie šią problemą, kai toliau spręsiu ją. Sekite kartu daugiau.