Aplicaciones en Ambientes Libres

Escuela Politécnica Nacional

Bienvenidos!

Septiembre 2015

Ing. Adrián Égüez

Parte 2

Infraestructura Social y Política

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Las primeras preguntas que la gente se hace sobre el software libre son "¿Cómo funciona? ¿Cómo
se mantiene el proyecto? ¿Quién toma las decisiones?

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

¿Qué tienen en común los proyectos exitosos?: calidad técnica, salud operacional y
la capacidad de sobrevivencia

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La salud operacional es la capacidad efectiva del proyecto de incorporar
las contribuciones de nuevos códigos y nuevos desarrolladores, y de asumir la responsabilidad de los
informes de errores que ingresan

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Capacidad de sobrevivencia es la posibilidad de que el proyecto exista
independientemente de algún participante o auspiciante en particular

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El éxito técnico no es difícil de alcanzar, pero sin una base robusta de desarrollo
y un fundamento social, un proyecto puede resultar incapaz de manejar el crecimiento que el éxito
inicial aporta, o la ausencia de algún individuo carismático.

Wiki

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Sentido de permanencia
institucional, ayudado por los hábitos y procedimientos que son bien comprendidos por todos los que
participan.

Forkability

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La capacidad de cada uno de
tomar una copia del código fuente y usarlo para abrir un proyecto que compita con el original, evento
que se conoce como "fork".

Forkability

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los "forks", o más bien la posibilidad de que se produzca un "fork", es la razón por la cual no hay verdaderos dictadores en los proyectos de software libre.

Forkability

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Imaginen un rey cuyos súbditos pudieran copiar todo su reino en cualquier momento y
trasladarse a la copia para gobernarla como creen que corresponde. 

Forkability

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Podría bien darse el caso de que todos quieran apoyarse en un líder (el ejemplo más famoso es el de Linus Torvalds durante el desarrollo del kernel de Linux), pero esto es porque ellos así lo eligen, de una manera ajena a todo cinicismo y en una forma no siniestra.

Forkability

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Una propiedad de todas
las licencias de fuente abierta es que no se le da a una parte más poder que a cualquier otra para decidir
cómo se debe usar o cambiar el código.

Dictadores Benevolentes DB

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El modelo de un dictador benevolente es precisamente lo que se describe así: La autoridad final de la toma de decisiones reside en una persona, de quien se espera que, por la fuerza de su personalidad o experiencia, la use sabiamente.

Dictadores Benevolentes DB

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

"árbitro aprobado por la comunidad" o un "juez".

Dictadores Benevolentes DB

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los dictadores
benevolentes no toman realmente las decisiones, ni siquiera la mayoría de las decisiones

Dictadores Benevolentes DB

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Solamente cuando queda claro que no se puede alcanzar un consenso, y cuando la
mayoría del grupo desea que alguien guíe la decisión para que el desarrollo pueda seguir adelante, pisan
firme y dicen: "Esta es la forma que tiene que ser".

Dictadores Benevolentes DB

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Una característica compartida por casi todos los
dictadores benevolentes exitosos es que tienen un rechazo a tomar decisiones con un "así tiene que ser";
esta es una de las razones por la que permanecen en la función.

Democracia basada en el Consenso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

A medida que el proyecto avanza, se tiende a pasar del modelo del dictador benevolente a los sistemas
más abiertamente democráticos.

Democracia basada en el Consenso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Siempre que un dictador benevolente se baja o intenta difundir la responsablidad
de tomar decisiones entre todos por igual, se da la oportunidad para que el grupo se asiente en un nuevo
sistema no-dictatorial—estableciendo una constitución, por así decirlo.

Democracia basada en el Consenso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Puede ser que el grupo no
aprovecha la primera oportunidad, ni quizás tampoco la segunda, pero en algún momento lo hará; y
una vez hecho, es muy difícil que esta decisión se vuelva atrás.

Democracia basada en el Consenso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los detalles de cómo funcionan esos sistemas varían amplia mente, pero hay en ellos dos elementos
comunes: uno, el grupo funciona por consenso la mayoría del tiempo; dos, hay un mecanismo formal de
votaciones para los casos en que el consenso no puede alcanzarse.

Democracia basada en el Consenso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Consenso significa solamente un acuerdo que todos aceptan de una vez por todas.

Democracia basada en el Consenso

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La persona que propone el consenso debe, por
cierto, dejar en claro cual es el consenso alcanzado, y que acciones deben tomarse en consecuencia de él, si es que ésto no resulta obvio.

