Ganhar dinheiro com o Open Source como desenvolvedor?

109

Atualmente, sou estudante (Applied Information Technology) e fazemos a maior parte de nossa programação em C # e Java. Eu queria saber como posso como desenvolvedor, ganhar dinheiro com código aberto. Sei que há a história de dar suporte ou fornecer serviços, mas não sou administrador de sistemas e não gosto do trabalho do administrador de sistemas. Na verdade, eu adoraria colocar algumas mãos em C e C ++ no futuro e fazer algum desenvolvimento de baixo nível.

Então, minha pergunta real é: Existe dinheiro a ser ganho com o desenvolvimento de software de código aberto e como?

Edit: Apenas apontando que iniciar meu próprio projeto de código aberto não é um requisito.

Haproli
fonte
Leia o livro de Eric Raymond: A catedral e o bazar
Dipan Mehta
"Dar suporte / fornecer serviços" ao código-fonte aberto não envolve necessariamente trabalho do administrador de sistemas. Por exemplo, talvez um cliente encontre um aplicativo de código aberto quase perfeito para as suas necessidades se ele tiver um pequeno mod de código feito e ele o contratará para programar esse mod de código.
James
possível duplicação de Por que desenvolver programas gratuitos e de código aberto? "Por que tudo tem a ver com dinheiro? Como você acha que a wikipedia funciona? Ninguém é pago para colocar conteúdo na Wikipedia, mas é discutível a melhor enciclopédia do mundo ... Vamos conversar sobre dinheiro ..."
gnat
Como todos mencionaram, a maioria dos desenvolvedores de OSS não é paga por seus esforços. É um modelo de negócios brilhante. Pense nos bilhões de dólares em taxas de licença economizadas por empresas gigantescas usando o OSS. Os executivos dessas empresas devem se beliscar todas as manhãs para garantir que não estejam sonhando. De alguma forma, eles convenceram um exército de pessoas a trabalhar para eles de graça. Funcionou tão bem com o software que agora está estendendo o modelo para outras áreas, jornalismo e fotografia. Desenvolvimento OSS é um pouco como a religião, mais uma vez uma pilha de patranhas apresentar desta vez por grande

Respostas:

105

Esta resposta resume muitas das respostas para as seguintes perguntas, juntamente com algumas pesquisas e opiniões adicionais.

Sinopse

O código aberto pode ser um modelo de negócios primário ou auxiliar viável, diretamente através do trabalho específico do projeto e indiretamente através da aquisição de habilidades, experiência e reputação. Também pode haver motivações adicionais; a satisfação de produzir software útil para os outros, o "arranhão da coceira pessoal" (o primeiro passo para qualquer bom software de código aberto, de acordo com Eric S. Raymond ), ou razões filosóficas , normalmente baseadas na noção de software livre , a abordagem copyleft defendida por Richard Stallman ou a abordagem mais permissiva das licenças do BSD .

Maneiras de ganhar dinheiro através do Código Aberto

1. Patrocínio de uma empresa

Isso pode acontecer de várias maneiras.

  • Trabalho permanente para continuar trabalhando em projetos de alto nível. Este é provavelmente o caso mais raro. Se você é um membro sênior de um grande projeto de código aberto, alguém como Linus Torvalds , Guido van Rossum ou Theo de Raadt , provavelmente poderá continuar trabalhando no seu projeto enquanto recebe apoio financeiro de uma grande empresa como Google ou IBM . Embora esse modo de suporte seja relativamente incomum, você não precisa necessariamente ser uma estrela de código aberto para garantir esse tipo de financiamento; muitos desenvolvedores de kernel Linux são parcial ou totalmente financiados por empresas como a Red Hat .
  • Pago por recursos ou extensões específicas. Algumas empresas oferecem recompensas para ter recursos específicos implementados em software de código aberto que eles usam para funções de negócios. Freqüentemente, não há necessidade de o recurso permanecer de código fechado; portanto, um código significativo é contribuído de volta à comunidade. Isso foi descrito como o modelo apicultor de desenvolvimento de código aberto. Em alguns casos, os recursos adicionais são necessários para permanecer proprietários, mas são baseados em uma base de código de código aberto. Nos dois casos, a experiência em código aberto é uma clara vantagem para um desenvolvedor.
  • O código do seu trabalho do dia pode ser de código aberto. Um caso relacionado é o local em que aspectos do código que você escreve para uma empresa no decorrer de seu trabalho diário podem ser de código aberto sem causar danos à empresa. O código pode ou não ser baseado em um projeto FOSS existente. Ferramentas e bibliotecas geralmente úteis podem ser lançadas dessa maneira, e evidências anedóticas sugerem que esses projetos podem acelerar com rapidez quando se tornam voluntários.

