El código abierto presenta muchas ventajas tanto para desarrolladores de software como para compañías de desarrollo, generando impacto y reconocimiento. De hecho, es una excelente forma de crecimiento profesional, y una adecuada forma de incursionar sobre nuevas tecnologías y soluciones que, día a día, están generando tendencias de desarrollo y nuevas oportunidades de empleo.
Así mismo, reune comunidades de personas que tienen necesidades en común, y van desde librerías y herramientas, hasta ecosistemas completos y sistemas operativos. Y para la industria, promueve el uso y posicionamiento de sus soluciones, con nuevas oportunidades de crecimiento y generación de nuevos modelos de negocio. A continuación, te expondremos qué es, en qué consiste y como puedes verte involucrado en el Open Source.
1. ¿Que es el Open Source?
En resumen, el Open Source, o código abierto, es software sin restricciones sobre la modificación, descarga o distribución de su código fuente. Esto, a su vez, es diferente del software libre, que significa que el producto software puede ser usado libremente, no que sea gratuito.
Esto, a su vez, implica muchos otros elementos como:
- Dependencia de la misma comunidad para el aseguramiento de la calidad y para hallar nuevos problemas y soluciones a sectores o personas.
- Descentralización y colaboración de la comunidad en la construcción del código fuente.
- Transparencia en el acceso y modificación del código fuente.
1. ¿Que ventajas tiene involucrarse en proyectos de Open Source?
Tanto las industrias como las personas pueden beneficiarse de estar en proyectos de Open Source. A continuación, ilustrarémos algunas ventajas y consideraciones para apoyar proyectos de codigo abierto.
1. Para empresas
- Posicionamiento: El posicionamiento de las empresas puede verse mejorado gracias a los proyectos de Open Source. ¿A qué se debe esto? Principalmente al uso y al nivel de actividad de una comunidad al rededor del mantenimiento una solución software.
- Incursión en modelos de negocio: Grandes compañías como IBM, RedHat, Canonical, Google, Nokia, entre otros, apuestan por el uso de tecnologías libres, ofreciendo soluciones al rededor de sus productos o bifurcaciones de las soluciones de Open Source con características potencializadas como algunos de los métodos de incusión en modelos de negocio.
- Ahorro en costos: Debido a la autogestión de las soluciones de Open Source, las compañías pueden ver un ahorro de sus costos, tanto para hallar problemas de software como para codificar estas soluciones.
1. Para personas
- Dominio profesional: Es sin duda alguna, una de las mejores ventajas tras involucrarse en el desarrollo de proyectos de software Open Source, y es que en las comunidades, existen personas con diversos niveles que aspiran a aportar algo, para lo cual, existen issues para todo tipo de niveles, y hasta repositorios que únicamente se encargan de recopilar proyectos a los cuales es posible aportar, tal como el repositorio Awesome for Beginners o el blog First timers only que ofrecen ayudas y oportunidades para aportar soluciones.
- Reconocimiento: Con la suficiente experiencia y compromiso, es posible lograr reconocimiento en una cominidad específica, ya sea por alcanzar experticia en una solución, lenguaje de programación o herramienta.
- Contactos: Al estar involucrado en desarrollos de proyectos Open Source, es posible lograr dar con oportunidades en compañías o lograr contactos con personas influyentes en un area o nicho de mercado, por lo que puede ser una oportunidad para lograr visibilidad, con el debido esfuerzo y experiencia claro está.
1. ¿Que desventajas tiene involucrarse en proyectos de Open Source?
Y claro, como es de esperarse, estar involucrado tiene sus propias desventajas que las mencionaremos a continuación:
1. Para empresas
- Seguridad y mantenimiento: Si no se lleva un control adecuado de la información contenida en los repositorios, las bifurcaciones pueden representar un serio problema en el ambito de seguridad, tal como accesos de claves privadas, repositorios compartidos de información sensible, verificación de otros desarrollos en la solución Open Source, entre otros.
- Alto valor agregado: Debe haber una amplia diferenciación entre la solución por Open Source y su versión privativa o los servicios al rededor de esta herramienta para poder considerar una viabilidad rentable, o por lo menos mantenible.
1. Para personas
- Alto niveles de esfuerzo: Los desarrollos de software, generalmente pueden resultar extensos y demandantes para los contribuyentes. Las soluciones, por lo general, no son faciles de realizar, sobretodo cuando es un sistema muy grande y menos cuando no hay una comunidad activa al rededor de estas soluciones.
- Poca o nula retribución económica: Si la solución que propones no tiene un alto valor agregado, tiene errores muy evidentes, o es una solucion muy facil o corta de lograr, es muy probable que no puedas obtener retribución económica.
1. ¿Como aportar?
Si no tienes mucho conocimiento del tema, te recomendamos empezar por proyectos existentes para que conozcas la forma de colaboración en equipos de Open Source.
1. Si son proyectos existentes
Por lo general, los proyectos de software que tienen una amplia comunidad al rededor, tienen un archivo en lenguaje de marcado llamado CONTRIBUTING
o CCONTRIBUTING.md
que ilustra a las personas que desean apoyar iniciativas libres como lo deben hacer.
Si no tienes mucha experiencia, empieza por documentarte sobre como llevar un control de cambios básico con Git en donde debes aprender conceptos como las ramas, los commits, los cambios reflejados en el servidor y los pull requests. Luego, encuentra tareas de documentación en las que puedes ir colaborando.
Si tienes un nivel un poco mas avanzado en la estructura y documentación del proyecto, puedes empezar por profundizar mas en git, más especificamente con el modelo estandar de administración de ramas conocido como Git flow, recomendablemente la versión completa que soporta, aparte de las bien conocidas ramas master
y develop
, las ramas feature
, release
, hotfix
y bugfix
y cuando es necesario crear una.
1. Si son proyectos nuevos
Es necesario hacer un análisis de qué es lo que quieres hacer, a qué publico quieres llegar, y qué problemas quieres solucionar, si tienes estas 3 cosas en claro, podrás llegar a generar impacto. Te dejaremos un ejemplo:
Estaba trabajando en una solución de renderizado de PDF’s del lado del servidor en Symfony 3. Sin embargo, al consultar en Packagist que es el repositorio de soluciones más famoso para soporte de bundles en Composer / Symfony / Laravel, era fácil notar que no había una solución muy sofisticada de este problema, y que, para agravar la situación, estaba funcionando con Symfony 2 y hacía uso de una versión muy desactualizada de PDF.js, además, no tenía soporte de seguridad, como evitar que se descargue el pdf, y que, al momento de terminar de renderizar el pdf en el cliente, se eliminara el documento.
Todas estas características y más, están inmersas en esta solución, así que, si quieres lograr aportar soluciones, es necesario encontrar oportunidades de mejora para lograr desarrollos utiles, específicos en un problema y muy especializados para que presentes un buen valor agregado para lograr destacar ante las demas soluciones.
1. Conclusiones
Es posible involucrarse en desarrollos Open Source ya que ofrecen fuertes ventajas profesionales y, bien aprovechado, puede representar un buen modelo de negocio. Como es de esperarse, no es una solución / sistema perfecto. Pero trae consigo beneficios mucho mas fuertes y numerosos que las desventajas que pueden representar. Así que sí, vale la pena involucrarse en proyectos de Open Source, puesto que provee grandes conocimientos con soluciones reutilizables a problemas recurrentes en desarrollo de software.
Si te gustó el contenido, y consideras aceptable el estar al tanto de las publicaciones, suscríbete a las redes sociales que administramos en el pie de página. Así también, si consideras que omitimos algo, o quieres que profundicemos en un tema específico, notifícanos en los comentarios.
1. Referencias
[1]. ¿Qué es el open source o el software open source (OSS)?