¿Ganar dinero con Open Source como desarrollador?

109

Actualmente soy estudiante (Tecnología de la Información Aplicada) y hacemos la mayor parte de nuestra programación en C # y Java. Me preguntaba cómo puedo, como desarrollador, ganar dinero con el código abierto. Sé que existe la historia de brindar apoyo o brindar servicios, pero no soy un administrador de sistemas y no me gusta el trabajo de administrador de sistemas. En realidad, me encantaría tener algunas manos en C y C ++ en el futuro y hacer un desarrollo de bajo nivel.

Entonces, mi pregunta real es: ¿Hay dinero para ganar con el desarrollo de software de código abierto y cómo?

Editar: solo señalar que comenzar mi propio proyecto de código abierto no es un requisito.

Haproli
fuente
Lea el libro de Eric Raymond: La Catedral y el Bazar
Dipan Mehta
"Brindar soporte / proporcionar servicios" a código abierto no implica necesariamente trabajo de administrador de sistemas. Por ejemplo, tal vez un cliente encuentre que una aplicación de código abierto es casi perfecta para sus necesidades si tiene un mod de código pequeño y lo contratará para programar ese mod de código.
James
posible duplicado de ¿Por qué desarrollar programas gratuitos de código abierto? "¿Por qué todo tiene que ser sobre dinero? ¿Cómo crees que funciona wikipedia? A nadie se le paga por publicar contenido en Wikipedia, pero es discutible la mejor enciclopedia ... Hablemos de dinero ..."
gnat
Como todos mencionaron, a la mayoría de los desarrolladores de OSS no se les paga por sus esfuerzos. Es un modelo de negocio brillante. Solo piense en los miles de millones de dólares en tarifas de licencias ahorradas por corporaciones gigantes usando OSS. Los ejecutivos de estas compañías deben pellizcarse todas las mañanas para asegurarse de que no estén soñando. De alguna manera, han convencido a un ejército de personas para que trabajen para ellos de forma gratuita. Funcionó tan bien con el software que ahora están extendiendo el modelo a otras áreas, periodismo y fotografía. El desarrollo de OSS es un poco como la religión, una vez más, un montón de mumbo jumbo presentado esta vez por los grandes

Respuestas:

105

Esta respuesta resume muchas de las respuestas a las siguientes preguntas, junto con algunas investigaciones y opiniones adicionales.

Sinopsis

El código abierto puede ser un modelo comercial primario o auxiliar viable, tanto directamente a través del trabajo específico del proyecto como indirectamente a través de la adquisición de habilidades, experiencia y reputación. También puede haber motivaciones adicionales; la satisfacción de producir software que sea útil para otros, el "rascarse el picor personal" (el primer paso hacia cualquier buen software de código abierto, según Eric S. Raymond ), o razones filosóficas , normalmente basadas en la noción de software libre , ya sea el enfoque copyleft defendido por Richard Stallman , o el enfoque más permisivo de las licencias BSD .

Formas de ganar dinero a través del código abierto

1. Patrocinio de una empresa.

Esto puede suceder de varias maneras.

  • Trabajo permanente para continuar trabajando en proyectos de alto perfil. Este es probablemente el caso más raro. Si usted es un miembro senior de un importante proyecto de código abierto, alguien como Linus Torvalds , Guido van Rossum o Theo de Raadt , entonces probablemente podrá continuar trabajando en su proyecto mientras recibe el apoyo financiero de una empresa importante como Google o IBM . Aunque este modo de soporte es relativamente poco común, no necesariamente tiene que ser una superestrella de código abierto para asegurar este tipo de financiación; muchos desarrolladores de kernel de Linux están parcial o totalmente financiados por compañías como Red Hat .
  • Pagado por características o extensiones específicas. Algunas compañías ofrecen recompensas para tener características específicas implementadas en el software de código abierto que utilizan para las funciones comerciales. A menudo no hay necesidad de que la característica permanezca de código cerrado, por lo que se devuelve un código significativo a la comunidad. Esto ha sido descrito como el modelo apicultor del desarrollo de código abierto. En algunos casos, las características adicionales son necesarias para permanecer propietarias, pero se basan en una base de código de código abierto. En ambos casos, la experiencia en código abierto es una clara ventaja para un desarrollador.
  • Su código de trabajo diario puede ser de código abierto. Un caso relacionado es cuando los aspectos del código que escribe para una empresa en el curso de su trabajo diario pueden ser de código abierto sin dañar a la empresa. El código puede o no estar basado en un proyecto FOSS existente. Las herramientas y bibliotecas genéricamente útiles a menudo se pueden publicar de esta manera, y la evidencia anecdótica sugiere que tales proyectos a menudo pueden acelerarse una vez que se vuelven impulsados ​​por voluntarios.