2. Agregar valor aos projetos existentes

Um indivíduo ou empresa pode se posicionar como um provedor principal que agrega valor a um ou mais projetos de código aberto existentes. Existem muitos exemplos de empresas que prestam um serviço empacotando, estratificando, combinando ou ampliando projetos existentes. Eles caem amplamente em duas categorias.

  • Apoio, suporte. A Enthought agrega valor ao empacotar uma distribuição Python personalizada com foco em bibliotecas científicas. A Redhat e as outras distribuições Linux agregam valor ao agrupar e testar muitos projetos de código aberto diferentes e fornecer mecanismos de instalação e atualização fáceis de usar . Essas empresas vendem serviços de suporte da mesma maneira que muitos fornecedores proprietários.
  • Modelo Freemium . Sob esse modelo, uma versão básica do software ou serviço é gratuita; recursos adicionais 'premium' normalmente custam extra. O software Sleepycat forneceu recursos extras para o Berkeley DB sob uma licença proprietária. O Cedega fornece uma reimplementação da API do Windows no Linux, lançada como uma mistura de código livre e proprietário. Este modelo não precisa ser de código aberto; O Gmail para organizações é um exemplo de serviço que oferece opções gratuitas (como na cerveja) e premium.

3. Código da oferta sob um modelo de licença dupla

Uma abordagem poderosa é oferecer software sob duas licenças alternativas , uma licença copyleft que exige que as modificações sejam liberadas de volta à comunidade se o software for distribuído e uma licença comercial que permita o uso do software sem restrições de código aberto. Essa abordagem foi aplicada com sucesso por grandes projetos, como o Qt e o Open Office , além de pequenos projetos pontuais .

4. Consultar

O trabalho de código aberto pode fornecer uma maneira de obter uma valiosa visibilidade da comunidade.

  • Demonstração de habilidades. Ser capaz de verificar o trabalho e a competência de um desenvolvedor analisando os projetos de código aberto nos quais eles estiveram envolvidos é um atrativo poderoso para os possíveis empregadores .
  • Reputação. Ter uma reputação de alto perfil em uma comunidade de código aberto pode levar a palestras , solicitações de treinamento ou ofertas de redação de livros com base em sua experiência.
  • Sendo o especialista. Ser um participante significativo em uma tecnologia que as empresas precisam significa estar em demanda de consultoria, suporte e treinamento personalizados nessa tecnologia. Isso pode levar à criação de um nicho de trabalho específico em sua área de especialização.

5. Canais Auxiliares

Por fim, a renda pode ser obtida por meio de canais auxiliares, como publicidade (como o Stackoverflow ), doações ou pelo uso de técnicas de nagware no próprio software que visam incomodar o usuário a fornecer contribuições financeiras ao autor. Essas técnicas não são específicas para os modelos de desenvolvimento de código aberto. Por exemplo, eles geralmente são usados ​​por produtos shareware não gratuitos .

ire_and_curses
fonte
21

Como você é o criador deste sistema, você é o 'especialista final'. Empresas com fins lucrativos que usam ou desejam usar seu software podem convidá-lo para algum trabalho de consultoria. Além disso, você se qualificaria para falar em convenções que eu ouço que são bem pagas.

Contribuir com código para um projeto existente também é uma boa maneira de divulgar seu nome. Quanto mais você contribuir, mais cred terá ao procurar um contrato de trabalho.

Dimitry
fonte
17

Aqui está um exemplo.

Se você ficar na comunidade do Qmail, verá que algumas pessoas conhecem o Qmail de dentro para fora. Apenas alguns deles se tornam os principais interessados, se você deseja uma extensão da funcionalidade do Qmail. Eles contratam empregos que os envolvem em casa, escrevendo uma extensão do Qmail e sendo pagos por isso.

Se isso lhe parece um estilo de vida, experimente - encontre um nicho e aceite contratos. Você pode oferecer termos diferentes para seus clientes, dependendo se eles desejam possuir o código que você produz código-fonte fechado ou se você libera o código como código-fonte aberto, mas eles conseguem usá-lo.

