¿Opensource vs Opensource?


Después de plantear la importancia de definir correctamente los principios de una comunidad colaborativa y exponer los riesgos de adoptar una comunidad con principios poco claros, llego al caso de un ejemplo concreto de 2 o más comunidades se transforman en inestables, complicadas y con mayor riesgo de ser manipuladas.
Esto es lo que creo esta ocurriendo con la comunidad Opensource, donde claramente vemos 2 proyectos que comparten el nombre, pero están enfocados en principios diferentes.

Software libre vs código abierto


A propósito he puesto un título polémico y sugerente de una “guerra santa”, pero sólo con la intención de atraer a aquella gente fanática que gusta de crear polémica con este tema y compartir con ellos mi visión de como enfrentar la diversidad en las comunidades entorno al software libre.

Seguir leyendo

Principios y colaboración


Hay un patrón que se repite en el desarrollo de proyectos colaborativos y tiene relación con la típica misión y visión que se plantean las empresas, pero por el contrario estos tienen una connotación más real que formal, son en general estos principios nacen de las bases y se comparten como una necesidad efectiva en la organización.

No son una careta, son una guía real de empoderamiento, encauzan la toma de decisiones a base del contraste de estos principios con el sentido común, lo que permite la participación de todos agentes involucrados con el progreso del proyecto.

En general en proyectos exitosos, estos principios son:

  • Simples y claros.
  • Se originan por necesidades fundamentales.
  • Se mantienen estáticos a pesar de la evolución propia del proyecto.

En caso que estos principios sean modificados, entonces se inicia una “fork” del proyecto original y se debe dejar claro, para ser transparentes con la comunidad, que al diferir de sus principios estos serán proyectos distintos y no debe existir ambigüedad en eso.

Para aterrizar el tema voy dar ejemplos de los principios en los cuales se basan algunos proyectos colaborativos:

Los proyectos de software libre:

  • La libertad de ejecutar el programa, para cualquier propósito (libertad 0).
  • La libertad de estudiar cómo trabaja el programa, y cambiarlo para que haga lo que usted quiera (libertad 1). El acceso al código fuente es una condición necesaria para ello.
  • La libertad de redistribuir copias para que pueda ayudar al prójimo (libertad 2).
  • La libertad de distribuir copias de sus versiones modificadas a terceros (la 3ª libertad). Si lo hace, puede dar a toda la comunidad una oportunidad de beneficiarse de sus cambios. El acceso al código fuente es una condición necesaria para ello.

Si nos fijamos de acuerdo a estos principios el software libre se construye para ser una satisfactor sinérgico de Entendimiento, Participación, Creación y mayor énfasis en la Libertad.

El proyecto de Wikipedia:

  • Wikipedia es una enciclopedia.
  • Wikipedia busca el «punto de vista neutral».
  • Wikipedia es de contenido libre.
  • Wikipedia sigue unas normas de etiqueta.
  • Wikipedia no tiene normas firme.

Si nos fijamos los principios de Wikipedia no son tan simples de claros como los del software libre, requieren un poco más de explicación y muchas veces la ambigüedad del “punto de vista neutral” ha generado grandes polémicas, pero si nos damos el tiempo de leer los 5 pilares, la robustez de estos depende de que tan explícito es su relación con las necesidades fundamentales, por ejemplo la definición de contenido Libre es simple y clara y es un satisfactor sinérgico similar al software libre. El punto de vista neutral apunta a la necesidad de Entendimiento a través del diálogo y la expresión de todos los puntos de vista posibles, pero esto choca con nuestra concepción de la existencia de la verdad absoluta inculcada en nuestra sociedad temerosa de reconocer que somos ignorantes de los que nos rodea. Lo de las normas de etiqueta es un marco regulatorio para la Participación, pero decir que las normas no son firmes es para evitar que estas restrinjan la Participación.

Otro proyecto no tan conocido son:

