Zarabianie z Open Source jako programistą?

109

Obecnie jestem studentem (Applied Information Technology) i większość naszego programowania wykonujemy w języku C # i Javie. Zastanawiałem się, jak mogę jako programista zarabiać na otwartym oprogramowaniu. Wiem, że istnieje historia udzielania wsparcia lub świadczenia usług, ale nie jestem administratorem i nie lubię pracy z administratorem. Tak naprawdę chciałbym w przyszłości zdobyć trochę C i C ++ i zająć się programowaniem na niskim poziomie.

Tak więc moje aktualne pytanie brzmi: czy można zarobić na rozwoju oprogramowania Open Source i jak?

Edycja: Wskazując, że rozpoczęcie własnego projektu Open Source nie jest wymagane.

Haproli
źródło
Przeczytaj książkę Erica Raymonda: Katedra i bazar
Dipan Mehta
„Udzielanie wsparcia / świadczenia usług” open source niekoniecznie wymaga pracy sysadmin. Na przykład, być może klient uzna, że ​​aplikacja typu open source jest prawie idealna dla jego potrzeb, jeśli ma jeden mały modyfikator kodu i zatrudni cię do zaprogramowania tego kodu.
James
możliwy duplikat Dlaczego opracowywać darmowe programy open source? „Dlaczego wszystko musi być związane z pieniędzmi? Jak według Ciebie działa wikipedia? Nikt nie zarabia na umieszczaniu treści w Wikipedii, ale jest to prawdopodobnie najlepsza encyklopedia wokół ... Porozmawiajmy o pieniądzach ...”
gnat
Jak wszyscy wspominali, większość programistów OSS nie zarabia za swoje wysiłki. To genialny model biznesowy. Pomyśl tylko o miliardach dolarów opłat licencyjnych zaoszczędzonych przez gigantyczne korporacje dzięki OSS. Kierownictwo tych firm musi szczypać się każdego ranka, aby mieć pewność, że nie śnią. Jakimś sposobem przekonali armię ludzi do pracy dla nich za darmo. Działa tak dobrze z oprogramowaniem, że teraz rozszerza model na inne obszary, dziennikarstwo i fotografię. Rozwijanie OSS przypomina trochę religię, po raz kolejny stos mumbo jumbo przedstawiony tym razem przez dużego użytkownika

Odpowiedzi:

105

Ta odpowiedź zawiera podsumowanie wielu odpowiedzi na następujące pytania wraz z dodatkowymi badaniami i opiniami.

Streszczenie

Open source może być realnym podstawowym lub pomocniczym modelem biznesowym, zarówno bezpośrednio poprzez konkretne prace projektowe, jak i pośrednio poprzez zdobycie umiejętności, doświadczenia i reputacji. Mogą być też dodatkowe motywacje; satysfakcja z produkowania oprogramowania, które jest przydatne dla innych, „drapanie się po swędzeniu” (pierwszy krok w kierunku każdego dobrego oprogramowania typu open source, według Erica S. Raymonda ) lub przyczyny filozoficzne , zwykle oparte na pojęciu wolne oprogramowanie , albo podejście copyleft zalecane przez Richarda Stallmana , albo bardziej liberalne podejście do licencji BSD .

Sposoby zarabiania pieniędzy za pośrednictwem Open Source

1. Sponsoring przez firmę