2. Agregar valor a los proyectos existentes

Una persona o empresa puede posicionarse como un proveedor principal que agrega valor a un proyecto o proyectos de código abierto existentes. Hay muchos ejemplos de empresas que brindan un servicio mediante el empaquetado, estratificación, combinación o extensión de proyectos existentes. En general se dividen en dos categorías.

  • Apoyo. Enthought agrega valor al empaquetar una distribución personalizada de Python centrada en bibliotecas científicas. Redhat y las otras distribuciones de Linux agregan valor al cotejar y probar muchos proyectos dispares de código abierto y al proporcionar mecanismos de instalación y actualización fáciles de usar . Estas compañías venden servicios de soporte de la misma manera que lo hacen muchos proveedores propietarios.
  • Modelo Freemium . Bajo este modelo, una versión básica del software o servicio es gratuita; características adicionales 'premium' normalmente cuestan más. El software Sleepycat proporcionó características adicionales para Berkeley DB bajo una licencia patentada. Cedega proporciona una reimplementación de la API de Windows en Linux, lanzada como una mezcla de código gratuito y propietario. Este modelo no necesita ser de código abierto; Gmail para organizaciones es un ejemplo de un servicio que ofrece opciones gratuitas (como en cerveza) y premium.

3. Código de oferta bajo un modelo de doble licencia

Un enfoque poderoso es ofrecer software bajo dos licencias alternativas , una licencia copyleft que requiera que las modificaciones se devuelvan a la comunidad si el software se distribuye, y una licencia comercial que permita el uso del software sin restricciones de código abierto. Este enfoque se ha aplicado con éxito en grandes proyectos como Qt y Open Office , así como en pequeños proyectos únicos .

4. Consultar

El trabajo de código abierto puede proporcionar una forma de obtener una valiosa visibilidad de la comunidad.

  • Exhibición de habilidades. Ser capaz de verificar el trabajo y la competencia de un desarrollador al observar los proyectos de código abierto en los que han estado involucrados es un gran atractivo para los posibles empleadores .
  • Edificio de reputación. Tener una reputación de alto perfil en una comunidad de código abierto puede conducir a compromisos de oratoria , solicitudes de capacitación u ofertas de escritura de libros en función de su experiencia.
  • Siendo el experto. Ser un jugador importante en una tecnología que las empresas necesitan, significa tener demanda de consultoría personalizada, soporte y capacitación en esa tecnología. Esto puede conducir a la creación de un nicho de trabajo específico en su área de especialización.

5. Canales auxiliares

Finalmente, los ingresos pueden derivarse a través de canales auxiliares como publicidad (como lo hace Stackoverflow ), donaciones , o mediante el uso de técnicas de nagware en el software en sí que tienen como objetivo molestar a un usuario para que proporcione contribuciones financieras al autor. Estas técnicas no son específicas de los modelos de desarrollo de código abierto. Por ejemplo, a menudo son utilizados por productos shareware no gratuitos .

ire_and_curses
fuente
21

Debido a que usted es el creador de este sistema, usted es el "experto final". Las compañías con fines de lucro que usan o desean usar su software pueden llevarlo a un trabajo de consultoría. Además, calificaría para hablar en convenciones que, según he oído, están bien pagadas.

Contribuir con código a un proyecto existente también es una buena manera de dar a conocer su nombre. Cuanto más contribuyas, más credibilidad tendrás cuando busques un trabajo por contrato.

Dimitry
fuente
17

Aquí hay un ejemplo.

Si te quedas en la comunidad de Qmail, encontrarás que hay algunas personas que conocen Qmail al revés. Solo un par de ellos se convierten en los favoritos si desea una extensión de la funcionalidad de Qmail. Consiguen trabajos de contratación que los involucran sentados en casa, escribiendo una extensión de Qmail y cobrando por ello.

Si eso parece un estilo de vida al que podría optar, pruébelo: encuentre un nicho y asuma trabajos por contrato. Puede ofrecer diferentes términos a sus clientes, dependiendo de si querían poseer el código que produce de código cerrado o si libera el código como código abierto, pero pueden usarlo.