Pense desta maneira - há muitas situações em que o cliente simplesmente deseja que esse código exista . Eles não se importam se têm ou não acesso exclusivo a ele.

magro
fonte
A contratação de empregos é irregular e, na minha opinião, não é uma boa escolha de carreira. Parece melhor ter um emprego remunerado (confiável) ou uma startup (uma aposta, mas pelo menos há uma recompensa potencial).
sixtyfootersdude
15

Na minha experiência, escrever OSS não lhe dá dinheiro; mas isso o torna muito mais valioso e, portanto, utilizável. Tanto por causa das habilidades altamente ajustadas que você obtém da prática, quanto porque, quando você é capaz de usar o OSS existente, sua familiaridade com o ecossistema permite que você perca muito menos tempo avaliando o que já existe para evitar reescrever a roda.

Javier
fonte
11

Na maioria das vezes, as empresas ganham dinheiro usando o modelo de apicultor . Essencialmente, seus colaboradores de código aberto podem usar os melhores e mais recentes de graça, enquanto seus clientes obtêm um produto confiável e maduro. Red Hat, Novell e Sun usam variações desse modelo.

Outra opção é consultoria e treinamento. Se você tem muita experiência no uso de um determinado produto (ou, melhor ainda, o inventou), as pessoas podem estar dispostas a pagar-lhe dinheiro para ensiná-las a usá-lo. Este é o modelo que a Canonical usa. Isso não significa necessariamente que você deve executar um trabalho do tipo sysadmin, a menos que seja o seu caso. Afinal, programadores, usuários finais e executivos também precisam de treinamento.

Em terceiro lugar, como estudante, você deve considerar seriamente o Google Summer of Code no próximo verão.

No geral, eu diria que as contribuições de código aberto valem a pena, ou você não ganha dinheiro diretamente com elas. Embora eu tenha medo de que você provavelmente não perceba os benefícios a curto prazo.

Jason Baker
fonte
10

Isso realmente depende. Muitos apenas desenvolvem o código-fonte aberto como hobby e têm um emprego diário (o que geralmente é, embora nem sempre, também o desenvolvimento de software).

Alguns são pagos por empresas que têm interesse no projeto de código aberto. O LWN.net publicou um artigo sobre quem paga os desenvolvedores do kernel do Linux, por exemplo:

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

Acontece que muitas empresas financiam o desenvolvimento do kernel Linux, e não apenas os distribuidores Linux.

Alguns desenvolvedores também administram uma empresa de consultoria e usam o desenvolvimento de software para dar suporte ao seu trabalho principal ou como uma vitrine.

sleske
fonte
7

existem algumas maneiras diferentes

  • Financiamento por outra empresa (por exemplo, o Google, que paga Guido van Rossum para trabalhar em Python, metade do tempo)
  • Venda de serviços de suporte
  • Venda de serviços de consultoria
  • Criando um perfil para você mesmo através do código aberto, esperando que isso leve a outras coisas, como falar, autor de livros, conseguir um bom emprego remunerado
  • Fiação de uma versão comercial do produto para clientes "empresariais", por exemplo

e depois os maiores que eu acho estão ampliando seus conhecimentos e recebendo amor dos usuários de seus produtos.

olle
fonte
6


Crie um site sobre um produto de código aberto (seu aplicativo, um fórum, um site de suporte etc.) e coloque alguns anúncios nele.

Isso faria o truque.

friol
fonte
2
Claro, você poderia ganhar algum dinheiro, mas não poderia ganhar a vida com anúncios.
1
Embora o Google tenha tido alguma sorte com EM;)
Michael Durrant
6

Ganhei dinheiro inadvertidamente através de software de código aberto, como tem um amigo. Tivemos casos semelhantes, mas só vou falar sobre os meus: escrevi um decodificador VCDiff de código aberto, basicamente porque as especificações pareciam boas. (História longa, mas eu originalmente escrevia no horário da empresa, mas acabei fazendo na sexta à noite.)

Alguns anos depois, fui abordado por uma empresa que queria usá-lo em um pacote comercial, mas sem a atribuição necessária. Eles ficaram felizes em pagar uma taxa de licença por isso e me apresentaram uma licença não exclusiva extremamente razoável. Fizemos o acordo e os dois lados ficaram felizes.