Może się to zdarzyć na kilka sposobów.

  • Stała praca do kontynuowania pracy przy głośnym projekcie. Jest to prawdopodobnie najrzadszy przypadek. Jeśli jesteś starszym członkiem dużego projektu open source, kimś takim jak Linus Torvalds , Guido van Rossum lub Theo de Raadt , prawdopodobnie będziesz w stanie kontynuować pracę nad projektem, jednocześnie będąc wspieranym finansowo przez dużą firmę, taką jak Google lub IBM . Chociaż ten rodzaj wsparcia jest stosunkowo rzadki, niekoniecznie musisz być supergwiazdą typu open source, aby uzyskać tego rodzaju finansowanie; wielu deweloperów jądra Linuksa jest częściowo lub całkowicie finansowanych przez firmy takie jak Red Hat .
  • Płatne za określone funkcje lub rozszerzenia. Niektóre firmy oferują nagrody za wdrożenie określonych funkcji w oprogramowaniu open source używanym do funkcji biznesowych. Często funkcja nie musi być zamkniętym źródłem, więc znaczący kod jest przekazywany społeczności. Zostało to opisane jako model pszczelarski rozwoju oprogramowania typu open source. W niektórych przypadkach wymagane są dodatkowe funkcje, aby pozostały zastrzeżone, ale bazują na bazie kodu open source. W obu przypadkach ekspertyza open source jest wyraźną zaletą dla programisty.
  • Twój dzienny kod pracy może być otwarty. Podobny przypadek ma miejsce, gdy aspekty kodu, który piszesz dla firmy w trakcie codziennej pracy, mogą być otwarte, bez szkody dla firmy. Kod może, ale nie musi, opierać się na istniejącym projekcie FOSS. Generalnie przydatne narzędzia i biblioteki mogą być często wydawane w ten sposób, a niepotwierdzone dowody sugerują , że takie projekty mogą często przyspieszać, gdy stają się wolontariuszami.

2. Dodaj wartość do istniejących projektów

Osoba fizyczna lub firma może stać się głównym dostawcą, który wnosi wartość do istniejącego projektu lub projektów typu open source. Istnieje wiele przykładów firm, które świadczą usługi poprzez pakowanie, nakładanie warstw, łączenie lub rozszerzanie istniejących projektów. Można je zasadniczo podzielić na dwie kategorie.

  • Wsparcie. Enthought dodaje wartość dodając niestandardową dystrybucję Pythona, koncentrując się na bibliotekach naukowych. Redhat i inne dystrybucje Linuksa wnoszą wartość dodaną, zestawiając i testując wiele różnych projektów typu open source oraz zapewniając łatwe w użyciu mechanizmy instalacji i aktualizacji . Firmy te sprzedają usługi wsparcia w taki sam sposób, jak wielu dostawców prawnie zastrzeżonych.
  • Model Freemium . W tym modelu podstawowa wersja oprogramowania lub usługi jest bezpłatna; dodatkowe funkcje „premium” zwykle kosztują dodatkowo. Oprogramowanie Sleepycat zapewnia dodatkowe funkcje dla Berkeley DB na podstawie zastrzeżonej licencji. Cedega zapewnia ponowną implementację Windows API pod Linuksem, wydaną jako mieszanka darmowego i zastrzeżonego kodu. Ten model nie musi być open source; Gmail dla organizacji to przykład usługi oferującej zarówno bezpłatne (jak w przypadku piwa), jak i opcje premium.

3. Kod oferty w modelu podwójnego licencjonowania

Potężnym podejściem jest oferowanie oprogramowania na dwóch alternatywnych licencjach , licencji typu copyleft wymagającej wydania modyfikacji społeczności, jeśli oprogramowanie jest dystrybuowane, oraz licencji komercyjnej pozwalającej na korzystanie z oprogramowania bez ograniczeń typu open source. Podejście to zostało z powodzeniem zastosowane w dużych projektach, takich jak Qt i Open Office , a także w małych projektach jednorazowych .

4. Skonsultuj się

Praca typu open source może zapewnić sposób na uzyskanie cennej widoczności społeczności.

  • Prezentacja umiejętności. Możliwość zweryfikowania pracy i kompetencji programisty poprzez spojrzenie na projekty open source, w które byli oni zaangażowani, stanowi potężną atrakcję dla potencjalnych pracodawców .
  • Budowanie reputacji. Posiadanie wysokiej reputacji w społeczności open source może prowadzić do rozmów, zaproszeń na szkolenia lub pisania książek w oparciu o Twoją wiedzę.
  • Będąc ekspertem. Bycie znaczącym graczem w technologii, której potrzebują firmy, oznacza zapotrzebowanie na niestandardowe doradztwo, wsparcie i szkolenie w tej technologii. Może to prowadzić do utworzenia specjalnej niszy pracy w Twojej dziedzinie wiedzy.

5. Kanały pomocnicze