Piénselo de esta manera: hay muchas situaciones en las que el cliente simplemente quiere que este código exista . Entonces no les importa si tienen acceso exclusivo o no.

Delgado
fuente
Contratar trabajos es irregular y, en mi opinión, no es una buena elección de carrera. Parece mejor tener un trabajo de salario (confiable) o una startup (una apuesta, pero al menos hay una recompensa potencial).
sixtyfootersdude
15

En mi experiencia, escribir OSS no te da dinero; pero lo hace mucho más valioso y, por lo tanto, empleable. Tanto por las habilidades altamente afinadas que obtienes de la práctica, como porque cuando puedes usar OSS existentes, tu familiaridad con el ecosistema te permite perder mucho menos tiempo evaluando lo que ya existe para evitar reescribir la rueda.

Javier
fuente
11

La mayoría de las veces, las empresas ganan dinero con el modelo de apicultor . Esencialmente, sus contribuyentes de código abierto pueden usar su último y mejor de forma gratuita, mientras que sus clientes obtienen un producto confiable y maduro. Red Hat, Novell y Sun usan variaciones de este modelo.

Otra opción es la consultoría y capacitación. Si tiene mucha experiencia en el uso de un determinado producto (o mejor aún, lo inventó), entonces las personas pueden estar dispuestas a pagarle dinero para enseñarles a usarlo. Este es el modelo que utiliza Canonical. Esto no significa necesariamente que tenga que hacer un trabajo de tipo sysadmin a menos que sea lo suyo. Después de todo, los programadores, los usuarios finales y los ejecutivos también necesitan capacitación.

En tercer lugar, como estudiante, debe considerar seriamente Google Summer of Code el próximo verano.

En general, diría que las contribuciones de código abierto valen la pena, ya sea que ganes o no directamente de ellas. Sin embargo, me temo que probablemente no se dará cuenta de los beneficios a corto plazo.

Jason Baker
fuente
10

Realmente depende Muchos simplemente realizan el desarrollo de código abierto como un pasatiempo y tienen un trabajo diario (que a menudo, aunque no siempre, también es desarrollo de software).

Algunos son pagados por compañías que tienen interés en el proyecto de código abierto. LWN.net publicó un artículo sobre quién paga a los desarrolladores de kernel de Linux, por ejemplo:

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

Resulta que muchas compañías financian el desarrollo del kernel de Linux, y no solo los distribuidores de Linux.

Algunos desarrolladores también dirigen un negocio de consultoría y utilizan el desarrollo de software para respaldar su trabajo principal o como escaparate.

sleske
fuente
7

hay bastantes maneras diferentes

  • Financiación de otra compañía (por ejemplo, google, que le paga a Guido van Rossum para trabajar en Python la mitad de su tiempo)
  • Venta de servicios de soporte
  • Venta de servicios de consultoría
  • Construir un perfil para usted a través de código abierto con la esperanza de que conduzca a otras cosas como hablar, escribir libros, conseguir un trabajo bien remunerado
  • Giro de una versión comercial del producto para clientes "empresariales", por ejemplo

y luego los más importantes, creo, son extender su conocimiento y obtener el amor de los usuarios de sus productos.

olle
fuente
6


Cree un sitio web sobre un producto de código abierto (su aplicación, un foro, un sitio de soporte, etc.) y coloque algunos anuncios allí.

Eso serviría.

friol
fuente
2
Claro, podría ganar algo de dinero, pero no podría ganarse la vida con los anuncios.
1
Aunque google ha tenido algo de suerte con ellos;)
Michael Durrant
6

He ganado dinero inadvertidamente a través de software de código abierto, como lo ha hecho un amigo. Tuvimos casos similares, pero solo hablaré sobre el mío: escribí un decodificador VCDiff de código abierto, básicamente porque la especificación se veía bien. (Larga historia, pero originalmente iba a escribirla en horario de empresa, pero terminé haciéndolo un viernes por la noche).

Unos años más tarde, una empresa se me acercó y quería usarlo en un paquete comercial, pero sin la atribución requerida. Estaban felices de pagar una tarifa de licencia por esto, y me presentaron una licencia no exclusiva extremadamente razonable. Hicimos el trato, y ambas partes estaban felices.

