¿Es el Software libre resistente a todo tipo de usuarios?

El software libre, producido bajo los principios de las cuatro libertades de ejecución, estudio, modificación y distribución(1), ocupa un lugar cada vez más importante en nuestras vidas, al ser el que soporta una gran cantidad de puntos fundamentales de la red internet actual. Por lo tanto, una cuestión relevante es cuán fácil o difícil es que un determinado software libre pueda seguir adelante en el tiempo según sus usuarios, que también suelen ser los que lo mantienen.

En el artículo que comento, empiezan en la introducción repitiendo que debido a su naturaleza, el mantenimiento de una base grande de usuarios comprometidos y capaces de modificar y ajustar ese software según se necesite es fundamental para el éxito de cualquier programa de este estilo.

Continúan señalando que debido a su naturaleza abierta y al éxito del modelo, hay cada vez más programas similares desarrollándose a la vez, lo que supone que hay una competición muy fuerte entre los diversos programas por captar y atraer los usuarios. Personalmente creo que con frecuencia varios de estos proyectos se unen o termina quedándose solo uno, pero el que se queda ha ganado la «competición», desde luego.

En cualquier caso, la robustez(2) de su red es muy importante. Y por eso los autores de este artículo se pusieron a estudiarla para las redes típicas de generación y mantenimiento de software libre.

Continúan diciendo que la mayor parte de los estudios sobre la robustez de redes se refería a redes físicas, como las de transmisión eléctrica, transporte, etc. Así, hay menos estudios sobre redes virtuales, si bien al aumentar tanto la importancia y cantidad del software libre, algunos estudios se han realizado. En su revisión rápida de la introducción, los autores de este artículo citan trabajos sobre software libre en los que encontraron algunas características de estas redes de trabajo, que se pueden resumir así:

  • Cambian su capacidad de resistencia a ataques externos según el tipo de escala que tenga la red,
  • Para que un proyecto pueda sobrevivir, es fundamental que su sistema de reclutamiento y mantenimiento de personal sea efectivo,
  • Su propia estructura de centro fuerte y una gran periferia más débil de usuarios la hace muy resistente a ataques externos, pero deja el proyecto en riesgo de anquilosarse si lo hace el centro,
  • Si un usuario de la red que posee una gran parte del conocimiento del programa se marcha, el proyecto sufre y puede llegar a abandonarse.

Además, también citan dos artículos que analizaban el código desde el punto de vista de si el software libre está mejor o peor codificado que otros tipos. Pero todos estos trabajos sobre la robustez se centran en algún punto concreto, mientras que los autores de este artículo pretenden centrarse precisamente en la robustez en sí de las redes de software libre.

Centrándose más en materia, los autores del artículo comentan que los contribuyentes a proyectos de software libre reconocen que es muy importante para que el proyecto saga adelante que se intercambie información técnica o de habilidades de programación, mientras que otro tipo de datos, como felicitaciones, no es tan importante. Además, hay un conjunto importante de usuarios llamados «vaqueros de grupa»(3), que ni contribuyen ni colaboran al proyecto, la gran mayoría de usuarios, entre los que me encuentro.

Este trabajo se centra en el problema que puede suponer para un proyecto de este tipo la pérdida de usuarios con conocimiento. Uno de los problemas con los que se encuentran es que la mayoría de las investigaciones sobre la robustez de redes se centran en redes estáticas, mientras que por su propia naturaleza las redes que producen software libre son muy dinámicas, con los miembros cambiando a lo largo del tiempo mucho de manera muy fluida. Además, la mayoría de estudios sobre la robustez de redes emplean algún tipo de medida que tiene en cuenta la propia estructura de la red, no el conocimiento de sus miembros, que en redes de programación es fundamental, puesto que la pérdida de demasiado conocimiento causa que el proyecto fracase.

Para ello, emplearon redes de producción abierta de coches de la empresa Local Motors, que tiene una filosofía abierta sobre su fabricación y desarrollo de productos. Construyeron una base de datos de 11 proyectos de su web durante 8 años. Para construir la red, tuvieron que observar las 25472 comunicaciones de sus 1689 usuarios. Un trabajo complicado, que se tradujo en una red con nodos, los usuarios que poseen conocimiento, y filos, las formas en las que ese conocimiento se transmite por los nodos.