Wreszcie dochód można uzyskać za pośrednictwem kanałów pomocniczych, takich jak reklama (podobnie jak Stackoverflow ), darowizny lub zastosowanie technik nagware w samym oprogramowaniu, których celem jest zirytowanie użytkownika wkładem finansowym autora. Te techniki nie są specyficzne dla modeli programistycznych Open Source. Na przykład są często używane przez niewolne produkty shareware .

ire_and_curses
źródło
21

Ponieważ jesteś twórcą tego systemu, jesteś „najlepszym ekspertem”. Firmy nastawione na zysk, które używają lub chcą korzystać z twojego oprogramowania, mogą przywieźć cię do pracy konsultacyjnej. Poza tym kwalifikujesz się do przemawiania na konwencjach, które według mnie są dobrze płatne.

Przekazywanie kodu do istniejącego projektu jest również dobrym sposobem na zdobycie tam swojego nazwiska. Im więcej wnosisz, tym większe masz zaufanie, kiedy szukasz pracy kontraktowej.

Dimitry
źródło
17

Oto przykład.

Jeśli kręcisz się w społeczności Qmail, zauważysz, że kilka osób zna Qmail na wylot. Tylko kilka z nich staje się zwykłymi facetami, jeśli chcesz rozszerzyć funkcjonalność Qmaila. Dostają umowy o pracę, które polegają na tym, że siedzą w domu, piszą rozszerzenie Qmail i otrzymują za to wynagrodzenie.

Jeśli to brzmi jak styl życia, na który można pójść, wypróbuj go - znajdź niszę i podejmij umowę o pracę. Możesz zaoferować swoim klientom różne warunki, w zależności od tego, czy chcą oni posiadać kod, który produkujesz w wersji z zamkniętym kodem źródłowym, czy też udostępniasz kod jako open source, ale mogą go użyć.

Pomyśl o tym w ten sposób - istnieje wiele sytuacji, w których klient po prostu chce, aby ten kod istniał . Nie obchodzi ich, czy mają do nich wyłączny dostęp.

szczupły
źródło
Umowy o pracę są nieregularne i moim zdaniem nie są dobrym wyborem zawodowym. Wydaje się, że lepiej mieć pracę zarobkową (rzetelną) lub startup (hazard, ale przynajmniej istnieje potencjalna wypłata).
sixtyfootersdude
15

Z mojego doświadczenia wynika, że ​​pisanie OSS nie daje żadnych pieniędzy; ale sprawia, że ​​jesteś o wiele bardziej wartościowy, a zatem przydatny do pracy. Zarówno ze względu na dobrze dostrojone umiejętności, które uzyskujesz podczas treningu, jak i dlatego, że kiedy jesteś w stanie korzystać z istniejącego OSS, Twoja znajomość ekosystemu pozwala tracić znacznie mniej czasu na ocenę tego, co już jest, aby uniknąć przepisywania koła.

Javier
źródło
11

Przez większość czasu firmy zarabiają na modelu pszczelarstwa . Zasadniczo, twoi współautorzy open source mogą korzystać z najnowszych i najlepszych za darmo, podczas gdy klienci otrzymują niezawodny, dojrzały produkt. Red Hat, Novell i Sun używają odmian tego modelu.

Inną opcją są konsultacje i szkolenia. Jeśli masz duże doświadczenie w korzystaniu z określonego produktu (lub jeszcze lepiej, że go wymyśliłeś), ludzie mogą chcieć zapłacić ci pieniądze, aby nauczyć ich korzystania z niego. Jest to model używany przez firmę Canonical. To niekoniecznie oznacza, że ​​musisz wykonywać pracę typu sysadmin, chyba że to twoja sprawa. W końcu programiści, użytkownicy końcowi i kadra kierownicza również potrzebują szkolenia.

Po trzecie, jako student powinieneś poważnie rozważyć Google Summer of Code przyszłego lata.

Ogólnie rzecz biorąc, powiedziałbym, że wkłady typu open source są tego warte, niezależnie od tego, czy bezpośrednio zarabiasz na nich pieniądze. Obawiam się jednak, że prawdopodobnie nie zauważysz korzyści w krótkim okresie.

Jason Baker
źródło
10