O objetivo nunca era ganhar dinheiro - isso aconteceu apenas como um efeito colateral de produzir algo que outra parte queria, basicamente.

Jon Skeet
fonte
3
Eu acho que você atingiu um ponto importante: você não entra em código aberto por dinheiro.
@ Bernard: Estou assumindo que sua declaração exclui Sun, Novell, Red Hat, Google, IBM, Apple e até Microsoft?
Jason Baker
Não, quero dizer, como indivíduo, a intenção de alguém não deve ser ganhar dinheiro. Não que isso seja impossível, ou mesmo difícil ou indesejado.
@ Jason - Acho que a Microsoft nunca "entrou" em código aberto.
31711 Chris Lutz
5

Eu acho que um cenário comum é que eles também pagaram empregos. Muito trabalho de código aberto deriva do tempo livre dos desenvolvedores e de elementos de seu trabalho remunerado.

Um exemplo pode ser a criação de uma solução para resolver um problema específico no trabalho e o código aberto da solução para ajudar outros desenvolvedores a enfrentar um cenário semelhante.

Mark Embling
fonte
4

Apenas o desenvolvimento de um projeto de software de código aberto provavelmente não vai render muito dinheiro. Fornecer suporte premium, personalizações, etc. Eu faço uma boa mudança ao lado, desenvolvendo extensões e versões personalizadas do Firefox, Thunderbird, Red5 e alguns outros projetos de código aberto. Uma grande parte do que eu crio também é fornecida de volta à comunidade de código aberto.

Há também a possibilidade de um sistema de licença dupla. Por exemplo, você pode liberar o software sob uma licença do tipo GPL e também sob uma licença comercial em que alguém que compra uma licença comercial tem permissão para manter as modificações proprietárias e vendê-las sem liberar o código-fonte.

Gerald
fonte
3

Se você realmente quer ganhar dinheiro fazendo seu próprio projeto de código aberto, acho que é um tiro no escuro. Por outro lado, existem muitos empregos bem pagos que exigem trabalho com tecnologias de código aberto ou o desenvolvimento de software de código aberto em empresas como Red Hat, Sun, IBM e até Microsoft.

Nemanja Trifunovic
fonte
3

A resposta para sua pergunta real

há dinheiro a ser ganho com o desenvolvimento de software de código aberto e como?

É sim, e existem maneiras diferentes. Se você quer apenas ser um desenvolvedor, ou seja, não iniciar seu próprio negócio, a melhor coisa para começar é participar do (s) projeto (s) que você gosta. Então, você pode encontrar oportunidades como esta: http://webapps.ubuntu.com/employment/canonical_GDOS/ (existem muitas em diferentes campos, MySQL, apenas para mencionar outro nome "grande").

Em seguida, crie seu perfil no LinkedIn e participe dos grupos OSS relevantes para suas habilidades e / ou interesses.

Por último, mas não menos importante, entre em um grupo local (por exemplo, LUG, JUG) e leia a lista de discussão. Freqüentemente, nessas listas, muitas ofertas de emprego aparecem (infelizmente, descobri somente depois que recebi o emprego).

Davide
fonte
2

Algumas empresas de software de código aberto fornecem serviços e ganham dinheiro. (Como hospedagem de aplicativos, etc.) Na maioria dos casos, eles fornecem algumas personalizações de acordo com os requisitos do cliente e fornecem suporte e manutenção ao longo do tempo.

Eu não acho que as "Doações" possam fazer uma grande mudança, mas também há algum impacto delas.

Este é um bom exemplo para uma empresa do Sri Lanka baseada em produtos de código aberto.

WSO2

Chathuranga Chandrasekara
fonte
2

Existem duas empresas de código aberto bem-sucedidas e lucrativas que conheço razoavelmente bem:

  • O SleepyCat Software, até que eles foram comprados pela Oracle, ganhou dinheiro com o suporte e aprimoramento do Berkeley DB. Embora um dos fundadores tivesse um emprego diário, o outro não, e eles tinham uma dúzia de funcionários.

  • O Chez Scheme ganha dinheiro adicionando aprimoramentos ao compilador e vendendo versões de código nativo do compilador. Aprimoramentos típicos podem incluir um novo backend; um aprimoramento recente mais ambicioso foi um pacote de threads nativos. O fundador (Kent Dybvig) tem um emprego diário; Não sei quantos funcionários ele tem. Chez é incomum, pois o intérprete é de código aberto, mas o compilador não.