Al observar la evolución histórica delas diversas redes de la compañía, representada en la figura 1, pudieron dividirlas en tres estados: comienzo, crecimiento y madurez. En los tres estados, la redes son del tipo «mundo pequeño», lo que quiere decir que la colaboración se produce entre agrupaciones pequeñas de los nodos de la red, más que entre todos los nodos. También observaron que son redes libres de escala, es decir, que sus características fundamentales no varían según el tamaño de la red.

Evolución temporal de la red que estudiaron. Figura 1 del artículo citado.

Al tratar de separar los usuarios (nodos) de la red, observaron tres comportamientos típicos: los innovadores, los diseñadores importantes y los usuarios comunes. Con la red inicial, apenas había usuarios diseñadores o comunes, en comparación con las redes en crecimiento y maduras. De manera bastante lógica, es este último tipo de red la que tiene una mayor proporción de usuarios diseñadores y comunes frente a innovadores.

También pudieron contar el número de usuarios por tipo que se unían a la red o que la dejaban, observando una gran variabilidad temporal, que se puede ajustar por una ley de potencias del estilo:

y = a * xb,

tanto para los usuarios que llegan como para los que se marchan.

Luego tratan de ver como las pérdidas de usuarios podrían afectar a la red, para lo que definen dos tipos principales de pérdidas, las aleatorias y voluntarias. Las aleatorias son nodos que simplemente, cambian dentro de la red, pero que pueden volver a la misma, mientras que las voluntarias son personas que por cualquier motivo deciden dejar el grupo, llevándose su conocimiento con ellos.

Tras definir estos valores, hacen simulaciones en los que representan la pérdida de estos tres tipos de usuarios para las tres redes, inicial, en crecimiento y madura, con el propósito de observar cuán resistentes son.

Cuando la red es inicial, sus resultados demuestran que la misma es muy sensible a la pérdida de usuarios innovadores, que pueden hacer que la red incluso caiga si son demasiados. Por la misma razón, además de evitar que se vayan por la pérdida de conocimiento que supone para la propia red, es importante tratar de que diseminen rápidamente su conocimiento para que se transmita lo antes posible.

Para las redes en crecimiento la situación es parecida, en el sentido de que la pérdida de usuarios deliberada puede hacer que la red deje de funcionar. Sin embargo, las pérdidas aleatorias de usuarios no le afectan tanto, siendo una estructura muy resistente a ellas.

En las redes maduras, la influencia de los usuarios innovadores se incrementa, en el sentido de que cuando ellos desparecen, la red sufre mucho más que en los casos anteriores, también debido a que todos los usuarios comparten mucho más conocimiento que en otros estados de las redes. Por ello, en este tipo de redes es fundamental la distribución de tareas que logre una mayor implicación de los miembros de la misma.

El artículo termina con una serie de recomendaciones para que las comunidades de este estilo puedan crecer y prosperar según el estado en el que se encuentra la comunidad, que se pueden resumir en las siguientes ideas:

  • Para los gestores de la comunidad:
    1. para comunidades iniciales, lograr que los usuarios con conocimiento aumenten al interaccionar en la red e incrementar el número de usuarios.
    2. Para una comunidad en crecimiento, hay que establecer mecanismos de protección de los usuarios que saben, para evitar su pérdida.
    3. Si la comunidad es madura, se deben establecer mecanismos para estimular los usuarios diseñadores e innovadores, para tratar de evitar su pérdida.
  • Para los usuarios:
    1. Tratar de tener una gran diversidad de usuarios,
    2. animar a los innovadores y diseñadores a compartir conocimiento, para incrementar su número,
    3. animar a los usuarios normales a aceptar desafíos, con la idea de que se conviertan en usuarios experimentados.

El artículo se publicó en la revista Physica A, Statistial Mechanics and ist Applications, 15 February 2020, 122888.

(1) En la página de la asociación para el software libre explican (en inglés) estos cuatro principios: What is free software?

(2) Es mi traducción de la palabra «robustness» que emplean en el artículo. Se trata de la habilidad de cualquier sistema en red de resistir perturbaciones o falos, internos o externos, sin dejar de cumplir su función. La Wikipedia en inglés tiene un artículo decente sobre el tema: Robustness of complex networks.

(3) En realidad en inglés los llaman «free riders», pero me parece que se conserva mejor el sentido si se traduce pensando en vaqueros, entendidos estos como personas que cabalgan. Además, es mucho más divertido.