To naprawdę zależy. Wielu po prostu zajmuje się tworzeniem oprogramowania typu open source jako hobby i ma codzienną pracę (co często jest, choć nie zawsze, także rozwojem oprogramowania).

Niektóre są opłacane przez firmy zainteresowane projektem open source. LWN.net opublikował artykuł o tym, kto płaci deweloperom jądra Linuksa, na przykład:

http://lwn.net/Articles/222773/

Okazuje się, że wiele firm finansuje rozwój jądra Linuksa, a nie tylko dystrybutorów Linuksa.

Niektórzy programiści prowadzą również działalność doradczą i wykorzystują opracowywanie oprogramowania do wspierania swojej głównej pracy lub jako wizytówkę.

Śleske
źródło
7

istnieje kilka różnych sposobów

  • Finansowanie przez inną firmę (np. Google, który płaci Guido van Rossumowi za pracę w Pythonie przez połowę swojego czasu)
  • Sprzedaż usług wsparcia
  • Sprzedaż usług doradczych
  • Budowanie własnego profilu poprzez open source w nadziei, że doprowadzi to do innych rzeczy, takich jak mówienie, pisanie książek, uzyskanie dobrej płatnej pracy
  • Spinning komercyjnej wersji produktu na przykład dla klientów „korporacyjnych”

a potem największe, które, jak sądzę, poszerzają swoją wiedzę i czerpią miłość z użytkowników ich produktów.

olle
źródło
6


Utwórz witrynę internetową dotyczącą produktu typu open source (swojej aplikacji, forum, witryny pomocy technicznej itp.) I umieść tam reklamy.

To by załatwiło sprawę.

friol
źródło
2
Jasne, możesz zarobić trochę pieniędzy, ale nie możesz zarabiać na życie reklamami.
1
Chociaż Google ma z nimi trochę szczęścia;)
Michael Durrant
6

Nieumyślnie zarobiłem pieniądze dzięki oprogramowaniu open source, podobnie jak przyjaciel. Mieliśmy podobne przypadki, ale opowiem tylko o swoich: napisałem dekoder VCDiff typu open source, głównie dlatego, że specyfikacja wyglądała ładnie. (Długa historia, ale pierwotnie zamierzałem napisać ją w czasie firmy, ale skończyłem na tym w piątek wieczorem).

Kilka lat później skontaktowała się ze mną firma, która chciała użyć go w pakiecie komercyjnym, ale bez wymaganej atrybucji. Z przyjemnością uiścili za to opłatę licencyjną i przedstawili mi wyjątkowo rozsądną niewyłączną licencję. Zawarliśmy umowę i obie strony były zadowolone.

Celem nigdy nie było zarabianie pieniędzy - stało się to po prostu efektem ubocznym wytworzenia czegoś, czego zasadniczo inna partia chciała.

Jon Skeet
źródło
3
Myślę, że trafiłeś w ważną kwestię: nie idziesz do otwartego źródła dla pieniędzy.
@Bernard: Zakładam, że twoje oświadczenie wyklucza Sun, Novell, Red Hat, Google, IBM, Apple, a nawet Microsoft?
Jason Baker
Nie, mam na myśli, że jako jednostka, intencją nie powinno być zarabianie pieniędzy. Nie to, że jest to niemożliwe, a nawet trudne lub niepożądane.
@Jason - nie sądzę, że Microsoft kiedykolwiek „poszedł” na open source.
Chris Lutz
5

Myślę, że częstym scenariuszem jest to, że oni również opłacali pracę. Wiele prac open source pochodzi z wolnego czasu programistów i elementów ich płatnej pracy.

Przykładem może być stworzenie rozwiązania w celu rozwiązania konkretnego problemu w pracy i otwarcie rozwiązania, aby pomóc innym programistom w obliczu podobnego scenariusza.

Mark Embling
źródło
4

Samo opracowanie projektu oprogramowania typu open source prawdopodobnie nie przyniesie ci dużo pieniędzy. Zapewnienie wsparcia premium, dostosowań itp. Może. Zrobię całkiem spore zmiany, opracowując rozszerzenia i niestandardowe kompilacje Firefoksa, Thunderbirda, Red5 i kilku innych projektów open source. Duża część tego, co tworzę, jest również udostępniana społeczności open source.

