¡Ya es hora de retribuir a las personas que le permiten utilizar Internet!
A muchos desarrolladores les gustan los proyectos de código abierto y por una buena razón: los usan todos los días para acelerar su trabajo. Hay muchos ejemplos exitosos de soluciones de software de código abierto, como Linux (un sistema operativo) o React (una biblioteca de JavaScript). Estas soluciones suelen estar bien diseñadas y es un placer trabajar con ese tipo de código de alta calidad.
Entonces, echemos un vistazo más de cerca a lo que significa código abierto y cuáles son los pros y los contras de trabajar con proyectos de código abierto.
¿Qué es código abierto?
El término "código abierto" se acuñó dentro de la industria del desarrollo de software y se refiere a algo que cualquiera puede inspeccionar, modificar y compartir. Representa un enfoque específico para la creación de programas de computadora que celebra los valores de colaboración, transparencia y desarrollo orientado a la comunidad.
El código fuente abierto está escrito por desarrolladores y para desarrolladores.
Para proteger a todas las partes involucradas en el código abierto, el propietario del proyecto puede usar una licencia Creative Commons. Una licencia Creative Commons (CC) permite a todos compartir, usar y desarrollar su trabajo.
El software de código abierto suele ser un producto de software gratuito, donde los desarrolladores tienen acceso al código fuente. Pueden mejorar el rendimiento del programa, agregar algunas funciones y corregir errores. Algunos ejemplos de este tipo de software son LibreOffice, Mozilla Firefox y Chromium.
Por el contrario, existe el software propietario , también llamado "software de código cerrado". El código fuente de dicho programa solo puede ser inspeccionado o alterado por sus propietarios. Algunos ejemplos de software propietario incluyen algunos productos de Microsoft, Adobe o Apple.
Algunas empresas ven el software de código abierto como la norma, mientras que otras prefieren desarrollar software de código cerrado. Y sin duda, el modelo de código abierto tiene sus pros y sus contras.
¿Qué tiene de bueno desarrollar software de código abierto?

Beneficios personales
Si digo que los desarrolladores de código abierto están impulsados por el altruismo y el deseo de ayudar a los demás, muchas personas que lean este artículo pueden sonreír con incredulidad. Pero esta motivación intrínseca es la razón principal por la que la mayoría de la gente trabaja en proyectos de código abierto.
No subestime la importancia de los beneficios personales, esos sentimientos de ser útil y autoeficaz.
Reconocimiento comunitario
Los científicos y los médicos comparten su experiencia escribiendo artículos académicos y participando en conferencias científicas. Los diseñadores de UI / UX comparten su experiencia en Behance o Dribbble. Los escritores imprimen sus libros o los comparten a través de plataformas en línea. Músicos y cineastas comparten su trabajo con el mundo a través de diferentes servicios de transmisión. ¿Por qué los desarrolladores de software serían diferentes y querrían perder la oportunidad de obtener reconocimiento?
Al trabajar o ejecutar proyectos de código abierto, puede obtener el reconocimiento de la comunidad de desarrolladores de varias maneras, como crear un excelente perfil de GitHub y participar en eventos como Hacktoberfest.
También puede obtener descuentos, entradas gratuitas a eventos y una infraestructura bien desarrollada para ejecutar sus proyectos. Trabajar en proyectos de código abierto no solo le ahorra dinero, sino que también lo inspira a utilizar las mejores herramientas disponibles en sus propios proyectos.