El objetivo nunca fue ganar dinero, eso simplemente sucedió como un efecto secundario de producir algo que otra parte quería, básicamente.

Jon Skeet
fuente
3
Creo que has llegado a un punto importante: no entras en código abierto por dinero.
@Bernard: ¿Supongo que su declaración excluye Sun, Novell, Red hat, Google, IBM, Apple e incluso Microsoft?
Jason Baker,
No, quiero decir, como individuo, la intención de uno no debería ser ganar dinero. No es que sea imposible, o incluso difícil o no deseado.
@ Jason - No creo que Microsoft haya "entrado" en código abierto.
Chris Lutz
5

Creo que un escenario común es que también tienen trabajos remunerados. Gran parte del trabajo de código abierto se deriva del tiempo libre de los desarrolladores y de elementos de su trabajo remunerado.

Un ejemplo podría ser crear una solución para resolver un problema específico en el trabajo y abrir la solución para ayudar a otros desarrolladores que se enfrentan a un escenario similar.

Mark Embling
fuente
4

El simple desarrollo de un proyecto de software de código abierto probablemente no le hará ganar mucho dinero. Proporcionando soporte premium, personalizaciones, etc. Realizo una buena parte del cambio al desarrollar extensiones y compilaciones personalizadas de Firefox, Thunderbird, Red5 y algunos otros proyectos de código abierto. Una gran parte de lo que creo también se devuelve a la comunidad de código abierto.

También existe la posibilidad de un sistema de doble licencia. Por ejemplo, puede lanzar el software bajo una licencia de tipo GPL, y también bajo una licencia comercial donde alguien que compra una licencia comercial puede mantener cualquier modificación de propiedad y venderla sin liberar el código fuente.

Gerald
fuente
3

Si realmente quieres ganar dinero haciendo tu propio proyecto de código abierto, creo que es una posibilidad bastante remota. Por otro lado, hay muchos trabajos bien remunerados que requieren trabajar con tecnologías de código abierto o desarrollar software de código abierto en compañías como Red Hat, Sun, IBM e incluso Microsoft.

Nemanja Trifunovic
fuente
3

La respuesta a tu pregunta real

¿Se puede ganar dinero con el desarrollo de software de código abierto y cómo?

Es sí, y hay diferentes formas. Si solo quiere ser un desarrollador, es decir, no comenzar su propio negocio, lo mejor para comenzar es participar en los proyectos que le gusten. Entonces, puede encontrar oportunidades como esta: http://webapps.ubuntu.com/employment/canonical_GDOS/ (hay muchas de ellas en diferentes campos, MySQL, solo por mencionar otro nombre "grande").

Luego, cree su perfil en LinkedIn y únase a los grupos OSS relevantes para sus habilidades y / o intereses.

Por último, pero no menos importante, únete a un grupo local (por ejemplo, LUG, JUG) y lee la lista de correo. A menudo, en esas listas aparecen muchas ofertas de trabajo (desafortunadamente descubrí solo después de obtener el trabajo).

Davide
fuente
2

Algunas compañías de software de código abierto proporcionan servicios y ganan dinero. (Al igual que el alojamiento de aplicaciones, etc.) En la mayoría de los casos, proporcionan algunas personalizaciones de acuerdo con los requisitos del cliente y proporciona soporte y mantenimiento a lo largo del tiempo.

No creo que las "Donaciones" puedan hacer un gran cambio, pero también tienen cierto impacto.

Este es un buen ejemplo para una empresa de Sri Lanka que se basa en productos de código abierto.

WSO2

Chathuranga Chandrasekara
fuente
2

Hay dos compañías exitosas y rentables de código abierto que conozco razonablemente bien:

  • SleepyCat Software, hasta que Oracle los compró, hizo dinero al apoyar y mejorar Berkeley DB. Aunque uno de los fundadores tenía un trabajo diario, el otro no, y tenían una docena de empleados.

  • Chez Scheme gana dinero agregando mejoras a su compilador y vendiendo versiones de código nativo de su compilador. Las mejoras típicas pueden incluir un nuevo back-end; Una mejora reciente más ambiciosa fue un paquete de hilos nativos. El fundador (Kent Dybvig) tiene un trabajo diario; No sé cuántos empleados tiene. Chez es inusual porque el intérprete es de código abierto pero el compilador no lo es.