Cygnus e Red Hat vendem tanto "suporte" quanto versões especializadas de seu software, mas o software também é distribuído. Eu realmente não entendo esse modelo de negócios.

O que retiro desses exemplos é que, se o seu software é excelente em sua classe, as pessoas pagam para ajudá-lo a usar o seu material para resolver problemas . Então é quase como consultoria.

Norman Ramsey
fonte
Acho que o intérprete de Chez Scheme é gratuito, mas não de código aberto. Eu só vi binários para o intérprete Chez Scheme. E o google não ajudou.
Shannon Severance
2

Por sua natureza, geralmente você não pode ganhar dinheiro diretamente com o código - uma vez que está aberto. Você pode licenciar duas vezes, mas isso também pode prejudicar a comunidade OSS.

Possivelmente, a maneira mais fácil é trabalhar para uma empresa que produz software de código aberto. Você é pago por escrever código, e a empresa ganha dinheiro com suporte ou o que for, mas não precisa se envolver diretamente com esse lado das coisas.

Ou você pode escrever o OSS para criar um representante e, com sorte, obter contrato de trabalho / trabalho em tempo integral.

Draemon
fonte
Não há necessidade de licença dupla. Não há nada para impedi-lo de vender código GPL. O único problema é que você não pode impedir o comprador de vendê-lo ou doá-lo. Melhor vender o serviço de escrever o código do que os bens que são o código.
magro
Isso não é verdade. Você pode realmente vendê-lo, mas depois o distribuirá fora dos termos da GPL (a qual, como detentor dos direitos autorais, você tem direito). Isso não torna o domínio público. Melhor tornar essa licença alternativa explícita.
1

Você pode fazer isso de várias maneiras. No momento, o modelo freemium é popular.
Alternativamente, como outros publicaram, o trabalho de código aberto é deixado de lado. O modelo que eu uso é usar código aberto no meu local de trabalho e contribuir com minhas contribuições de volta à linha principal. Você precisa ter o apoio da gerência, mas funciona. Lembre-se também das palavras de Stallman Free e de Freedom

rh0dium
fonte
1

Eu acho que é um fato aceito agora que o software, uma vez instalado, vale mais que o preço, porque agora "já está lá". Estou falando de mais aplicativos de estilo corporativo.

Muitas empresas cobram quando você compra o software e, em seguida, mantêm o pé na sua porta com contratos de manutenção, acabando gerando mais $$ de você do que se você o tivesse comprado sete vezes. Sei que esse é certamente o caso em que trabalho com algum software proprietário com mais de 30 anos!

Acontece que este software é gratuito para instalar (pense nele como o modelo de negócios "drogas grátis no início"). O desafio, é claro, é escolher um projeto que seja bem mantido e tenha uma boa comunidade de suporte on-line. Mas, novamente, o mesmo acontece com o software não livre.

A migração para dentro e fora do código aberto tende a ser muito mais fácil do que aplicativos proprietários, porque eles tendem a suportar formatos abertos com mais frequência. Aplicativos proprietários geralmente "entregam" o serviço de migração para eles e outros serviços para facilitar a permanência deles.

Os aplicativos de O / S tendem a ter uma curva de aprendizado mais alta no início, o que praticamente exige contratos de manutenção, portanto há muitas oportunidades para fazer $$

Na minha opinião, nenhum dos modelos de negócios é melhor, apenas diferente. O modelo proprietário é mais difundido.

KevinDeus
fonte
1

Vejo duas perguntas aqui:

1) Como os desenvolvedores ganham dinheiro.

A maioria dos desenvolvedores não faz isso pelo dinheiro. As razões podem ser muitas, mas se reduzi-las, tudo se resume a 1) Riscando uma coceira 2) Para ganhar credibilidade 3) Para aprimorar o conhecimento nesse idioma / domínio específico.

2) Como os negócios ganham dinheiro.

Geralmente de suporte, treinamento, certificação e aprimoramento. Mas então surge a pergunta: se seu produto é realmente bom, não precisará de muito suporte. Portanto, tem que ser o que Joel chama de Consultingware .

Krishna
fonte
0

Atualmente, algumas (muitas?) Empresas pagam ao desenvolvedor para contribuir com o software de código aberto, pois seus negócios são baseados em software de código aberto ou derivados de software de código aberto.

neuro
fonte