Los líderes de IT de las compañías más prestigiosas del mundo y los profesionales en desarrollo de software coinciden en que el open source es una de las mejores herramientas para impulsar la innovación, por lo que es necesario conocer en profundidad esta forma de creación.
Definición y rol del open source en la industria
Cuando hablamos de open source, nos estamos refiriendo a un modelo de desarrollo de software donde el código fuente está disponible públicamente y es accesible para todos.
El código fuente es el conjunto de instrucciones escritas en un lenguaje de programación específico que hacen a un programa de software determinado.
En otras palabras, se trata del texto legible por humanos que los programadores crean y editan para construir y mantener un software. Es la forma en la que los programadores expresan las funcionalidades y la lógica de un programa antes de que sea traducido a lenguaje de máquina (binario) que la computadora puede entender y ejecutar.
Cuanso un programa es de open source o de código abierto, el código fuente está disponible públicamente para que cualquiera lo examine y redistribuya según los términos de la licencia bajo la cual se distribuye el software.
Para la industria, este tipo de código ha sido una gran innovación: ha logrado mayor transparencia y colaboración en el desarrollo de software y ha permitido reducir costos y acelerar la innovación.
El opuesto al open source es el software propietario. En esta clase, el código fuente generalmente no está disponible públicamente y está protegido por derechos de autor y acuerdos de licencia.
Historia y evolución del concepto open source
El software libre y de código abierto nace a principios de la década de 1980. En aquel tiempo, la gran mayoría de los software eran de código privado. Sin embargo, algunos programadores sintieron la necesidad de crear proyectos colaborando con sus colegas que promovieran la creación de software libre.
Es importante mencionar que, años atrás, cuando surgieron las primeras computadoras y programas informáticos, el desarrollo del software seguía un modelo cooperativo similar al de otras disciplinas científicas como la física. Pero claro, todo cambió cuando aparecieron las primeras empresas que lanzaron códigos fuente privados, en las décadas de 1960 y 1970.
De hecho, en estos años, era común que las compañías que vendían licencias de software las comercializaran como ‘productos informáticos’.
Ya a comienzos de la década de 1980, aparecen los primeros profesionales de IT dispuestos a dar la pelea y combatir las restricciones del software privado. Fue entonces que Richard Stallman, un programador del Instituto Tecnológico de Massachusetts (MIT), comenzó a desarrollar el proyecto GNU (GNU’s Not Unix) con el objetivo de crear un sistema operativo completamente libre y de código abierto.
Para el año 1985, ya había fundado la Free Software Foundation (FSF) para promover y defender el software libre.
Otro hito importantísimo en la historia del código libre ocurrió en el año 1991. Por ese entonces, un hombre llamado Linus Torvalds creó el kernel Linux como un proyecto personal, y lo publicó bajo la licencia GNU GPL.
La combinación del kernel Linux con las herramientas del proyecto GNU formaron lo que hoy conocemos como el sistema operativo GNU/Linux, uno de los ejemplos más exitosos de open source.
Disputas y la victoria en la Cumbre de Software Libre de 1998
La historia del software libre ha estado plagada de disputas y controversias y los principales debates eran sobre las licencias. Mientras que un grupo defendía estándares abiertos, otro abogaba por estándares propietarios. Claro está, en este último fue protagónico el papel de las corporaciones que defendían su rentabilidad.
Otro momento que marcó una era en la historia del open source fue la Cumbre de Software Libre, organizada por la Free Software Foundation en Boston en febrero de 1998. En esta cumbre, los líderes del movimiento del software libre se reunieron para discutir cuáles iban a ser las estrategias a seguir. También reafirmaron su compromiso con los principios del software libre. Como suele suceder con este tipo de eventos, se ayudó mucho a consolidar el movimiento y a aumentar su visibilidad y legitimidad.
Beneficios en el uso de open source
Son muchos los beneficios que aporta el uso del open source. De hecho, un estudio publicado por Red Hat, conocido como El estado del open source empresarial, predijo que en los siguientes dos años el uso de los sistemas de software de código cerrado en las empresas se reducirá del 45% al 37%.
Otro dato interesante es que es esperable que el uso del open source con bases en los principios de comunidad y cooperación aumente del 21% al 24%. Y todo gracias a sus múltiples beneficios:
Mayor transparencia y confianza.
El código abierto permite que cualquier persona revise, estudie y valide el código, lo que incrementa la transparencia. Esta visibilidad ayuda a identificar y corregir errores o vulnerabilidades de forma más rápida que en el software cerrado. La transparencia fomenta la confianza entre los usuarios y desarrolladores, ya que los primeros pueden ver exactamente qué hace el software y cómo lo hace.
Incremento de la colaboración global entre desarrolladores.
El Open Source elimina las barreras geográficas y organizacionales, al permitir que desarrolladores de todo el mundo colaboren en proyectos. Esta colaboración global conlleva a una diversidad de ideas y enfoques, mejorando la calidad y la funcionalidad del software. Los proyectos se benefician de las contribuciones de una comunidad amplia y diversa, que aporta distintas perspectivas y habilidades.
Posibilidad de obtener más flexibilidad y soluciones personalizadas.
El acceso al código fuente permite a las organizaciones y desarrolladores adaptar el software a sus necesidades específicas. Pueden modificarlo y mejorarlo para que se alinee con sus requisitos particulares, algo que no es posible con el software propietario. Esta flexibilidad es crucial para empresas que necesitan soluciones personalizadas que no están disponibles en el mercado.
Menor costo
Utilizar software Open Source puede significar una reducción considerable en los costos, ya que generalmente está disponible de forma gratuita o a un valor mucho menor que el software propietario. Esto permite a las empresas, especialmente a las startups y a las pymes, acceder a herramientas tecnológicas avanzadas sin incurrir en grandes inversiones de software.
Aceleración de la innovación
El Open Source fomenta la innovación al permitir que los desarrolladores construyan sobre el trabajo de otros, evitando así reinventar la rueda. Los proyectos pueden avanzar más rápido, al integrar y adaptar soluciones existentes. Además, la retroalimentación y las contribuciones continuas de la comunidad ayudan a evolucionar rápidamente los proyectos, incorporando nuevas funcionalidades y adaptándose a las diferentes necesidades tecnológicas.
Desafíos actuales del open source
Los proyectos de código abierto, aunque ofrecen numerosas ventajas, también enfrentan varios desafíos relacionados con la colaboración, la calidad y la sostenibilidad. Vamos a desglosar estos desafíos en detalle:
Grado de Colaboración
Coordinación y comunicación
Con colaboradores dispersos globalmente, coordinar y comunicar eficazmente puede ser un reto. Los proyectos deben gestionar diferencias horarias, barreras lingüísticas y culturales, lo cual puede afectar la colaboración.
Consistencia e integración
Asegurar que las contribuciones de diferentes colaboradores sean consistentes y se integren sin problemas en el proyecto puede ser difícil, especialmente cuando los contribuyentes tienen diferentes niveles de habilidad y experiencia.
Gestión de contribuciones
Filtrar, revisar y aceptar contribuciones de una amplia comunidad puede ser un proceso abrumador, sobre todo para los mantenedores de proyectos, que deben garantizar que las contribuciones sean de calidad y relevantes para el proyecto.
Calidad
Control de calidad
Mantener altos estándares en un proyecto donde cualquiera puede contribuir es un desafío constante. Sin los procesos de revisión y testing adecuados, la calidad del software puede variar significativamente.
Documentación
La calidad y la actualización de la documentación pueden ser insuficientes, lo que dificulta que nuevos usuarios y desarrolladores entiendan y contribuyan al proyecto.
Seguridad
Los proyectos de código abierto deben estar atentos respecto a la seguridad, ya que el código es accesible públicamente. Identificar y solucionar vulnerabilidades de forma rápida es esencial pero desafiante.
Sostenibilidad de un proyecto
Financiamiento
Muchos proyectos de código abierto dependen de la financiación voluntaria, donaciones o patrocinios, lo que puede resultar en una fuente de ingresos inestable. Sin financiamiento adecuado, mantener y mejorar el proyecto puede ser difícil.
Dependencia del proyecto
Si un proyecto se vuelve fundamental para muchas empresas o sistemas, pero no cuenta con el soporte financiero o comunitario necesario, puede haber un riesgo de abandono o degradación, lo que afectaría a todos los que dependen de él.
Agotamiento
Los mantenedores del proyecto, que a veces trabajan de forma voluntaria o con limitado apoyo financiero, pueden sufrir agotamiento, lo que puede afectar la continuidad y el éxito del proyecto.
Diferencias entre código abierto y código fuente
El término código abierto es esencialmente distinto al de código fuente. La diferencia principal entre estos dos es que el código abierto es, directamente, la filosofía de hacer el código fuente accesible y editable para cualquiera.
Por su parte, el código fuente solo es el conjunto de instrucciones en sí mismo. Es el conjunto de instrucciones escritas en un lenguaje de programación que conforman un programa de computadora. Digamos que todo código abierto es código fuente, pero no todo código fuente es código abierto.
Economía del código abierto y su impacto en el desarrollo, consumo y valor de mercado
Hemos ya hablado bastante de la importancia del desarrollo en colaboración que implica el open source. Este modelo, que es una de las características que componen los software de código abierto, facilita que exista una innovación más rápida. A su vez, como dos cabezas piensan mejor que una, también es generadora de una mayor diversidad de ideas.
Es así como tiene lugar la creación de software de alta calidad cuyos costos se dividen y se comparten entre la comunidad de desarrolladores. Eso es lo que se conoce como economía del código abierto. De esa manera, las empresas reducen gastos y alcanzan una mayor productividad.
En cuanto al valor de mercado, si bien el software de código abierto es gratis y no genera ingresos por su uso o distribución, existen modelos de negocio rentables alrededor de esta innovación.
Algunos ejemplos son los servicios de soporte y consultoría, las capacitaciones, el nivel de personalización que una organización pueda llegar a pedir y, por ende, los desarrollos a medida.
También, forma parte del modelo de negocio la venta de productos y servicios complementarios al software. Empresas como Red Hat, que ofrecen servicios de soporte para Linux, han generado una gran cantidad de ingresos en el mercado del código abierto.
Importancia de open source en el desarrollo de software
El open source no es solamente beneficioso y útil para los programadores. Lógicamente, estos son quienes más aprovechan sus ventajas, pero también es una buena herramienta para otras personas que quieren innovar.
A su vez, el open source le da la oportunidad a quienes estén aprendiendo a programar de editar libremente los códigos para practicar, compartirlo con otras personas de la comunidad de los programadores y hasta de realizar correcciones que le aporten valor al proyecto.
Además, tal como mencionamos cuando hablamos de las ventajas de esta forma de desarrollo, el software open source les otorga a las organizaciones una muy valiosa posibilidad. Estas pueden personalizarlo con el objetivo de satisfacer sus necesidades específicas.
Por último, la seguridad es otro de los aspectos que hace del código abierto una mejor opción por sobre los software de código cerrado. Los desarrolladores también colaboran en este sentido, buscando puntos vulnerables y fortaleciendo los muros contra posibles ataques.
Proyectos destacados en el mundo open source
Tal fue la importancia y la relevancia del open source que a través de él surgieron algunos de los sistemas más utilizados del mundo. Algunos ejemplos de estos desarrollos y aplicaciones son:
Linux
Sin duda, Linux es uno de los proyectos de código abierto más influyentes. Se trata de un sistema operativo utilizado en servidores, dispositivos móviles, sistemas embebidos y computadoras de escritorio. Empresas de todo tamaño dependen de él para sus operaciones críticas debido a su estabilidad, seguridad y flexibilidad. Varias distribuciones de Linux, como Ubuntu, CentOS y Red Hat Enterprise Linux, son fundamentales en el mundo corporativo.
Apache Hadoop
Hadoop es un framework de software que permite el procesamiento distribuido de grandes conjuntos de datos a través de clusters de computadoras utilizando modelos de programación simples. Es esencial en el ámbito de Big Data y análisis de datos, al proporcionar una infraestructura escalable y flexible para empresas que gestionan grandes volúmenes de datos.
Docker
Revolucionó el mundo del desarrollo de software al facilitar la creación, despliegue y ejecución de aplicaciones en contenedores. Esto permite a los desarrolladores empaquetar una aplicación con todas sus dependencias en un contenedor aislado, lo que mejora la portabilidad y la eficiencia en el despliegue de aplicaciones en diferentes entornos.
Git
Es un sistema de control de versiones distribuido, fundamental para la gestión del desarrollo de software. Permite a los equipos colaborar en proyectos de cualquier escala manteniendo un historial completo y detallado de todas las modificaciones. Plataformas como GitHub y GitLab, basadas en Git, son cruciales para la colaboración y el alojamiento de código en el mundo del desarrollo de software.
PostgreSQL
Es un sistema de gestión de bases de datos relacional avanzado, que destaca por su robustez, escalabilidad y cumplimiento de estándares. Es ampliamente utilizado para gestionar datos complejos y de gran volumen. Ofrece características avanzadas como la integridad de datos y el soporte para diferentes tipos de datos.
Sistema Android y Mozilla Firefox
Asimismo, el sistema operativo Android y el servidor web Mozilla Firefox también fueron creados mediante comunidades de código abierto. Por su parte, Git, uno de los sistemas de control de versiones, forma parte de este grupo.
OPenOffice y LibreOffice
Otras innovaciones como OpenOffice y LibreOffice son proyectos exitosos que han surgido gracias a esta manera de crear aplicaciones.
Apache OpenOffice es una suite de oficina de código abierto que incluye herramientas de procesamiento de texto, hojas de cálculo, presentaciones, gráficos, bases de datos y más. Es una alternativa popular a las suites de oficina comerciales y es utilizado por millones de personas en todo el mundo. Pproporciona una solución integral para las necesidades de oficina, siendo compatible con una amplia variedad de formatos de archivo.
Por su parte, LibreOffice es un fork de OpenOffice, lo que significa que se inició a partir del código base de OpenOffice pero siguió una dirección de desarrollo independiente. Incluye varias aplicaciones que lo hacen la suite de oficina libre más poderosa en el mercado. Es conocido por su compatibilidad con diversos formatos de archivo, incluidos los de Microsoft Office, y por ofrecer características robustas y una interfaz de usuario intuitiva.
Esta enumeración se hace con el fin de solo mencionar algunos de los éxitos, pero lo cierto es que una gran parte de las innovaciones en las áreas del cloud computing, el big data y la inteligencia artificial nacen de proyectos de software open source.
Tendencias que se avecinan en el mundo del open source
Aumento en la contribución
Cada vez más empresas reconocerán el valor de contribuir al Open Source, no solo por la innovación y la calidad del software, sino también por la mejora en la seguridad y la sostenibilidad de los proyectos. Se espera que las contribuciones de distintas compañías a proyectos de código abierto sigan aumentando.
Seguridad del código abierto
La seguridad en el Open Source se volvió una prioridad, especialmente después de varios incidentes que tomaron dimensión. Las organizaciones están adoptando prácticas como el escaneo de código y la integración de la seguridad en el ciclo de vida del desarrollo del software (DevSecOps) para mejorar la seguridad de sus proyectos de código abierto.
Open Source en la nube
La computación en la nube y el Open Source se están convirtiendo en sinónimos, con plataformas como Kubernetes liderando el camino. Se espera que surjan más proyectos Open Source enfocados en optimizar la nube, la portabilidad de las aplicaciones y la interoperabilidad entre diferentes plataformas y proveedores.
IA y aprendizaje automático
La inteligencia artificial y el aprendizaje automático siguen siendo áreas de rápido crecimiento, con herramientas y bibliotecas Open Source liderando la innovación. La colaboración y la transparencia en estos campos son cruciales para el desarrollo ético y el avance de tecnologías responsables.
Financiamiento y sostenibilidad de proyectos Open Source
El modelo de financiamiento para proyectos Open Source está evolucionando, con más organizaciones y particulares apoyando económicamente a los proyectos. La sostenibilidad a largo plazo es un enfoque clave, buscando garantizar que los proyectos no solo sobrevivan sino que prosperen.
Edge Computing y Open Source
Con el crecimiento del edge computing, el Open Source jugará un papel crucial en el desarrollo de soluciones descentralizadas, al permitir el procesamiento de datos más cerca de donde se generan y mejorando la eficiencia y la velocidad.
Adopción en sectores tradicionales
Sectores como la banca, la salud y el gobierno están adoptando cada vez más soluciones Open Source para su transformación digital. Valoran la flexibilidad, la seguridad y la capacidad de personalización que ofrecen estas soluciones
Colaboración y comunidad: pilares del movimiento open source
En un determinado desarrollo de software, se forman lo que se conoce como comunidades open source en las cuales cualquiera que tenga suficientes conocimientos y ganas de aportar puede sumarse. Esto le hace muy bien a los desarrollos debido a que la cantidad de ideas se multiplica y pueden conseguirse muy buenos resultados con costos no tan elevados.
Es por eso que estos dos conceptos son los que realmente diferencian los resultados de los proyectos open source de los de código cerrado. El hecho de que varios profesionales de diferentes partes del mundo aporten al mismo producto hace que la calidad se incremente, y, como vimos en el apartado anterior, de lugar a innovaciones históricas.
Licencias open source y su impacto en el desarrollo
Las licencias open source de derechos de autor tienen la particularidad de facilitar a los usuarios la posibilidad de utilizar, modificar y distribuir el software de manera gratuita y abierta, siempre y cuando, claro, se cumplan ciertas condiciones establecidas en la licencia.
Estas licencias están hechas para promover la colaboración y la libertad en el desarrollo en el uso del software. Por supuesto que, si bien el uso y edición de los códigos es libre, existen algunas limitaciones propias de cada licencia.
Un ejemplo claro de estas limitaciones puede ser la de los requisitos de atribución. Esto es para algunas licencias de código abierto que tienen como condición de uso que los usuarios den crédito al autor original del software y mantengan intactas las notificaciones de derechos de autor y las declaraciones de licencia.
Algunas de las más populares y ampliamente reconocidas por la comunidad de desarrolladores son:
- Licencia del MIT (MIT)
- Licencia de Apache 2.0 (Apache-2.0)
- Licencia pública general de GNU (GPL)
- Licencia de distribución de software de Berkeley (BSD)
Seguridad y confianza en soluciones open source
La seguridad cibernética es uno de los problemas que más preocupa desde el avance de la digitalización. Un ataque perpetrado con efectividad puede causar daños muy severos en la organización que lo sufra, por lo cual la implementación de soluciones y equipos de ciberseguridad se está convirtiendo en un costo necesario.
Una de las amenazas más comunes para los software de código abierto es el typosquatting o secuestro de URL. Se trata de una práctica delictiva que se desarrolla cuando los hackers registran un sitio web con un dominio muy parecido al de la página original. El objetivo es engañar a los usuarios para que confundan el original con el que no lo es, creado por ellos, y de esa manera introduzcan datos e información personal que puedan robar.
A simple vista, puede parecer muy difícil confundirse el sitio original, pero lo cierto es que quienes realizan estas prácticas son profesionales y las páginas son verdaderamente parecidas.
Existe dentro de la comunidad de desarrolladores un concepto que tiene por objetivo enfrentarse a estas amenazas: la confianza cero.
La confianza cero es un principio de seguridad y diseño de sistemas que establece que no se debe confiar en ningún sistema, usuario o entidad dentro de una red. En realidad, se parte de la base de que todas las personas, dispositivos y servicios pueden ser potencialmente maliciosos o comprometidos, y se implementan medidas de seguridad adicionales para proteger los datos y los recursos.
El fundamento de este concepto está basado en la premisa de que las amenazas a la seguridad son inevitables y que la confianza absoluta en cualquier elemento de un sistema puede ser explotada por los atacantes.
Finalmente, si bien ya hemos hablado del tema en los apartados anteriores, vale la pena volver a mencionar el impacto de la colaboración en la seguridad. El hecho de que sean varias personas de diferentes entornos las que trabajan sobre un mismo proyecto refuerza la seguridad. Cada uno puede identificar vulnerabilidades en los códigos y proponer mejoras para fortalecerlos.
Open source en la empresa: Estrategias y mejores prácticas
El uso de software open source es para las empresas una gran herramienta que permite ahorrar costos y tener programas y aplicaciones más eficientes. Para que puedas maximizar las ventajas de estos códigos y saber cuál es el mejor para elegir, hemos hecho una lista con las mejores prácticas y estrategias a seguir:
- Evaluá las necesidades y objetivos antes de elegir la solución.
- Investigá las opciones disponibles.
- Revisá las licencias para ver si son compatibles con tu organización.
- Participá en la comunidad del código abierto que estés utilizando.
- Implementá políticas de seguridad para evitar ataques.
- Planificá la integración de software a tu empresa y capacitá a tus empleados para su uso.
Modelos alternativos
A la hora de llevar a cabo un desarrollo de software, existen diferentes formas de organizarse. Claro está que una es la que motiva a este artículo: la modalidad de código abierto. Pero hay otras:
Software propietario
En este modelo, el propietario del software tiene derechos exclusivos sobre el código fuente y controla su distribución y uso. Los usuarios suelen pagar una tarifa de licencia por el uso del software y pueden tener acceso limitado a su funcionamiento interno.
Freemium
Este modelo ofrece una versión gratuita del software con características básicas, pero cobra por funcionalidades avanzadas o servicios adicionales. Es una forma de atraer a usuarios a la plataforma con la opción de actualizar a una versión premium.
Software como servicio (SaaS)
En este modelo, el software se entrega a los usuarios a través de Internet como un servicio alojado en la nube. Los usuarios pagan una suscripción periódica por el acceso al software, y el proveedor es responsable de mantener y actualizar la infraestructura.
Modelo de donaciones
Algunos proyectos de software eligen financiarse a través de donaciones voluntarias de usuarios y empresas. De esta manera, el software sigue siendo gratuito y accesible para todos, mientras se cubren los costos de desarrollo y mantenimiento.
Aplicaciones por sectores
Los software open source son utilizados en una amplia gama de sectores productivos:
Sector de IT
En el campo de la tecnología, algunos servidores web como Apache HTTP Server y Nginx son usados para alojar y servir sitios y contenido web de una forma que garantice la seguridad y la eficacia. Por su parte, tanto Linux como FreeBSD son sistemas operativos para servidores en los cuales las organizaciones confían para realizar sus operaciones.
Asimismo, existen herramientas como Kubernetes, Docker y OpenStack que facilitan la virtualización y la gestión de calidad de infraestructuras en la nube. Esto es importante para los profesionales del área debido a que permite optimizar las operaciones en la nube, y maximizar los beneficios que aporta esta tecnología. Una buena gestión se traduce en más agilidad, mayor posibilidad de escalar y en sistemas de seguridad más fuertes.
Sector empresarial
Por otro lado, en el ámbito de las organizaciones empresariales, son muchos los software open source que significan una solución a diferentes desafíos que se dan debido a la gran competitividad del mercado.
En primer lugar, plataformas como WordPress, Drupal y Joomla son ampliamente elegidas por compañías que tomaron el camino de internet para ofrecer sus productos en sitios webs hechos a medida de sus usuarios.
Por otro lado, otros desarrollos como SuiteCRM y SugarCRM aportan soluciones de código abierto para una tarea que fue ganando importancia en el último tiempo: la gestión de relaciones con clientes. Estos programas les dan a las empresas la posibilidad de organizar y automatizar sus interacciones con los usuarios y así crear relaciones de mayor calidad y también claro, más duraderas.
Casos de éxito y ejemplos de open source
Ejemplos de software desarrollados bajo el sistema open source hay muchos. Entre los más destacados podemos mencionar a Google Drive, Mozilla Firefox, Linux, Ubuntu y LibreOffice.
Pero también hay empresas a lo largo del mundo que se benefician del uso de este tipo de soluciones. Un ejemplo es el del Banco da Amazônia, que desarrolla a través de Red Hat OpenShift, la compañía líder en soluciones de código abierto, una plataforma digital para la inclusión social.
Esta plataforma le permitió al banco optimizar en gran medida todo el proceso de aprobación de créditos, convirtiéndolo en una operación automática, ágil y accesible, sobre todo para productores rurales que se encuentran en zonas de difícil acceso.
A su vez, un caso argentino es el de Telefónica, una de las prestadoras de servicios de telecomunicación más grandes del país. El proyecto se basó en la decisión de mudar la app más utilizada en Movistar Argentina, “Mi Movistar”, desde el hosting y operación en Estados Unidos (Ovum) hacia los Data Centers locales. El objetivo final fue reemplazarla por una app desarrollada en la Argentina.