¿Por qué las personas admiten el código abierto? (Lea los detalles antes de responder).

En primer lugar, la pregunta tiene dos partes. La descripción se refiere a la creación de software de forma gratuita en lugar de la pregunta que se refiere a proporcionar el código fuente de forma gratuita junto con la funcionalidad en sí misma que puede tener un costo o no. Contestaré ambas preguntas juntos.

Hay varios aspectos, ya sea individualmente o en alguna combinación, que hacen que las personas participen en código abierto. Los enumero a continuación, sin ningún orden en particular.

El primer aspecto es la escala. En la mayoría de los casos, muchos desarrolladores están interesados ​​en obtener la funcionalidad y (suponiendo que el producto sea realmente valioso para un segmento de usuarios), el esfuerzo y el costo requeridos para lograr que el mismo conjunto de desarrolladores de alta calidad se unan en tal proyecto en un sentido comercial puede no ser factible para un desarrollador. Sin embargo, al trabajar en una parte del proyecto en su tiempo libre, el mismo conjunto de desarrolladores puede darle vida al producto, en muchos casos con una calidad comparable o mejor de un producto comercial similar.

El segundo aspecto es la flexibilidad. Por mucho que una persona tome la pintura como un pasatiempo y trabaje en una pintura a su propio ritmo sin presión externa o la influencia jerárquica corporativa de su trabajo diario, un desarrollador puede ser un apasionado de su idea que puede ser muy difícil de vender a su empleador financiar. Luego lo crea en el modelo gratuito y consigue que otros apasionados se unan. En las primeras etapas, puede contribuir al proyecto en su tiempo libre, sin la presión de un proyecto de desarrollo comercial concertado. A medida que el proyecto evoluciona, según la disponibilidad de los desarrolladores que trabajan en él, puede surgir un cronograma.

El tercer aspecto es la variedad. Una buena idea presentada a la comunidad de código abierto puede hacer que una gran cantidad de personas de diversos orígenes y experiencias contribuyan, mientras que las personas que trabajan en ella dentro de la misma empresa compartirán las limitaciones de la cultura de esa corporación.

El cuarto aspecto es el aprendizaje. Puedo comenzar con la intención de entender el código fuente de Ruby. A medida que avanzo, puedo encontrar y registrar algunos errores, corregir algunos errores, crear una nueva función, etc.

El quinto aspecto es la autopromoción. La mayoría de los trabajos de software actuales tienen muchas más probabilidades de contratar a un desarrollador con un rico perfil de github que un currículum con mucha experiencia.

El sexto aspecto es la monetización. Si bien un software puede ser gratuito, las personas lo usan como un canal para ganar dinero de otras maneras: atención al cliente, variante de empresa comercial, productos comerciales que se basan en la variante gratuita, etc.

El séptimo aspecto es de interés común: en un entorno colaborativo como un proyecto de código abierto, todos los desarrolladores están interesados ​​en crear el producto y nada más. Aquí se minimizan otros factores que afectan a la mayoría de los desarrolladores de productos comerciales: políticas de la compañía, otros equipos de la compañía, diferentes aspectos de los modelos de ingresos, etc.

El octavo aspecto es la satisfacción. A las personas les encanta ver que algo que crean sea lanzado y en manos de sus usuarios y en un producto gratuito, la satisfacción del cliente es la gran recompensa, y tal vez la única, medible.

El noveno aspecto es la selección natural: cada desarrollador en el mundo puede bifurcar un proyecto de código abierto y crear su propia variante. Las mejores variantes sobreviven y las menores perecen. A veces sobreviven múltiples variantes para diferentes casos de uso. En un producto comercial, hay varios factores externos que frenan este efecto de selección natural global. El desarrollador comercial puede patentar las ideas, cerrar el código o hacer otras cosas para desactivar la evolución libre de la funcionalidad.

Me gusta más el código abierto que los binarios empaquetados porque me gusta tener la capacidad de rastrear lo que está haciendo un programa, cuando sea necesario. Lo que cuesta obtener la fuente realmente no entra en él: ejecutar programas sin tener el código se siente como aplicar teoremas sin tener la prueba, puede funcionar, pero no proporciona la confianza de poder decir lo que en realidad lo estoy haciendo con alguna precisión.

