054.1 Lección 1
Certificación: |
Open Source Essentials |
Versión: |
1.0 |
Tema: |
054 Modelos de negocio de código abierto |
Objectivo: |
054.1 Modelos de Negocio de Desarrollo de Software |
Lección: |
1 de 1 |
Introducción
Tradicionalmente, las empresas que distribuían software propietario (también conocido como software de código cerrado) tenían un modelo de negocios relativamente sencillo: vendían una licencia para usar el software, ya sea como una tarifa única o de forma continua en un modelo de suscripción.
Pero a lo largo de las décadas, el mercado de software ha cambiado radicalmente y hoy los clientes esperan pagar unos pocos dólares por una aplicación y recibir actualizaciones gratuitas de por vida.
Como resultado, el enfoque de la vieja escuela hacia el software propietario ya no es rentable, e incluso las empresas que solían construir todo su modelo de negocio en torno a la venta de licencias de software se han diversificado hacia la integración de proveedores, soporte, servicios y software como servicio. (SaaS), alojamiento en la nube/contenedores y productos de hardware que ejecutan software (teléfonos, computadoras portátiles, servidores, impresoras, automóviles, relojes inteligentes, etc.).
Por el contrario, las licencias de software libre y de código abierto otorgan a cualquiera el derecho a utilizar, estudiar, modificar y redistribuir el software sin pagar una tarifa. Por lo tanto, las empresas basadas en código abierto nunca tuvieron la opción de vender una licencia para utilizar el software. No debería esperar simplemente tomar el trabajo de otros de un proyecto de código abierto y obtener grandes ganancias al entregar ese trabajo disponible públicamente a sus clientes, porque ellos pueden obtener el mismo software de forma gratuita directamente desde el proyecto. En cambio, las empresas que ofrecen software libre y de código abierto utilizan modelos de negocio alternativos. Los modelos de negocio de software más exitosos suelen combinar múltiples formas de valor para el cliente.
Esta lección analiza por qué una empresa elegiría algunos de estos modelos de negocio de software con software de código abierto y las ventajas y desventajas de estas opciones.
Objetivos y razones para lanzar software o contenido bajo una licencia abierta
Hay muchas razones por las que los desarrolladores eligen construir un negocio con código fuente abierto: el software puede satisfacer una necesidad, resolver un problema o proporcionar algunas funciones que los desarrolladores ofrecen a los clientes. Una empresa puede ahorrar tiempo y dinero compartiendo el trabajo de software con otros desarrolladores, en lugar de escribir el mismo software desde cero. Participar en el proyecto es una inversión que, con suerte, dará sus frutos en un software utilizable, estable, confiable, seguro y bien mantenido.
Muchos desarrolladores de código abierto esperan obtener correcciones de errores de sus clientes. Algunos clientes llevan sus contribuciones a un nivel aún mayor al agregar nuevas funciones, migrar el software a un nuevo entorno o realizar otras mejoras significativas. Tanto las correcciones de errores como las mejoras de nivel superior mejoran el software original. Si los clientes los devuelven a los desarrolladores originales, los cambios podrían hacer que el código sea más deseable para otros clientes potenciales y fomentar su adopción.
Pero una empresa no puede esperar contribuciones y atención simplemente colocando su código en un sitio como GitHub o GitLab. Una cosa es animar a los desarrolladores a unirse a un proyecto, pero es más difícil mantenerlos entusiasmados con él, así que no subestimes la cantidad de trabajo que requieren las contribuciones de la comunidad. Una empresa debe esforzarse en reclutar desarrolladores, orientarlos, motivarlos y verificar si su código tiene fallas.
Otra razón para habilitar el código es crear un estándar industrial. Compartir código de manera abierta podría conducir a una mejor interoperabilidad y otros beneficios. El equipo que desarrolló el código tiene una experiencia valiosa que podría permitirles dirigir el futuro del proyecto y recibir un pago por apoyar a otros que utilizan el código.
Algunas empresas abren su código para generar confianza entre los clientes. En primer lugar, los clientes saben que pueden seguir usando y mejorando el código si la empresa fracasa o decide ingresar a un mercado diferente y abandona el código. En segundo lugar, los clientes pueden comprobar la calidad y seguridad del código por sí mismos o pedirle a un experto independiente que realice una auditoría, lo que normalmente no es posible con software cerrado y propietario.
Finalmente, una empresa podría haber adoptado un código base que ya es de código abierto y planear construir un negocio comercial sobre este. La licencia puede requerir que la empresa distribuya el código fuente de sus cambios a cualquier usuario final del programa.
En definitiva, algunas razones para abrir el código de una empresa son:
-
Aprovechar un proyecto de software libre existente
-
Beneficiarse de la innovación y las contribuciones de los clientes
-
Crear confianza entre los clientes
-
Promover el código como estándar de la industria
Modelos de negocio y flujos de ingresos comunes
La industria del software, durante las últimas décadas, ha descubierto muchos modelos de negocio apropiados tanto para empresas propietarias como para empresas de código abierto. Esta sección se centra en los más populares que se utilizan actualmente entre los desarrolladores de código abierto.
Un modelo de negocio, común tanto en el software propietario como en el de código abierto, es cobrar por el soporte. Los clientes pueden tener problemas para instalar y configurar el software, corregir errores a medida que se encuentran, agregar nuevas funciones para su uso exclusivo y administrar sus sistemas. El personal que desarrolló el software es una excelente fuente de apoyo. De hecho, este personal probablemente ya esté ofreciendo soporte gratuito en foros donde se analiza el software.
Por lo tanto, en el modelo de soporte, un cliente paga a un proveedor para que instale el software de código abierto en el hardware del cliente (llamado distribución de autohospedaje) u obtiene acceso al software en el hardware del proveedor (un modelo basado en la nube). Los contratos de soporte garantizan que los clientes obtengan ayuda oportuna de la empresa para sus necesidades más complejas. Las empresas que utilizan este modelo generalmente ofrecen anticipos, que los clientes pagan de forma regular.
Otro modelo de negocio para software propietario — en realidad un conjunto de modelos superpuestos — se llama freemium, un término popularizado en 2009 por el autor y editor Chris Anderson, y basado en un modelo de negocio mucho más antiguo conocido como razor and blades. En el modelo de afeitadora y hojas, los clientes pagan muy poco por el producto base (por ejemplo, una afeitadora o una impresora) y luego pagan una prima por los componentes necesarios diseñados para desgastarse (hojas para la afeitadora, cartuchos de tinta para la impresora). .
En el modelo freemium, los clientes pueden utilizar un producto en un determinado nivel sin coste alguno y se les anima a pagar por más funciones si el producto les resulta útil. Probablemente conozca sitios de noticias en línea que ofrecen una cierta cantidad de artículos gratuitos y solicitan a los lectores que se suscriban para obtener acceso completo a sus sitios; Este es un ejemplo bien conocido de modelo freemium. Otro ejemplo es una plataforma de juegos que ofrece el juego base de forma gratuita, pero cobra dinero por un inventario específico.
Otras empresas de software propietario basan su modelo freemium en el tiempo: prueba el software gratis durante tres meses y luego paga para seguir usándolo.
Las empresas de software propietario a veces utilizan una versión del modelo freemium conocida como open core. En el núcleo abierto, ciertas funciones básicas (el “núcleo” del producto) son de código abierto y se pueden licenciar funciones patentadas adicionales.
A menudo, la parte abierta es completamente funcional, pero funciona mejor para investigadores o usuarios individuales, y se vuelve difícil de administrar cuando muchas personas la comparten en una empresa. Por lo tanto, las características propietarias pueden incluir interfaces web convenientes para la administración, herramientas de contabilidad y colaboración, y otras cosas de particular interés para sitios grandes.
Aunque los modelos de negocio centrales abiertos utilizan algún software de código abierto, los clientes son lo suficientemente inteligentes como para reconocer que todo el producto es en realidad propietario. Entonces, si bien el núcleo abierto puede tener la ventaja de basarse en un proyecto de código abierto existente, no proporciona ninguna otra ventaja del software de código abierto. Un modelo de negocio central abierto no genera confianza en los clientes, no los inspira a contribuir al software base, no les brinda acceso para examinar el código, no construye una red de desarrolladores capacitados fuera de la empresa principal ni funciona como un estándar de la industria. Peor aún, el modelo de desarrollo de núcleo abierto tiene los mismos costos de desarrollo, sin los beneficios que lo hacen valer la pena. Las empresas que prueban un modelo de negocio central abierto generalmente quedan decepcionadas con los resultados y muchas luego cambian a un modelo propietario puro.
Las empresas también pueden crear un servicio web sobre una base de código abierto o propietario, en el modelo de software como servicio (SaaS). Los clientes pagan mensualmente o anualmente.
Muchas empresas que ejecutan servicios web SaaS u ofrecen aplicaciones móviles ganan dinero mediante publicidad. Algunas empresas también recopilan datos sobre los usuarios a través del servicio o la aplicación y los venden a terceros que pueden utilizarlos con fines publicitarios. Sin embargo, los anuncios pueden parecer molestos. La venta de datos es controvertida y algunos países imponen restricciones a la recopilación de datos.
Finalmente, las empresas podrían desarrollar y lanzar software de código abierto sin tratar de obtener ningún ingreso de ello. Este modelo está disponible para empresas que obtienen ingresos de otros servicios además del software. Por ejemplo, las empresas automotrices colaboran para crear grandes cantidades de software libre para ejecutar en sus automóviles (que hoy en día están completamente informatizados).
Las principales empresas de software que obtienen sus ingresos de ofertas patentadas, como Google y Amazon, a veces lanzan software administrativo u otras herramientas útiles como código abierto, porque estas herramientas de código abierto no son fundamentales para su negocio principal. Las organizaciones que publican el código bajo una licencia abierta se benefician de los comentarios, informes de errores y mejoras de funciones proporcionadas por la comunidad de código abierto.
Uso de software de código abierto en otras tecnologías y servicios
Muchas empresas incorporan software de código abierto en sus productos o plataformas web. Después de todo, ¡el software de código abierto es gratuito! Pero esa no es la razón más importante (y quizás ni siquiera una buena razón) para adoptarlo. Más importante aún, gran parte de este software es de alta calidad (aunque el equipo de desarrollo debería examinarlo cuidadosamente antes de adoptarlo) e incluso puede ser un estándar de la industria.
Otra ventaja del software de código abierto es que seguirá estando disponible si los desarrolladores o la comunidad que lo rodea desaparecen.
Pero el software gratuito y de código abierto conlleva responsabilidades. Esta sección enumerará rápidamente las principales cuestiones a considerar antes de adoptarlo.
La primera cuestión se aplica a cualquier software o herramienta de terceros que se esté considerando para su adopción: ¿satisfará las necesidades de los usuarios ahora y a medida que la empresa evolucione? ¿El software cuenta con el respaldo de una comunidad sólida que pueda ofrecer soporte técnico y continuar desarrollando el software? ¿El software sufre importantes vulnerabilidades de seguridad?
A continuación, los directivos deben considerar las responsabilidades de la empresa si incorpora un proyecto de código abierto en su propio software. Si los desarrolladores crean código nuevo en torno al código fuente abierto, deben verificar qué deben hacer según la licencia del software de código abierto. Algunas licencias requieren que los desarrolladores distribuyan el código fuente de sus propios cambios a sus usuarios finales bajo la misma licencia gratuita que el código base original.
Incluso si un desarrollador no está obligado a distribuir su código fuente modificado y está creando un producto propietario sobre el código fuente abierto, es posible que el desarrollador quiera contribuir con ciertas cosas, como correcciones de errores y mejoras al código fuente abierto. Al contribuir con estas correcciones y mejoras, el desarrollador colaborador permite que el proyecto las incorpore (si los desarrolladores principales así lo deciden) y las mantenga. Es posible que los desarrolladores que no aporten mejoras tengan que volver a aplicar las correcciones y mejoras cada vez que actualicen a una nueva versión del código original.
Debido a esta dependencia, y por otras razones, el personal de la empresa debería considerar convertirse en miembros activos de la comunidad que desarrolla el código. Los desarrolladores pueden aprender mucho sobre el código al participar y pueden ayudar a establecer la dirección para el desarrollo futuro. Por supuesto, la organización debería pagar por el tiempo que los desarrolladores dedican a actividades comunitarias. Para una empresa que se toma en serio el uso de software libre, no es gratuito.
Consideraciones del software de código abierto desde la perspectiva del cliente
Abrir código es muy beneficioso para los clientes por varios motivos, pero implica una relación diferente entre la empresa y sus clientes. Los clientes deben comprender los beneficios y las implicaciones de la relación.
El principal beneficio para el cliente, mencionado anteriormente en esta lección, es que puede confiar más en el software. Saben que no desaparecerá. Muchas empresas propietarias cierran o despegan repentinamente en una nueva dirección, abandonando a los clientes con quizás poco tiempo para migrar a un producto que tal vez no les guste. El software de código abierto, por el contrario, no depende de una sola organización. Si el proyecto es importante, otras personas de la comunidad continuarán con él cuando los desarrolladores originales se muden.
Los clientes también pueden comprobar la calidad y seguridad del software de código abierto. Pueden determinar con qué facilidad pueden agregar funciones propias o trasladarlas a un nuevo entorno.
Debido a que el código fuente de un proyecto de código abierto está disponible para que todos lo examinen, una amplia gama de desarrolladores pueden familiarizarse con él. En un proyecto que tiene una comunidad activa, muchas personas brindan apoyo en el foro. A menudo, es fácil contratar personas para dar soporte al software o para administrarlo y utilizarlo dentro de la empresa, porque los nuevos empleados ya conocen el código.
Es muy tranquilizador para los clientes, que dependen del código para su funcionamiento diario, saber que pueden corregir un error ellos mismos o contratar a alguien para que lo haga. Un error oscuro que afecta sólo a unos pocos clientes puede tardar años en ser solucionado por el equipo central de desarrollo, una frustración constante para los usuarios de software propietario. Además, cuando el código fuente está disponible, es posible identificar más rápidamente un error y su solución sugerida.
¿Qué pasa con la relación entre la empresa y el cliente? La empresa puede optar por establecer una relación exactamente similar a la que ofrece una típica empresa de software propietario, proporcionando al cliente actualizaciones periódicas y un contrato de soporte. El cliente nunca necesita mirar el código fuente ni unirse a los foros de la comunidad.
Pero la mayoría de los clientes se beneficiarían de las oportunidades únicas que ofrecen los proyectos de código abierto. Pueden permitir que sus propios desarrolladores contribuyan tanto con información como con código. Dicha participación profundiza la comprensión de su personal, les ayuda a reclutar nuevo personal y les da voz en el desarrollo futuro.
Estructuras de Costos e Inversiones
Los programadores tienen una gran demanda, por lo que cualquier esfuerzo de software será costoso. Las personas que conocen los principales proyectos de código abierto tienen aún más demanda, porque esas bases de código se utilizan ampliamente.
Un proyecto de código abierto ofrece posibles ahorros de costos porque diferentes organizaciones e individuos pueden combinar sus esfuerzos en una base de código común. Pero ejecutar un proyecto de este tipo introduce nuevos costos.
Si una empresa abre un proyecto desarrollado internamente, debe invertir para que sirva a una comunidad más grande (posiblemente mundial). Es posible que sea necesario repensar algunas funciones que satisfacían las estrechas necesidades comerciales de la empresa para que sirvieran también a otras empresas.
Si el código es deficiente o incómodo, la empresa probablemente no debería abrirlo. Tanto los contribuyentes potenciales como los clientes potenciales se sentirán repelidos por la calidad. Corresponde a los desarrolladores solucionar estos problemas de todos modos, porque el software mal codificado es frágil: es difícil actualizarlo con nuevas funciones y tiende a desarrollar errores complejos que son difíciles de solucionar. Estos problemas se denominan deuda técnica y cuanto antes se solucionen, mejor será para todos los usuarios.
Finalmente, es sorprendente la frecuencia con la que una empresa ha incorporado secretos comerciales, contraseñas, referencias personales a individuos u otra información confidencial en el código. Los desarrolladores tienen que invertir tiempo en eliminar esas vulnerabilidades. De todos modos, las contraseñas, las claves API, los certificados y las credenciales de acceso a la nube nunca deberían estar en el código; deben gestionarse externamente a través de un servicio seguro.
Digamos que una empresa ha abierto su código y espera beneficiarse de contribuciones externas. Algunos clientes pagarán a los desarrolladores por el mantenimiento y las nuevas funciones. Otros pondrán a sus propios desarrolladores en el proyecto, pero el equipo central de desarrollo tiene que dedicar tiempo para apoyarlos. El equipo central de desarrollo necesita educar a los externos sobre el código y los estándares de codificación asociados. Este equipo también debe guiar a los contribuyentes externos sobre qué agregar y dónde enviar comentarios sobre su código.
Esté atento a los forasteros que muestran talento. Estas personas podrían ser reclutas valiosos para el equipo central. Es posible que les guste unirse al equipo y cuentan con un conocimiento considerable.
Cuando a un equipo de desarrolladores se le paga, mientras otras personas ofrecen su tiempo como voluntarias, los voluntarios pueden sentirse explotados o preguntar por qué deberían ayudar. Cada contribuyente, ya sea un voluntario individual o una organización, debe someterse a los tipos de pensamiento descritos anteriormente en esta lección para decidir por qué está contribuyendo.
El código libre no es gratuito, aunque no implique costes de licencia. Es simplemente un modelo diferente de desarrollo.
Ejercicios guiados
-
¿Cómo mejora el código fuente abierto la confianza del cliente en el software?
-
¿Por qué las empresas se sienten tentadas a probar un modelo de negocio central abierto y por qué el modelo no logra ofrecer los beneficios del software de código abierto?
-
¿Qué es la distribución autohospedada?
-
¿Cuáles son los tipos típicos de ayuda que los desarrolladores brindan a los contribuyentes externos a sus proyectos de código abierto?
Ejercicios exploratorios
-
Está considerando basar un producto propietario en un proyecto de código abierto. ¿Qué factores considerarías para tomar la decisión?
-
Ha creado varios productos, por los que cobra una suscripción, además de un proyecto de código abierto. ¿Qué hará si la licencia de código abierto requiere que contribuya con todo su código al proyecto? Además, agregó soporte para algunos protocolos de comunicación nuevos al proyecto de código abierto para satisfacer sus necesidades de propiedad. Si tiene la opción, ¿le pedirá al proyecto de código abierto que integre este soporte de protocolo en su código central?
Resumen
En esta lección, aprendió el valor de abrir el código fuente. Usted revisó los modelos comerciales comunes que se utilizan hoy en día y la importancia de comprender el impacto de la licencia del código. Lea sobre cuestiones a considerar al incorporar código fuente abierto en su empresa y cómo el código abierto beneficia a sus clientes. También aprendió en qué se diferencian los costos del desarrollo de código abierto de los del software propietario.
Respuestas a ejercicios guiados
-
¿Cómo mejora el código fuente abierto la confianza del cliente en el software?
Los clientes pueden comprobar la calidad y seguridad del código. También pueden confiar en que podrán seguir utilizando el código si los desarrolladores originales dejan de admitirlo.
-
¿Por qué las empresas se sienten tentadas a probar un modelo de negocio central abierto y por qué el modelo no logra ofrecer los beneficios del software de código abierto?
A primera vista, parece que el núcleo abierto debería ofrecer todos los beneficios del software de código abierto, al tiempo que permite a una empresa seguir utilizando un modelo de negocio propietario que vende una licencia para utilizar el software. En la práctica, un modelo de negocio central abierto no logra ofrecer las ventajas del código abierto y, al mismo tiempo, sigue teniendo todos los mayores costos del desarrollo abierto.
-
¿Qué es la distribución autohospedada?
Distribución autohospedada significa una versión de software que se puede ejecutar en el propio equipo del cliente.
-
¿Cuáles son los tipos típicos de ayuda que los desarrolladores brindan a los contribuyentes externos a sus proyectos de código abierto?
Los desarrolladores de un proyecto normalmente educan y asesoran a los contribuyentes externos y verifican que sus contribuciones cumplan con los estándares de codificación y calidad del equipo.
Respuestas a ejercicios exploratorios
-
Está considerando basar un producto propietario en un proyecto de código abierto. ¿Qué factores considerarías para tomar la decisión?
Primero, decida si el software de código abierto satisface sus necesidades. Verifique su calidad, las fallas de seguridad que se hayan reportado públicamente y la salud de la comunidad que lo rodea. Verifique la licencia cuidadosamente para ver si requiere que comparta sus modificaciones al código. Determina cuánto deseas participar en la comunidad del proyecto de código abierto y cómo definirás los roles que tus desarrolladores desempeñarán en esa comunidad.
-
Ha creado varios productos, por los que cobra una suscripción, además de un proyecto de código abierto. ¿Qué hará si la licencia de código abierto requiere que contribuya con todo su código al proyecto? Además, agregó soporte para algunos protocolos de comunicación nuevos al proyecto de código abierto para satisfacer sus necesidades de propiedad. Si tiene la opción, ¿le pedirá al proyecto de código abierto que integre este soporte de protocolo en su código central?
Si el proyecto no requiere que compartas cambios de código, probablemente no lo harás porque puedes cobrar una suscripción más fácilmente por un producto propietario. Si tiene que compartir su código, ofrezca una suscripción a una distribución autohospedada. Incluso si no necesita compartir su código, probablemente quiera pedirle al proyecto que integre su soporte para protocolos de comunicación para que no tenga que volver a implementar ese soporte cada vez que instale una nueva versión del código abierto. código.