Por ejemplo el Agile Software Development:

  • A los individuos y su interacción, por encima de los procesos y las herramientas.
  • El software que funciona, por encima de la documentación exhaustiva.
  • La colaboración con el cliente, por encima de la negociación contractual.
  • La respuesta al cambio, por encima del seguimiento de un plan.
  • Aunque hay valor en los elementos de la derecha, valoramos más los de la izquierda.

No estoy tan  familiarizado con este proyecto, pero entiendo que busca mejorar de forma explícita la Participación y favorecer la Creación, la Identidad y la Libertad entre las personas que interactúan la solución de un problema utilizando herramientas computacionales.

El proyecto de Python:

  • Bello es mejor que feo.
  • Explícito es mejor que implícito.
  • Simple es mejor que complejo.
  • Complejo es mejor que complicado.
  • Plano es mejor que anidado.
  • Ralo es mejor que denso.
  • La legibilidad cuenta.
  • Los casos especiales no son tan especiales como para quebrantar las reglas.
  • Aunque lo práctico gana a la pureza.
  • Los errores nunca deberían dejarse pasar silenciosamente.
  • A menos que hayan sido silenciados explícitamente.
  • Frente a la ambigüedad, rechaza la tentación de adivinar.
  • Debería haber una -y preferiblemente sólo una- manera obvia de hacerlo.
  • Aunque esa manera puede no ser obvia al principio a menos que usted sea holandés.[18]
  • Ahora es mejor que nunca.
  • Aunque nunca es a menudo mejor que ya mismo.
  • Si la implementación es dificil de explicar, es una mala idea.
  • Si la implementación es fácil de explicar, puede que sea una buena idea.
  • Los espacios de nombres (namespaces) son una gran idea ¡Hagamos más de esas cosas!

Muchos de estos principios pueden entenderse sin haber escrito una línea de código en nuestra vida, eso es algo rescatable en una buena redacción de principios, ya que buscamos que sean contrastables con el sentido común de cualquier persona que potencialmente tenga relación con el proyecto.

Pero, ¿Qué pasa con los proyectos colaborativos que abundan en nuestra sociedad?

En general están basados en principios vagos, complejos, nebulosos, cambian por intereses personales, confunden su relación con satisfactores en vez de las necesidades fundamentales, etc.

Por ejemplo: el proyecto país, un proyecto sistema educativo, el proyecto libre mercado, un proyecto de municipalidad, de junta de vecinos, de comunidad de pescadores, de agua potable rural o proyecto de riego. Todos son de alguna forma proyectos colaborativos, que tienen principios, pero que muchas veces son manipulados por quienes los gestionan o ignorados por la comunidad.

Revisemos que pasa con el el La competencia perfecta en un Libre Mercado:

  • Muchos productores y consumidores.
  • Las empresas vendan un producto homogéneo en el mercado.
  • Las empresas y los consumidores tengan información completa y gratuita.
  • No haya barreras de entrada o salida al mercado.
  • Sin costos de Transacción.

Yo he sido un crítico de la competencia, pues mi sentido común choca con algunos principios, por ejemplo uno que no se nombra es la estrategia competitiva “defraudar sistemáticamente” que daña el Afecto y la Protección, creando un ambiente de desconfianza  y el otro de los productos homogéneos (mercado de las masas) que daña la necesidad de Identidad, para mí los otros principios son razonables y entendibles, lo impresionante es ver las inconsecuencias de estos con la realidad. La concentración de poder de negociación en pocos agentes, las barreras artificiales de entrada y salida que tienen los consumidores, la dificultad para acceder a la información (letras chicas, contratos inentendibles, cobros implícitos, etc.)

Eso me hace pensar que proyecto de gestión de los bienes públicos y privados a través de la Competencia perfecta tiene problemas de fondo y de forma. Los “economista” se han hecho cargo de los problemas de forma, pero obtusa estupidez se niegan a reconocer los problemas de fondo.