Cygnus y Red Hat venden "soporte" y versiones especializadas de su software, pero el software también se regala. Realmente no entiendo este modelo de negocio.

Lo que quito de estos ejemplos es que si su software es sobresaliente en su clase, la gente le pagará para ayudarlos a usar sus cosas para resolver problemas . Entonces es casi como consultoría.

Norman Ramsey
fuente
Creo que el intérprete de Chez Scheme es gratuito, pero no de código abierto. Solo he visto binarios para el intérprete de Chez Scheme. Y google no ayudó.
Shannon Severance
2

Por su naturaleza, generalmente no puede ganar dinero directamente del código, ya que está abierto. Podrías tener doble licencia, pero eso también puede desanimar a la comunidad OSS.

Posiblemente, la forma más fácil es trabajar para una empresa que produce software de código abierto. Te pagan por escribir código, y la compañía gana dinero con el soporte o lo que sea, pero no tienes que involucrarte directamente con ese lado de las cosas.

O puede escribir OSS para crear un representante y, con suerte, obtener trabajo por contrato / trabajo a tiempo completo en la parte posterior.

Draemon
fuente
No es necesario tener doble licencia. No hay nada que te impida vender el código GPL. El único problema es que no puede evitar que el comprador lo venda o lo regale. Es mejor vender el servicio de escribir el código que los bienes que son el código.
delgado
Eso no es cierto. De hecho, puede venderlo, pero luego lo está distribuyendo fuera de los términos de la GPL (que como titular de los derechos de autor tiene derecho a hacer). Eso no lo hace de dominio público. Es mejor hacer explícita esta licencia alternativa.
1

Puedes hacer esto de varias maneras. En este momento, el modelo freemium es popular.
Alternativamente, como otros han publicado, el trabajo de código abierto se deja de lado. El modelo que uso es usar código abierto en mi lugar de trabajo y contribuir con mis contribuciones a la línea principal. Necesitas tener la aceptación de la gerencia pero funciona. También recuerda en las palabras de Stallman Free como en Freedom

rh0dium
fuente
1

Creo que es un hecho aceptado ahora que el software, una vez instalado, vale más que su precio porque ahora se ha convertido en "ya allí". Estoy hablando de más aplicaciones de estilo empresarial.

Muchas empresas le cobran cuando compra el software, luego mantienen su pie en la puerta con los contratos de mantenimiento, terminando ganando más $$ que si lo hubiera comprado 7 veces. ¡Sé que ese es ciertamente el caso en el que trabajo con algún software propietario que tiene más de 30 años!

Da la casualidad de que este software es de instalación gratuita (piense en él como el modelo comercial de "medicamentos libres al principio"). El desafío, por supuesto, es elegir un proyecto que esté bien mantenido y tenga una buena comunidad de soporte en línea. Pero, de nuevo, eso es lo mismo con el software no libre también.

La migración dentro y fuera del código abierto tiende a ser mucho más fácil que las aplicaciones propietarias porque tienden a admitir formatos abiertos con mayor frecuencia. Las aplicaciones propietarias generalmente "regalarán" el servicio de migrar hacia ellas y otros servicios para que sea más fácil para usted quedarse con ellas.

Las aplicaciones O / S tienden a tener una curva de aprendizaje más alta al principio, lo que prácticamente requiere contratos de mantenimiento, por lo que hay muchas oportunidades para hacer $$

En mi opinión, ninguno de los dos modelos de negocio es mejor, solo diferente. El modelo propietario está más extendido.

KevinDeus
fuente
1

Veo dos preguntas aquí:

1) ¿Cómo ganan dinero los desarrolladores?

La mayoría de los desarrolladores no lo hacen por el dinero. Las razones pueden ser muchas, pero si las reducimos, se reduce a 1) Rascarse una picazón 2) Para ganar credibilidad 3) Para mejorar el conocimiento en ese idioma / dominio en particular.

2) ¿Cómo hacen dinero las empresas?

Generalmente de apoyo, capacitación, certificación y mejora. Pero entonces surge la pregunta: si su producto es realmente bueno, entonces no necesitará mucho soporte. Entonces tiene que ser lo que Joel llama el software de consultoría .

Krishna
fuente
0

Hoy en día, algunas (¿muchas?) De compañías pagan a los desarrolladores para que contribuyan al software de código abierto, ya que su negocio se basa en software de código abierto o derivado del software de código abierto.

neuro
fuente