Istnieje również możliwość podwójnego systemu licencjonowania. Na przykład możesz wydać oprogramowanie na licencji typu GPL, a także na licencji komercyjnej, gdzie ktoś, kto kupi licencję komercyjną, może zachować wszelkie modyfikacje zastrzeżone i sprzedawać je bez wydawania kodu źródłowego.

Gerald
źródło
3

Jeśli naprawdę chcesz zarabiać, tworząc własny projekt open source, myślę, że jest to dość długa szansa. Z drugiej strony istnieje wiele dobrze płatnych zleceń, które wymagają pracy z technologiami typu open source lub opracowania oprogramowania typu open source w firmach takich jak Red Hat, Sun, IBM, a nawet Microsoft.

Nemanja Trifunovic
źródło
3

Odpowiedź na twoje aktualne pytanie

czy można zarobić na rozwoju oprogramowania Open Source i jak?

Tak, i są różne sposoby. Jeśli chcesz zostać programistą, tj. Nie zakładać własnego biznesu, najlepiej zacząć od uczestnictwa w projektach, które lubisz. Następnie możesz znaleźć takie możliwości: http://webapps.ubuntu.com/employment/canonical_GDOS/ (istnieje wiele takich w różnych dziedzinach, MySQL, żeby wspomnieć o innej „dużej” nazwie).

Następnie utwórz profil na LinkedIn i dołącz do grup OSS odpowiadających Twoim umiejętnościom i / lub zainteresowaniom.

Na koniec dołącz do lokalnej grupy (np. LUG, JUG) i przeczytaj listę mailingową. Często na tych listach pojawia się wiele ofert pracy (niestety odkryłem dopiero po otrzymaniu pracy).

Davide
źródło
2

Niektóre firmy produkujące oprogramowanie open source świadczą usługi i zarabiają pieniądze. (Podobnie jak hosting aplikacji itp.) W większości przypadków zapewniają pewne dostosowania zgodnie z wymaganiami klienta oraz zapewniają wsparcie i konserwację w miarę upływu czasu.

Nie sądzę, że „darowizny” mogą dokonać znacznej zmiany, ale mają one również pewien wpływ.

To dobry przykład dla firmy ze Sri Lanki, która opiera się na produktach typu open source.

WSO2

Chathuranga Chandrasekara
źródło
2

Istnieją dwie odnoszące sukcesy, rentowne firmy open source, które znam dość dobrze:

  • Oprogramowanie SleepyCat, dopóki nie zostały zakupione przez Oracle, zarabiało, wspierając i ulepszając Berkeley DB. Chociaż jeden z założycieli miał pracę dzienną, drugi nie, i mieli kilkunastu pracowników.

  • Chez Scheme zarabia, dodając ulepszenia do swojego kompilatora i sprzedając wersje swojego kompilatora z kodem macierzystym. Typowe ulepszenia mogą obejmować nowe zaplecze; ostatnio bardziej ambitnym ulepszeniem był pakiet wątków natywnych. Założyciel (Kent Dybvig) ma codzienną pracę; Nie wiem, ilu ma pracowników. Chez jest niezwykły, ponieważ interpreter jest oprogramowaniem typu open source, ale kompilator nie.

Cygnus i Red Hat zarówno sprzedają „wsparcie”, jak i wyspecjalizowane wersje swojego oprogramowania, ale oprogramowanie jest również rozdawane. Naprawdę nie rozumiem tego modelu biznesowego.

Biorę pod uwagę te przykłady, że jeśli twoje oprogramowanie jest wyjątkowe w swojej klasie, ludzie zapłacą ci za pomoc w rozwiązaniu problemów . To prawie jak doradztwo.

Norman Ramsey
źródło
Myślę, że tłumacz Cheza Scheme'a jest darmowy, ale nie open source. Widziałem tylko pliki binarne dla interpretera programu Chez Scheme. A Google nie pomógł.
Shannon Severance
2

Z natury nie można generować pieniędzy bezpośrednio z kodu - ponieważ jest on otwarty. Możesz mieć podwójną licencję, ale może to również zniechęcić społeczność OSS.