Lo importante es diferencias claramente entre la gestión de los bienes públicos y privados a través de la Competencia y el proyecto de Libre mercado, pero eso lo voy a dejar para otro artículo.

Osea, ¿En un proyecto colaborativo todos tomamos las decisiones?

Revisemos como se refleja esto en la política:

Es este el punto que me originó la necesidad de escribir este este artículo, las mal definidas decisiones democráticas y de consenso. La forma en que se gestiona un proyecto colaborativo debe diferir diametralmente del concepto “gobierno de las mayorías”, pues en general eso atenta con la necesidad fundamental de Participación, Identidad, Subsistencia y Protección de las minorías y genera un fenómeno perverso de homogeneización de la diversidad intrínseca de los seres humanos (somos por naturaleza únicos e irrepetibles), en estricto rigor todos somos minorías y la mayoría es un invento artificial para manipular nuestra sociedad (que pasaría si no existieran medios masivos que constantemente nos imponen una realidad idiotizante). Ese poder homogeneizante que ha mantenido dormido el potencial de la sabiduría de las masas.

Como sociedad compartimos elementos comunes como las necesidades fundamentales y es así como existen principios mundialmente aceptados para proyectar nuestra sociedad, pero siempre existe el riesgo de confundirlos con los satisfactores, es ahí cuando nuestro sentido común debe estar atento a cuestionar aquello que atenta contra los principio que se basa nuestra sociedad.

Por ejemplo, hoy en época de elecciones, existe la falsa dicotomía Política de la derecha y de la izquierda, ojalá alguien pudiera explicarme la diferencia entre estas ideología en base a principios fundamentales. Mi sospecha es que ambos proyectos comparten principios, pero son incapaces de explicitarlos, pues es más fácil manipular a las masas desde la ignorancia y el oscurantismo del circo que algunos llaman “campañas políticas”,   por favor que me perdonen los artistas circenses por la burda comparación.

Lo que no comparten los “proyectos políticos” , según lo que entiendo, son a las personas que agrupan y la forma en que éstas pretenden gestionar el proyecto proyecto país. Son grupos de poder, que se van turnando en la medida que la ciudadanía siente que se quedan dormidos en sus laureles, detectan mucha corrupción o de plano una mala gestión.

Pero es imposible e ingenuo que nosotros los ciudadanos, leamos y entendamos los planes de gobierno de las candidaturas y tengamos la capacidad técnica, para evaluar con nuestro voto de aceptación y rechazo los paquete de medidas propuestos por cada coalición. Lo que si podemos entender y medir su cumplimiento son las llamada “promesas de campaña“, pero la demagogia y el impacto a corto plazo de estas, sacrifica al menos 2 años de gobierno en pagar lo prometido y postergar a los problemas sistémicos (educación, salud, delincuencia, etc.) a soluciones parche, que nos mantienen prisioneros de nuestra necesidad de subsistencia, “haciendo muy riesgoso” para el común de las personas desarrollar todas nuestras necesidades, para tener una vida más plena.

Para disfrazar este problema de fondo de la democracia, nada mejor que desviar nuestro criterio de voto a:

  1. Evaluar la retórica de los candidatos en los debates
  2. Ver cual es más simpático,”carismático” o tiene más llegada con la gente.
  3. Cual tiene la mejor propaganda en las calles (que nos plante en el subconsciente su nombre)
  4. Ver cual dentro de su grupo de personas que lo apoyarán en el gobierno, no tengan antecedentes de corrupción o una evidente mala gestión. (Este criterio creo que es bastante rescatable, pero carecemos de información como para aplicarlo adecuadamente)

Yo tengo ideas de formas complementarias de democracia a través de la participación efectiva ciudadana, ojalá pueda escribir sobre eso más adelante, pero en general se basaría en el desarrollo de un país de forma ágil, eficaz y sustentable.

Lectura recomendada:
Principios fundamentales