Si regalar programas es injusto para los desarrolladores desempleados es una pregunta ligeramente diferente, admitiendo un espectro completo de respuestas. En un extremo, se podría decir que el valor de mercado de algo regalado es demostrablemente cero, por lo que es injusto para el cliente aumentar ese precio artificialmente. En el extremo opuesto, si está bien regalar algo en todas las circunstancias, se podría decir que es injusto permitir que los desarrolladores adinerados socaven toda competencia al regalar programas con pérdidas que pueden pagar. Para hacer juicios morales y / o éticos en las áreas grises intermedias, creo que es necesario observar las motivaciones caso por caso, algunos matices no son fácilmente capturados por una evaluación de cuánto dinero debería ser el programa valor.

Para el caso de la pregunta que detalla el aporte altruista al bien común, creo que a las personas se les debe permitir donar lo que quieran. Las consecuencias de decir que todo el trabajo que se puede pagar debe pagarse pone todos los demás valores que las personas tienen en el asiento trasero, solo para tener en cuenta cuando no amenazan un margen de beneficio: eso sería un gran sacrificio de personal libertad para lograr un ajuste discutible de equidad en el mercado laboral. Además, tener el principio de que cualquier trabajo disponible debe ir a desarrolladores desempleados todavía no resuelve cómo ser justos cuando hay dos desarrolladores desempleados, sino solo un trabajo para todos.

Sobre los ingenieros pagados que posiblemente hacen mejores trabajos que lo que está disponible de forma gratuita, creo que los usuarios de software deben poder determinar si esa diferencia es algo por lo que les importa pagar. Por analogía, cuando no escribo programas para vivir, me gusta tocar música claramente no profesional. La gente a veces escucha, a veces lo disfruta, y nadie gana un centavo. Si alguien sugiriera que esto no es ético porque arruina el sustento de los profesionales con dificultades, me temo que mi contribución se limitaría a compartir un vocabulario claramente no profesional, para resaltar la cantidad de intereses comerciales que considero relevantes para mi hobby.

Espero que la mayoría de las personas se opongan a la idea de que no deberían ser amables entre sí de forma gratuita porque alguien más podría ser amable por dinero.

La analogía perfecta entre un ingeniero civil y un OSS sería: dado todos estos recursos y materias primas, usted publica un plan que haría el uso de estos recursos de manera más efectiva y crearía un rascacielos. No haces esto para una empresa, haces esto porque eres experto en crear rascacielos. Y luego, pones el plan en público, donde otros ingenieros pueden revisarlo y hacer que tu rascacielos perfecto sea aún mejor.

En última instancia, lo que le está dando al mundo es una metodología perfecta para resolver un problema: crear un rascacielos. Y esto haría del mundo un lugar mejor al tener rascacielos perfectos, uno que no se derrumbaría en un terremoto.

Lo mismo ocurre con el software, usted está en una empresa y resolvió un problema comercial creando un software. Entonces, para hacer del mundo un lugar mejor, y para evitar la repetición, hace pública su solución, de modo que la solución continúa mejorando hasta que es la mejor solución a un problema.

La ventaja aquí es que ha estandarizado su solución como la mejor, porque solo mejorará cada vez más. Compárelo con una solución cerrada, si a la gente no le gusta, no lo usarán, en comparación con el suyo, donde simplemente lo mejorarán. Eres reconocido y serás más importante para el mundo que el tipo que gana dinero vendiendo la misma solución.

Se trata más del propósito, el deseo de resolver un problema. Esa es la tendencia humana. Desde hace siglos, los humanos han dado soluciones que resolverían los problemas del mundo, y OSS es solo eso en el sentido moderno.

Si amas algo, quieres liberarlo. Gratis porque quieres que la gente lo use y se beneficie. Obtienes felicidad al ver a las personas usar lo que hiciste.

Es tan simple como eso.