Auto-publicidad
Si usted o su empresa participan activamente en la comunidad de código abierto, pueden ganarse una gran reputación. De esta forma, si eres un desarrollador individual o autónomo, te resultará más fácil encontrar trabajo como autónomo o empleado a tiempo completo. Si representa a una empresa de desarrollo de software, le resultará más fácil encontrar personas dispuestas a trabajar para usted, socios dispuestos a cooperar y clientes dispuestos a solicitar sus servicios profesionales.
Por eso, el desarrollo de software de código abierto crea una oportunidad publicitaria perfecta: una situación en la que todos ganan tanto para los desarrolladores como para las agencias de desarrollo.
Sentido del valor
No es necesario ocultar la verdad: el agotamiento laboral afecta el trabajo de los desarrolladores y las estrategias de recursos humanos de los proveedores de software. Si es propietario de una empresa, al motivar a sus empleados a participar en el desarrollo de código abierto, les demuestra que su trabajo tiene valor. No solo trabajarán en sus proyectos comerciales, sino que también proporcionarán valor a la comunidad de desarrolladores en general al trabajar en proyectos de código abierto.
Al ayudar a sus desarrolladores a lograr estos sentimientos de propósito y valor, los mantiene interesados en trabajar con usted.
Lo mismo ocurre si es un desarrollador autónomo. Involucrarse en el desarrollo de software de código abierto hará que su trabajo sea significativo y no llegará a odiarlo con el paso del tiempo.
Calidad del software
El código fuente abierto suele ser de mayor calidad. Un software creado por un equipo de desarrolladores puede ser de menor calidad que el desarrollado por miles de desarrolladores de todo el mundo con experiencia en diferentes tecnologías, industrias y proyectos. Y los errores en el software de código abierto se identifican muy rápidamente ya que el código está siendo revisado constantemente por varios desarrolladores.
Incluso el código escrito por un solo desarrollador suele ser de mayor calidad si es de código abierto. Si escribe código que solo usted o sus colegas cercanos verán, es posible que no le importe mucho el estilo del código. Pero si escribe código que todos puedan ver, hará todo lo posible para no parecer un mono de código. Las reseñas, contribuciones y refactorización de la comunidad son útiles aquí.
Seguridad de datos
Debe utilizar software de código abierto para el desarrollo de aplicaciones porque es más seguro. La comunidad encuentra e informa rápidamente fallas de seguridad que el propietario del software generalmente corrige de inmediato.
A su vez, si hay una falla de seguridad en un producto de software propietario, nadie lo sabrá hasta que alguien sea víctima de la amenaza que representa.
Además, los productos de código abierto no pueden hacer un mal uso ni abusar de los datos de los usuarios de forma intencionada como lo hacen algunas empresas de software propietario. La comunidad descubriría este abuso y la reputación del software y su propietario se arruinaría.
Personalización
El desarrollo de software de código abierto generalmente significa que está desarrollando un software fácilmente personalizable. Dado que el código fuente está abierto, un desarrollador puede agregar fácilmente cambios a la funcionalidad de la interfaz.
Por ejemplo, Apache CloudStack es un software de código abierto que facilita la computación en la nube. Otro ejemplo es la plataforma de código abierto Botpress, que permite a los desarrolladores crear fácilmente chatbots personalizados. Los desarrolladores de KeenEthics que son colaboradores de Botpress se sienten encantados cuando pueden simplificar la vida de otra persona.
El código abierto se trata de ganar y compartir experiencia. A veces, ves que a un proyecto de software de código abierto le falta algo y llenas este vacío contribuyendo con tu código. Otras veces, comprende que podría hacer algo mejor. El código abierto le ayuda a lidiar con el aburrimiento y a obtener el reconocimiento de sus compañeros.

¿Qué NO tiene de bueno desarrollar software de código abierto?

Falta de comunicación y malentendidos
Puede esperar solicitudes para mejorar su producto o para ayudar con algo, pero es posible que tenga que tratar con diferentes tipos de personas. Algunos pueden esperar que responda a sus solicitudes las 24 horas del día, los 7 días de la semana. Otros pueden abrir relaciones públicas mejorando su producto, pero tendrá que explicar las reglas sobre cómo se deben preparar las cosas y cómo se fusionan en la línea principal.
Al final, no hay garantía de que las contribuciones de la comunidad no resulten ser de menor calidad. Esta es la razón por la que existe una alta probabilidad de que termine refactorizando el código de alguien y dejando a la gente decepcionada al no fusionar sus cambios.
La amenaza al valor empresarial central
Nunca debe abrir un código fuente que tenga un valor fundamental para su negocio. Si existe un secreto comercial, una idea o una forma de implementación que hace que su negocio sea único, no debe abrirlo para que no esté disponible para sus competidores. Sin embargo, si tiene ideas y herramientas que el público pueda utilizar sin ninguna pérdida para su negocio, ábralas.
Por qué el código abierto es lo correcto
Si usted es un usuario de Internet (y definitivamente lo es), inevitablemente usa una cantidad increíble de software libre de código abierto. Los inventores de Internet diseñaron una gran parte de él como proyectos de código abierto, y cualquiera que lo use hoy cosecha los frutos de su esfuerzo. Por ejemplo, la computación en la nube se basa en gran medida en contribuciones de código abierto.
Además, una encuesta de Tidelift y The New Stack afirma que el 84 por ciento de los desarrolladores de software utilizan el código abierto en su rutina profesional. Haciendo uso de la experiencia y el conocimiento de otra persona, ¿por qué no comparte el suyo?
Si disfrutamos de los beneficios del código abierto, retribuir a la comunidad es lo correcto.
¡Participa en el desarrollo de código abierto!
¿Cómo empezar? Abra su repositorio de GitHub al público y cuéntele al mundo a través de su blog, redes sociales o foros de desarrolladores. Regístrese en Hacker News, ya que hay muchos colaboradores de código abierto pasando el rato.
El código abierto lo hace crecer más rápido como desarrollador y brinda un resultado útil para toda la comunidad. Al mismo tiempo, debes tratar de no dañar a la comunidad que te brinda todas estas excelentes cosas de código abierto. Contribuya sabiamente y ayude a otros respondiendo preguntas con las que pueda ayudar.
¿Tienes una idea para un proyecto?
Mi empresa, KeenEthics, tiene mucha experiencia con el desarrollo web de código abierto y el desarrollo de aplicaciones móviles. Si está listo para cambiar el juego y comenzar su proyecto, no dude en ponerse en contacto .
Si le ha gustado el artículo, definitivamente debería leer otro: Pruebas ágiles: cómo garantizar un software de alta calidad.
PD
También me gustaría agradecerle a Alex Pletnov, CTO @ KeenEthics, por inspirar y contribuir al artículo.
El artículo original publicado en el blog de KeenEthics se puede encontrar aquí: ¿Qué tiene de bueno el desarrollo de código abierto y qué no lo es?