Tecnologías abiertas o cerradas. ¿Cuando, cuál, como elegir?


Hace tiempo que se vaticina el año donde Linux en particular o las tecnologías abiertas en general, donde dominaran sobre las ya acostumbradas tecnologías cerradas.
Es errado pensar que esto sucederá en un año específico, pues la evolución del mercado no es discreta a menos que ocurra un evento puntual o una crisis, que genere un cambio tan grande en el mercado que seamos capaces de detectarlo de un año para otro. Hoy en día la economía al estar globalizada puede amortiguar mejor estos eventos, pero ese es otro tema que no voy a tratar acá, más bien en este caso vamos a suponer que no existe un evento puntual y la economía va evolucionar de acuerdo a las reglas actuales.

Observemos el mercado del software:
Considerando esto, podemos observar que existen algunos elementos que permiten vislumbrar como en el futuro dominarán las tecnologías abiertas como Linux sobre las tecnologías cerradas.

Las reglas del mercado cada día favorecen más la libertad de los usuarios:

• Empresas como Microsoft ya no funcionan en impunidad y son castigadas por los tribunales antimonopolios.
• Los usuarios cada día tienen acceso a más información, para tomar mejores decisiones al momento de elegir una herramienta computacional. (Internet ha sido clave en esto)
• Cada día se consolidan más los estándares abiertos y la interoperatividad ya no es un lujo, sino más bien es una exigencia de los usuarios.

Las comunidades de software libre cada día se consolidan más:

• Muchos dentro de las comunidades de software libre critican la popularidad de Ubuntu, por que su objetivo principal es reparar el Bug#1, es decir hacer de GNU/Linux una herramienta popular y atraer al mayor número de personas utilizando, sin excluir, todos los argumentos positivos que involucra el software libre, yo personalmente comparto esta visión: “El software libre tiene fundamentos éticos y morales humanistas muy positivos con los que me siento identificado, pero también existen muchas otras personas que pueden sentirse atraídas por los beneficios económicos, prácticos y técnicos que también están asociados al software libre. Es por eso que creo decisión de cada usuario conocer y sopesar estas variables al momento de elegir
Ya se ha alcanzado la masa crítica de usuarios y desarrolladores de software libre, es cuestión de tiempo que cada día se vaya adhiriendo más gente.
• Internet y su nueva faceta de web 2.0 impulsa a los usuarios y programadores a relacionarse entre sí, lo que acelera aún más el desarrollo del software. ( Hoy incluso existen herramientas donde los usuarios tienen la posibilidad de mejorar el software que usan sin saber programar, por ejemplo: traduciendo las aplicaciones , reportando errores , mejorando la apariencia, etc. )

Modelo evolución mercado Software libreExisten modelos simplificados como el de la figura, de como se desarrollaría el mercado del software libre, si cada día depende más de las decisiones de los usuarios. Y podemos observar que hoy nos encontramos en una época de transición (zona sombreada), donde aún las alternativa del software privativo es válida a corto plazo, pero si se requiere tomar decisiones a mediano y largo plazo el software libre es la mejor alternativa.

Desafíos para el futuro:
• Crear un sistema de mercado acorde con las características del software libre. (Propuesta Bonos GNU)
• Preparar el camino del software libre como un proyecto a largo plazo.
• Preparar a los usuarios para cuando tengan la libertad de elegir, puedan sacarle el máximo provecho a esa libertad ( Estrategia de difusión de software libre y el fundamento educativo de Ubuntu-cl )

Referencias
Modelo de evolución de las estrategias colaborativas. Me gusta citar este artículo, porque es muy didáctico y si se requiere informarse más a fondo al final están las referencia para ver las demostraciones formales del modelo.

¿Qué es el opensource?


Es un modelo de desarrollo de software en que el acceso a las tecnologías libres de primer nivel a escala mundial, no dependen de la capacidad adquisitiva de los usuarios, si no que dependen de la capacidad de adaptación de los usuarios ante un Modelo de Coorperación Perfecta.

