Ar trebui să deschidem sursele de Grit sau să lăsăm proprietatea?
Dacă este lăsat proprietate, acest lucru ar crea un obstacol în calea competiției Git-hosting, oferindu-ne un avantaj. Sursa open source înseamnă că mii de oameni din întreaga lume o pot folosi pentru a dezvolta instrumente interesante, creând un ecosistem mult mai viu al lui Git.
După o mică dispută, am decis să deschidem sursele de Grit. Nu-mi amintesc toate detaliile discuției, dar este o decizie luată în urmă cu aproape patru ani, a dus la ceea ce cred că este una dintre valorile noastre fundamentale: open source (aproape) totul.
De ce open source (aproape) totul cool?
Dacă codul dvs. este atât de popular încât atrage contribuabili terți, atunci veți crea un efect de amplificare. care ajută la mai multă muncă mai ieftină. Mai mulți utilizatori înseamnă că sunt explorate mai multe scenarii de utilizare, ceea ce înseamnă un cod mai fiabil. Proiectul resque a fost îmbunătățit de 115 dezvoltatori diferiți în afara companiei și încă sute, oferind plugin-uri de la terți care extind funcționalitatea resque. Fiecare corectare a erorii pe care o luați în proiect, este timpul salvat și neplăcerea consumatorului pe care ați reușit să o evitați.
Oamenii inteligenți îi place să comunice cu alte persoane inteligente. Dezvoltatorii inteligenți preferă să lucreze cu codul inteligent. Când publicați un cod util, atrageți talente. De fiecare dată când un dezvoltator talentat se uită la sursa deschisă a proiectului tău, câștigi. Am avut numeroase discuții excelente la conferințe tehnice despre codul meu open source. Unele dintre aceste întâlniri au dus la idei care au condus la soluții mai bune la problemele cu proiectele mele. Într-o industrie cu atât de mulți dezvoltatori creativi și productivi, aspectul potrivit al codului dvs. poate juca un rol important.
Odată ce ați angajat toți acești oameni răi cu contribuția lor, vizează sursa deschisă este o modalitate uimitor de eficientă de a păstra aceste talente. Să vedem, dezvoltatorii se răcească își pot alege locul de muncă chiar acum. Aceiași dezvoltatori cunosc valoarea dezvoltării deschise și vor dori să colecteze un portofoliu de proiecte pe care ei ar putea să se înmulțească cu prietenii sau potențialii angajatori viitori. Paradoxul! Pentru a face dezvoltatorii fericiți, trebuie să îi ajutați să devină mai atractive pentru ceilalți angajatori. Dar nu este nimic de ce să vă faceți griji, deoarece acesta este exact dezvoltatorii pe care doriți să lucrați pentru dvs. Relaxați-vă și lăsați-i să lucreze la proiecte deschise sau vor merge undeva unde sunt permise.
Când încep un nou proiect, cred că, în cele din urmă, acesta va fi deschis (chiar dacă este puțin probabil). O astfel de instalare duce fără efort la modularitate. Dacă vă gândiți la modul în care alte persoane din afara companiei dvs. pot utiliza codul dvs., există mai puține șanse să utilizați componente proprietare sau interfețe codate greu. Aceasta, la rândul său, conduce la un cod mai curat și mai acceptat. Chiar și codul intern ar trebui să pretindă că este deschis.
Ați dezvoltat o mare bibliotecă sau un instrument într-un singur loc de muncă și apoi ați renunțat să vă alăturați unei alte companii doar pentru a suprascrie acest cod sau a deveni nefericit din cauza absenței sale? Eu sunt, și e de rahat. Codul de publicare poate reduce în mod semnificativ duplicarea eforturilor. Mai puțină dublare înseamnă mai multă muncă pe lucruri mai importante.
În cele din urmă, acest lucru este corect. Acum este aproape imposibil să faci ceva fără a executa direct o cantitate mare de cod open source. Dacă utilizați Internetul, atunci utilizați open source. Acest cod reprezintă milioane de ore omenești care au fost cheltuite pentru binele comun. Cu toții ne bucurăm de acest beneficiu și cred că suntem obligați din punct de vedere moral să răsplătim această comunitate. Dacă software-ul este oceanul, atunci sursa open source este mareea, care scoate navele.
Bine, dar ce să nu deschid?
E ușor. Nu deschideți nimic care să constituie fundamentul afacerii.
Iată câteva exemple despre ceea ce nu luăm și de ce:
- Principala aplicație Rails (este mai ușor de vândut când este închis)
- Sinatra - aplicație pentru gestionarea sarcinilor (special strâns legată de github.com)
Iată câteva exemple despre ceea ce am descoperit și de ce:
- Grit (adaptor pentru scop general Git, util pentru dezvoltarea unei varietăți de unelte)
- Ernie (Server general RPC pentru BERT)
- Resque (coada de destinație generală)
- Jekyll (generatorul static de uz general)
- Gollum (wiki general)
- Charlock_Holmes (identificator de codificare a caracterului comun)
- Albino (evidențierea sintaxelor generale)
- Lingvist (identificatorul tipurilor de fișiere cu scop general).
Fiți atenți, tot ceea ce păstrăm închis are o valoare specifică a afacerii care poate fi distrusă dacă ajunge la concurenții noștri. Tot ce am descoperit este un instrument cu scop general care poate fi folosit de oameni și companii diferite pentru a dezvolta lucruri diferite.
Care este licența numai adevărată?
Prefer MIT și aproape tot ce deschidem în GitHub este distribuit sub această licență.
Îmi place această licență din mai multe motive:
- Este scurt. Oricine o poate citi și înțelege exact ce înseamnă fără a trebui să cheltuiască o mulțime de bani pentru consultări cu avocații cu cifru octanic.
- Oferă o protecție suficientă pentru a vă asigura că nu veți da în judecată dacă nu se întâmplă ceva când folosiți codul meu.
- Toată lumea înțelege consecințele juridice ale acesteia. Licențele ciudate, cum ar fi licența WTFPL și Beer, pretind a fi "licența cea mai gratuită", dar nu ating acest obiectiv deloc. Aceste licențe vicioase sunt prea vagi și impracticabile pentru a fi aplicabile anumitor companii. Pe de altă parte, GPL este prea restrictiv și dogmatic pentru a fi potrivit în multe cazuri. Vreau ca codul meu să fie util tuturor. Totul. Asta înseamnă Open, și asta ar trebui să însemne Free.
Cum pot începe?
P.S. De la mine vreau să invit cititorii să participe la anchetă pentru a dezvălui soarta proiectelor deschise ale cititorilor.