El blog de desarrollo de software de Ivan Montilla.

Esta es una de esas entradas que quizás sea polémica, pero este blog nunca fue para hacer amigos.

He utilizado mucho software tanto open-source como software libre, aunque no me termina de gustar esa denominación ya que, en mi opinión, Richard Stallman y la FSF, quienes acuñaron el término, tienen un concepto equivocado de lo que es la libertad. Sin embargo, este tema queda fuera del alcance de esta entrada y, posiblemente, del alcance de este blog.

A lo largo de mi carrera profesional, además de usar software open-source, también he sido testigo en GitHub de como cientos de proyectos open-source tienen un desarrollo activo con contribuciones de código de cientos de personas que, a simple vista parece que están trabajando gratis y regalándolos a la comunidad por amor.

Yo mismo he contribuido a varios proyectos open-source, por ejemplo, RavenDB he reportado varios bugs y contribuído con aportaciones al código, también estoy desarrollando el proyecto OpinionatedFramework que también es open-source.

Soy egoísta

A pesar de que la palabra “egoísta” tiene una connotación negativa, ser egoísta es buscar el propio interés personal. Cualquier acción realizada por una persona que busque su propio interés es una acción egoista.

Teniendo esto en cuenta, todas las contribuciones que yo mismo he hecho, son por motivos egoístas. La contribución que hice al cliente .NET de RavenDB fue por necesidad para un proyecto de VADAVO. Es cierto que podría haber hecho el cambio y utilizar el cliente modificado sin enviar la PR, pero también hay motivos egoístas para ello. El primero es que una vez el cambio ha sido mergeado en el proyecto original, me quita el quebradero de cabeza de tener que mantener el fork. El segundo motivo es que además, me hace sentir bien por ayudar a la comunidad, pero la búsqueda de ese sentimiento es una acción egoísta.

Otros motivos egoístas para contribuir a proyectos open-source

He hablado de que el cambio que hice respondía a una necesidad en un proyecto de mi empresa, pero pueden haber otros motivos como buscar aprender o mejorar tu propia reputación.

Antes de escribir esta entrada, tuve una interesante conversación con ChatGPT sobre este tema y me enumeró algunos posibles motivos de naturaleza egoísta para contribuir con proyectos open-source:

  1. Mejora de la reputación profesional: Las contribuciones al software de código abierto pueden ser vistas como una forma de aumentar la visibilidad y reputación de un desarrollador, lo que puede ser beneficioso para futuras oportunidades de empleo o proyectos.
  2. Desarrollo de habilidades: Contribuir al software de código abierto puede ser una forma de aprender nuevas habilidades o mejorar las habilidades existentes, lo que puede ser beneficioso en el futuro en el trabajo o en proyectos personales.
  3. Acceso temprano a nuevas tecnologías: Al contribuir al desarrollo de nuevas tecnologías de código abierto, un desarrollador puede tener acceso temprano a esas tecnologías, lo que puede ser beneficioso para su propio trabajo o proyectos.
  4. Generación de ingresos: La contribución al software de código abierto puede generar ingresos a través de la venta de servicios o productos relacionados con el software de código abierto.
  5. Aumento de la calidad del propio trabajo: Al contribuir al software de código abierto, un desarrollador puede mejorar la calidad de su propio trabajo al aprender de otros desarrolladores y participar en mejores prácticas.
  6. Mejora del trabajo en equipo y habilidades de colaboración: Contribuir al software de código abierto puede mejorar las habilidades de trabajo en equipo y colaboración, lo que puede ser beneficioso en el futuro en el trabajo o en proyectos personales.
  7. Ampliación de la red de contactos: La contribución al software de código abierto puede proporcionar la oportunidad de conectarse con otros desarrolladores y líderes de la industria, lo que puede ser beneficioso en el futuro para oportunidades de trabajo o proyectos.

La número 4 me llama la atención porque cuando empecé a desarrollar OpinionatedFramework, pensé que si algún día el proyecto crece, desde IOKode podría ofrecer servicios de developer advocate sobre el framework. Dado el estado temprano del mismo es difícil saber si algún día esto ocurrirá, pero es una motivación más para su desarrollo.

Haciendo negocio con el open-source

Dejando de lado el “sentirse bien” como un posible motivo egoísta, lo cierto es que lanzar tu propio software (o una base) como open-source es algo que puede tener sentido incluso desde una perspectiva empresarial. Tanto es así, que hay empresas que tienen personal a tiempo completo contribuyendo a proyectos open-source.

Esta visión puede parecer chocante porque tradicionalmente las empresas no hacían público el código de sus productos para evitar que otros vendiesen su trabajo con pequeñas modificaciones como un simple cambio de nombre o para evitar la piratería. Sin embargo, véamos un ejemplo real donde lanzar un producto como open-source ha generado beneficios a la empresa.

Google lanzó como un proyecto open-source el navegador web Chromium, que es la base a la que una vez añadida la integración con los servicios de Google, da forma al famoso navegador web Google Chrome.

El hecho de que Google haya lanzado Chromium no es un regalo a la comunidad motivado porque esta empresa sea un hermanito de la caridad, si no que viene motivado por el hecho de que gracias a ello, otras personas (y empresas) mejorarán Chromium, cada uno movido por sus propios motivos y ello repercutirá en que Google Chrome será un mejor navegador. Practicamente otros le están haciendo el trabajo gratis a Google. Lo mismo aplica para muchos grandes proyectos open-source como .NET o Kubernetes.

Volviendo al inicio, yo he trabajado gratis para Hibernating Rhinos Limited al mejorar su producto RavenDB, lo he hecho movido por mi propio interés y he salido beneficiado de ello.

Conclusión

Muchos de nosotros hemos visto como grandes proyectos open-source, algunos nacidos dentro de la comunidad, reciben contribuciones que parecen desinteresadas de cientos de personas. Pero que parezcan desinteresadas no quiere decir que lo sea. Cada uno de estas personas que contribuyen a estos proyectos lo hace por su propio interés y es gracias a ese egoísmo que algo tan bonito como la colaboración comunitaria y el software open-source funciona.

Comentario escrito por Libertifer el jueves, 2 de marzo de 2023 a las 2:25

Excelente artículo.
Explicas muy bien por qué existe y prospera el software libre y de código abierto. Se nota que has leído sobre Ayn Rand, pues generalmente sus estudiosos definen así el egoísmo.
Al final, todo en la vida se mueve por los intereses personales y está bien así.

Avatar de Libertifer
Respuesta escrita por montyclt el jueves, 2 de marzo de 2023
Autor

Efectivamente, he leído a Ayn Rand aunque siempre he pensado así antes de leerla. Más bien la leí por un sesgo de confirmación.

Gracias por tu comentario ;)

Avatar de montyclt
Comentario escrito por montyclt el jueves, 2 de marzo de 2023 a las 2:40
Autor

En la entrada he dicho que antes de escribirla he tenido una conversación con ChatGPT sobre el tema. Por si tenéis curiosidad, os dejo la conversación completa.

https://sharegpt.com/c/kOibMnE

Avatar de montyclt