Si se revisa el concepto de cooperación perfecta, es posible detectar que de forma natural todas aquellas instituciones en las cuales están involucrados bienes comunes o públicos ( administración pública, educación, cooperativas, etc ) debieran usar software libre, para garantizar que sus soluciones computacionales maximicen su beneficio y sean sustentables a largo plazo.

¿Cuál es la diferencia entre Opensource y el Proyecto GNU?

La única diferencia es en la importancia y peso que le dan a los tipos de bienestar:
Bienestar Individual = Bienestar Económico + Bienestar Moral
El Opensource le da mayor énfasis al bienestar económico.
El Proyecto GNU le da mayor énfasis al bienestar moral asociado.
Lo importante es entender que ambos movimientos adoptan un modelo de cooperación en libre mercado el cual entrega ambos beneficios juntos sin ser excluyentes y las personas son libres de establecer la utilidad que le da a cada uno.

Actualización Noviembre 2010:

Luego de profundizar más en el tema encontré las diferencias fundamentales entre OpenSource y SoftwareLibre.

Matemáticas y Software Libre


No hay que enredarse tanto, si nos abstraemos un poco, podemos entender las cosas sin enredarse en detalles.
Los lenguajes de programación son equivalentes al lenguaje de las matemáticas.
Si el autor de un programa licencia su trabajo como software libre es equivalente a cuando un matemático publica un algoritmo de resolución de un problema.
Entonces la gente puede usar esa herramienta (matemática o computacional) para cualquier uso, estudio, mejora y distribución.

Bueno entonces ustedes me dirán ¿donde está el negocio?
En las matemáticas, cada personas que estudia matemáticas es para usar esa herramienta, algunos usan calculadoras, otros necesitan resolver integrales, otros necesitan modelar una crecida. Cada uno es libre de aprender matemáticas o que alguien que sepa matemáticas resuelva el problema por nosotros.

En computación pasa lo mismo cada personas usar la computación en distintos niveles y lo “natural” sería que el mercado fuera como el de las matemáticas.

Pero que paso en un comienzo cuando se desarrollaba la computación, alguien muy pillo se dio cuenta que si ocultaba como funcionaban las cosas y licenciaba los programas sólo algunos podrían desarrollar la computación. Negocio redondo ¿no?

Que pasaría si las matemáticas fueran privativas:

Se imaginan si cada vez que queramos usar un modelo matemático tuviéramos que pagar al creador del modelo, si nadie pudiera establecer las coordenadas de un punto a menos que le paguemos a Descartes y no podamos estudiar como funciona la geometría analítica porque es “cerrada”. Sería raro ¿no?

• Estaríamos privados de usar las matemáticas, con cualquier propósito.

• Estaríamos privados de poder estudiar el funcionamiento de las matemáticas y adaptarlas a nuestras necesidades.
• No todos tendríamos acceso a las demostraciones de los Teoremas.
• Estaríamos privados de enseñar matemáticas, con lo que puede ayudar a otros.
• Estaríamos privados de mejorar los algoritmos y hacer públicas las mejoras, de modo que toda la comunidad se beneficie.

Tiene sentido, que cada matemático para formular sus propias teorías:

• Reinvente la teoría de conjuntos para poder empezar a sumar.
• Tenga su propia notación la cual sea incomprensible para el resto de sus colegas.
• Sea dueño de los algoritmos que formule y nadie lo puede usar por eso tengamos que pagar un canon para poder utilizarlos.

Si estas afirmaciones parecen tan contradictorias, ¿ Por qué para el común de los usuarios de herramientas computacionales es natural que existan las licencias y el software privativo?

Las matemáticas son un lenguaje, al igual que los lenguajes de programación, ¿ Cuándo los programadores usuarios aceptarán que el modelo actual, es una importante traba para el pleno desarrollo de las ciencias de la computación?

Referencias: ProInnova