Uso de teoría de redes para comprender la dinámica del terrorismo.

En un artículo muy interesante, unos investigadores indios han empleado la teoría de redes para tratar de estudiar la dinámica del terrorismo en el mundo y sus cambios en el tiempo.

Comienzan en la introducción comentando que, en principio, la evidencia disponible apunta a que la cooperación entre seres humanos es la fuerza dominante, dado que nuestra historia como especie empezó formando pequeñas tribus para acabar con la formación de los actuales estados, unas organizaciones muy complicadas donde personas totalmente extrañas entre sí cooperan.

Al mismo tiempo, en toda nuestra historia actos violentos má o menos organizados han sido también grandes protagonistas; basta con recordar las dos últimas guerras mundiales o cualquiera de los múltiples conflictos violentos abiertos en el planeta. Y dentro de ellos, por supuesto, actos de terrorismo, aquí definidos como actos violentos realizados por grupos pequeños de personas con el objetivo de alcanzar un cambio en el estatus político, religioso o social imperante.

El artículo trata de usar la teoría de redes, muy empleada por físicos de formación para el estudio de instituciones humanas de cualquier tipo recientemente, para poder analizar las relaciones existentes entre grupos terroristas, sus víctimas y los potenciales vínculos entre ellos.

Como base de datos de relaciones entre terroristas y víctimas emplearon una base de datos denominada Base de datos de terrorismo global (Global Teroorism Database en inglés), que recoge de las noticias sobre ataques violentos sucedidos en el mundo que aparecen en prensa el número de víctimas, el grupo que inició el ataque terrorista y otra información relevante.

Tras construir el grupo de datos que emplean en el análisis, pueden mostrar gráficos tan impresionantes com la figura siguiente, donde observan la evolución temporal de los ataques en todo el mundo; el terrorismo de ETA es muy claro en la península ibérica.

Ataques teorristas en el mundo separados por décadas. Obsérvese como los ataques sufridos por África en los últimos años aparecen claramente marcados. Adaptado de la figura 1 del artículo citado.

Entre sus conclusiones, la primera que sacan es que casi todos los grupos terroristás están fuertemente ligados, de tal forma que un gran cluster de grupos o personas terroristas fuertemente unidos conforman el 8% de todos los nodos presentes.

Otra de las cosas que comprobaron es la resiliencia de la red de terrorismo a sus ataques, que resultó ser baja si lo que se se hace es extraer aquellos elementos más destacados de la red, frente a ataques aleatorios a la red. Esto tiene importancia a la hora de diseñar políticas de contención del terrorismo, porque implica que antes que un control global y aleatorio, para acabar con el terrorismo es preferible un control más selectivo de objetivos de alta importancia en la organización terorista: cabecillas de diversos grupos, altos mandos, etc.

Además, también presentan clara evidencia empírica de algo que todos los que vivimos actualmente tenemos claro de forma intuitiva: según avanzó el siglo XX y el XXI, la cantidad de grupos terroristas aumenta, con una mayor disparidad y cantidad de víctimas conforma avanza el tiempo. La consecuencia de esto y del resultado anterior es clara: cada vez resulta más difícil evitar o neutralizar las redes terroristas, pues para ello hay que descabezarlas y hay cada vez más cabezas.

Como eejmplo, citan el conflicto entre palestinos e israelíes, que hasta 1970 tenía dos actores principales: el estado israelí y el palestino (o lo que pudieran tener), para años después, con la incorporación de otros grupos como Hamás, complicar de manera clara la geometría de la red, como demuestra la figura siguiente:

Estructura de la red de terroristas y víctimas a lo largo de décadas para Israel (ISR, arriba) y Colombia (COL, abajo). Observen como la aparición de varios agentes en los actos de violencia en ambos casos complica la red. Por otra parte, se observa que en Israel un gran número de grupos (color violeta) atacan al mismo tipo de víctimas(color rosado), mientras que en Colombia la violencia está más repertida. Adaptado de la figura 5 del artículo citado.

Por otra parte, dentro de la geometría de a red se observa con frecuencia una estructura de estrella: o bien un mismo objetivo terrorista sufre ataques de varios grupos a la vez, o bien un grupo ataca varios blancos diferentes.

El artículo se puede encontrar en el siguiente enlace: Identifying the global terror hubs and vulnerable motifs using complex network dynamics