Control de Versiones significa menos Estrés

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Mantener el código fuente del proyecto bajo el control de versión significa que la mayoría de las
decisiones pueden fácilmente deshacerse.

Control de Versiones significa menos Estrés

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El proceso de consensuar no necesita ser muy formal.

Control de Versiones significa menos Estrés

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

En cambios de mayor importancia, especialmente aquellos que pueden desestabilizar
una parte del código, la gente espera uno o dos días antes de suponer que hay consenso.

Control de Versiones significa menos Estrés

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Esto se aplica no sólo al software fijo, sino a las actualizaciones de la Web, a cambios en la
documentación y a cualquier otra cosa que no sea controversial.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Inevitablemente, algunos debates no llegarán al consenso. Cuando no haya otro medio de salir del
callejón, la solución es votar.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Cuando llega el tiempo de votar, el desacuerdo ha sido analizado y reducido a unas pocas cuestiones, bien etiquetadas y acompañadas de
descripciones concisas.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Recuerde de especificar el sistema de votación, puesto que hay varias formas, y la gente puede tener falsas expectativas sobre el procedimiento que va a ser usado. Una buena opción es la votación por aprobación, en la que cada votante puede votar por todas las opciones que quiera, dentro de las
opciones presentadas.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Finalmente, voto secreto, voto abierto. No hay necesidad de guardar secretos o aparecer como anónimos
en una votación sobre asuntos que se han debatido públicamente.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

No olvidar que un debate abierto puede producir un giro nuevo del pensamiento sobre el
problema, y llevar a una propuesta que eventualmente satisfaga a todos.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La ventaja principal de la votación es que se cierra la cuestión y se puede seguir adelante. PERO el
arreglo se hace por un conteo de votos, en lugar de un diálogo racional que conduzca a todos a la misma conclusión.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Cuanto más experiencia tiene la gente en proyectos de fuente abierta, les encuentro menos
dispuestas a querer arreglar las cuestiones por medio de la votación.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

¿A quién le corresponde votar? Este
asunto puede convertirse en delicado, porque fuerza a que el proyecto reconozca oficialmente que hay
gente con mayor compromiso, o con mejores apreciaciones que los otros.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La mejor solución es simplemente tomar la distinción existente, el acceso a los commits, y asociar los privilegios del voto en eso.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

No pueden ponerse los votos para los que hacen commits en una lista de correo pública, porque se pueden herir los sentimientos y la reputación de un candidato.

Cuando No Se Puede Tener Consenso, Vote

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Encuesta vs Votación si a alguien se le ocurre una opción mejor que
no está en la lista, su respuesta puede llegar a ser el resultado más importante de la votación.

VS

Veto

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El veto es la manera
que tiene un desarrollador para detener un cambio apresurado o mal considerado, por lo menos por un tiempo suficiente para que todos puedan discutirlo más. En apache se usaba la notación -1

Tomando nota de Todo

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

En cierto momento, el número de acuerdos y arreglos que circulan por el proyecto pueden llegar a ser tan grandes que se necesita registrarlos en algún lugar. Y para dar legitimidad a esos documentos, hay que tener bien claro que están basados el las discusiones de las listas de correo y en acuerdos que ya
estaban en vigencia.

Tomando nota de Todo

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

http://www.apache.org/foundation/how-it-works.html

http://subversion.apache.org/docs/community-guide/

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los fondos corporativos de un desarrollo de software libre no son un nuevo fenómeno. Muchos de los
desarrollos han estado siempre informalmente subvencionados.

 

 

( La subvención consiste en la entrega de una cantidad de dinero por la Administración, a un particular, sin obligación de reembolsarlo, para que realice cierta actividad que se considera de interés )

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Cuando un administrador de sistemas escribe una herramienta de análisis de sistemas para ayudarle en su trabajo, entonces la pone online y
consigue corregir bugs y contribuciones con nuevas características de otros administradores de sistemas,
lo que ha ocurrido es que se ha creado un consorcio no oficial.

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Hoy la diferencia, es que muchos de estos esfuerzos están siendo formalizados. Las corporaciones están tomando consciencia de los beneficios de el software open source, y por ello empiezan a involucrarse, ellas mismas, en su desarrollo. Los desarrolladores también llegan a esperar que los proyectos importantes atraigan al menos donaciones, y posiblemente incluso  patrocinantes de gran duración.

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El patrocinio financiero es, en general, bienvenido por las comunidades de desarrollo de open source.

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Sin embargo, los fondos tambien traen una percepción de control. Si no se manejan cuidadosamente,
el dinero puede dividir un proyecto en grupos incluyentes y grupos excluyentes de desarrolladores.

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Si los voluntarios no remunerados tienen el sentimiento que las decisiones de diseño o adición de
características están simplemente disponibles para el mejor postor, se marcharan a un proyecto que
se parezca más a una meritocracia y menos a un trabajo sin pagar para el beneficio de alguien.

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez


puedes firmar un contrato con algunos desarrolladores, pero ellos serían idiotas consigo mismos, y tú, si ellos garantizan que el trabajo por el que tu has pagado será aceptado por la comunidad de desarrollo simplemente porque tú pagaste por él.

Dinero

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El peso dado a los objetivos de tu compañia será determinado por el estatus de sus
representantes en el proyecto, no por el tamaño de la compañia, presupuesto o plan de negocios.

Dinero

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Compartiendo la carga
Distintas organizaciones con necesidades de software similares, a menudo se encuentran a sí mismas duplicando esfuerzos, tanto escribiendo código interno similar, o comprando productos
similares de vendedores propietarios.

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Aumentando servicios
Cuando una compañía vende servicios de los cuales depende, o se hacen más atractivos por,
programas open source particulares, naturalmente en los intereses de esta compañía está asegurar
que esos programas sean activamente mantenidos.

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Apoyando las ventas de hardware
El valor de los ordenadores y sus componentes está directamente relacionado con la cantidad de
software disponible para ellos.

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Socavando a la competencia
A algunas empresas patrocinan ciertos proyectos como una manera de socavar los productos
de la competencia, que puede que sean o no Proyectos Open Source.

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Marketing
Ser asociado con un proyecto OSS popular puede que genere muy buena publicidad.

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Licencias Duales
Licenciamiento Dual es una práctica bajo la cual se ofrece el software utilizando una licencia propietaria tradicional para clientes quienes deseen revenderlo como parte de otra aplicación propietaria, y simultaneamente bajo una licencia libre para aquellos quienes pretenden utilizarlo
bajo los términos del software libre. (MySQL)

Tipos de participación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Donaciones
Un proyecto popular puede a veces obtener contribuciones significativas, tanto de individuos como
de organizaciones, sólo con colocar un botón de donaciones en línea o a veces vendiendo productos
promocionales del proyecto como tazas de cáfe, camisetas, alfombrillas, etc.

Contratos Indefinidos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Si está dirigiendo un equipo de desarrolladores en un proyecto de software libre, intente mantenerlos el
tiempo suficiente para que adquieran experiencia técnica y política—un par de años como mínimo.

Contratos Indefinidos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Por 
supuesto que ningún proyecto, sea de código abierto o cerrado, se beneficia del intercambio incesante
de programadores.

Contratos Indefinidos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Pero el castigo puede ser mayor para un proyecto de código abierto porque
quienes abandonan el proyecto no sólo lo hacen con el conocimiento del código, también se llevan un
status en la comunidad y las relaciones que hayan hecho.

Contratos Indefinidos

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La credibilidad acumulada por un desarrollador no puede ser transferida. El ejemplo más obvio es que un desarrollador recien incorporado no puede heredar los mismo accesos al código de quien se va , así que si el nuevo desarrollador no tiene permisos para realizar cambios, deberá enviar parches hasta que tenga estos permisos.

Contrataciones

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

El trabajo debe ser aceptado por la comunidad, sin importar quien sea

Contrataciones

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Hay que tener si el contratista trabaja por hora o por trabajo, puede trabajar mas de lo que debe, o cobrarnos mas de lo que podemos pagar

Contrataciones

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Llegar a un acuerdo dividiendo el problema en partes pequeñas,

Contrataciones

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Una buena estrategia es contratar a uno de los desarrolladores "committers" (que hacen commits y tienen permitido hacerlo)

Contrataciones

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

Los committers no van a querer que su reputación baje o implementar algo sin calidad, así que generalmente lo harán bien, además la comunidad aceptará los cambios más fácilmente de gente que conoce

Revisión y aceptación de cambios

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La comunidad es aún importante para el éxito del trabajo contratado. No piense que la mitigación de la comunidad será un obstáculo a vencer, piénselo como un departamento gratuito de diseño y control de
calidad.

Financiando actividades fuera de programación

Proyectos Software Libre

Escuela Politécnica Nacional

Ing. Adrián Égüez

La programación no es el único trabajo dentro del proyecto, tal vez la más glamorosa pero no la única, es así que la documentación o las pruebas formales pueden ser dejadas de lado

Software Libre 2

By Adrian Eguez

Software Libre 2

Clases de Aplicaciones en Ambientes Libres -Infraestructura Social y Política -Dinero -Comunicaciones

  • 1,079