Prawdopodobnie najłatwiej jest pracować dla firmy, która produkuje oprogramowanie open source. Otrzymujesz wynagrodzenie za pisanie kodu, a firma zarabia na wsparciu lub czymkolwiek, ale nie musisz bezpośrednio angażować się w tę stronę.

Lub możesz napisać OSS, aby zbudować przedstawiciela i mam nadzieję, że dostaniesz pracę kontraktową / pełnoetatową na odwrocie.

Draemon
źródło
Nie ma potrzeby podwójnej licencji. Nic nie stoi na przeszkodzie, abyś sprzedawał kod GPL. Jedynym problemem jest to, że nie można uniemożliwić kupującemu sprzedaży go samodzielnie lub rozdania. Lepiej sprzedać usługę pisania kodu, niż towary, które są kodem.
szczupły
To nieprawda. Rzeczywiście możesz go sprzedać, ale następnie rozpowszechniasz go poza warunkami GPL (do których posiadania jako właściciela praw autorskich masz prawo). To nie czyni go domeną publiczną. Lepiej jest wyraźnie zaznaczyć tę alternatywną licencję.
1

Możesz to zrobić na kilka sposobów. W tej chwili model freemium jest popularny.
Alternatywnie, ponieważ inni opublikowali, praca open source jest odsunięta na bok. Model, którego używam, to korzystanie z otwartego oprogramowania w moim miejscu pracy i przekazywanie moich wkładów z powrotem do głównej linii. Musisz mieć wpisowe od zarządu, ale to działa. Pamiętaj także w słowach Stallman Free jak we Freedom

rh0dium
źródło
1

Myślę, że do tej pory faktem jest, że zainstalowane oprogramowanie staje się warte więcej niż jego cena, ponieważ stało się „już tam”. Mówię o aplikacjach bardziej korporacyjnych.

Wiele firm pobiera opłaty przy zakupie oprogramowania, a następnie trzymaj nogę przy drzwiach z umowami serwisowymi, kończąc zarabianie od ciebie więcej $$, niż gdybyś kupił to 7 razy. Wiem, że z pewnością tak jest w przypadku pracy z jakimś zastrzeżonym oprogramowaniem, które ma> 30 lat!

Zdarza się tak, że to oprogramowanie można zainstalować za darmo (pomyśl o nim jako o modelu biznesowym „początkowo darmowych narkotyków”). Wyzwaniem jest oczywiście wybór projektu, który jest dobrze utrzymany i ma dobrą społeczność wsparcia online. Ale z drugiej strony to samo dotyczy niewolnego oprogramowania.

Migracja do Open Source i poza nim jest zwykle znacznie łatwiejsza niż aplikacje zastrzeżone, ponieważ częściej obsługują otwarte formaty. Zastrzeżone aplikacje zazwyczaj „rozdają” usługę migracji na nie oraz inne usługi, aby ułatwić Ci pozostanie z nimi.

Aplikacje O / S mają na początku wyższą krzywą uczenia się, co prawie wymaga umów serwisowych, więc istnieje wiele okazji do uzyskania $$

Moim zdaniem żaden model biznesowy nie jest lepszy, tylko inny. Zastrzeżony model jest po prostu bardziej rozpowszechniony.

KevinDeus
źródło
1

Widzę tutaj dwa pytania:

1) W jaki sposób programiści zarabiają pieniądze.

Większość programistów nie robi tego dla pieniędzy. Powodów może być wiele, ale jeśli je zawęzimy, sprowadza się to do 1) Drapania się w swędzeniu 2) W celu uzyskania wiarygodności 3) Aby zwiększyć wiedzę w tym konkretnym języku / domenie.

2) Jak biznes zarabia.

Zwykle od wsparcia, szkolenia, certyfikacji i ulepszeń. Ale pojawia się pytanie: jeśli twój produkt jest naprawdę dobry, to nie będzie wymagał dużego wsparcia. Więc to musi być to, co Joel nazywa Consultingware .

krishna
źródło
0

W dzisiejszych czasach niektóre (dużo?) Firmy płacą programistom za wkład w oprogramowanie opensource, ponieważ ich działalność opiera się na oprogramowaniu opensource lub pochodzi z oprogramowania opensource.

neuro
źródło