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 .