La sostenibilidad en sistemas Open Source

5 marzo, 2020

Nuestra sociedad está viviendo una profunda transformación digital que afecta a un gran número de actividades, procesos y modelos de negocio. En este contexto, el software es un elemento fundamental para impulsar la transformación digital y se ha convertido, de hecho, una parte crítica para la evolución de nuestra sociedad.

En este artículo describimos un problema muy importante que afecta a los sistemas software: la sostenibilidad. Introducimos brevemente los sistemas software afectados, el concepto de la sostenibilidad y, finalmente, nuestra experiencia al asistir a uno de los eventos más relevantes para abordar este problema.

Los sistemas Open Source

La mayoría del software es (o depende de forma importante de) de código abierto (Open Source Source, OSS, en inglés), que hace referencia a una forma particular de desarrollar sistemas informáticos basada en la colaboración libre y abierta. En la actualidad existen sistemas OSS que cubren la mayoría de las necesidades más populares y críticas, como por ejemplo sistemas operativos, compiladores, bases de datos o servidores Web. De esta forma, los sistemas OSS juegan un papel muy importante en la industria del software.

Según la Open Source Initiative, el proceso de creación de sistemas Open Source se define como un “método basado en el potencial de trabajo de revisión distribuido y en la transparencia… La promesa de los sistemas OSS es ofrecer sistemas de mejor calidad, fiabilidad, flexibilidad y menor coste”. Esta promesa se alcanza por medio de un desarrollo de software realizado de forma colaborativa, donde todos los miembros de la comunidad (desde propietarios del proyecto software a desarrolladores externos y usuarios finales) pueden participar.

El reto de la sostenibilidad en los sistemas Open Source

En teoría, el modelo de colaboración propuesto por Open Source debería ofrecer la capacidad de evolucionar los sistemas software en función de las necesidades de sus usuarios gracias a su alta participación en el propio proceso de desarrollo. Desafortunadamente, no es lo que suele ocurrir en la práctica. Muchos proyectos Open Source no hacen uso de este modelo colaborativo y ponen en riesgo su sostenibilidad.

De esta forma, es común observar cómo los miembros de una comunidad OSS que quieren participar en su desarrollo no disponen del soporte necesario para colaborar de forma eficiente. El resultado es que la comunidad (y el proyecto) tiene que enfrentarse a una situación parecida a lo que se denomina la tragedia de los comunes (tragedy of the commons, en inglés). Esto es, los miembros de una comunidad quieren utilizar un sistema Open Source y que éste evolucione, pero nadie hace nada para conseguirlo. Como resultado hay un desajuste muy pronunciado entre usuarios del sistema Open Source y desarrolladores que contribuyen a mantenerlos actualizado, lo que generalmente llega a provocar el abandono de su desarrollo.

Cómo abordar el problema de la sostenibilidad: SustainOSS

Hace aproximadamente cuatro años se creó SustainOSS, un evento donde un grupo muy variado de personas (que incluye desarrolladores de software, investigadores, representantes de instituciones de estandarización, etc.) se reúne para identificar y discutir los principales retos que presenta enfrentarse a la sostenibilidad de los sistemas OSS.

Tuve la oportunidad de asistir a la última edición de este evento, que se celebró a finales de enero de 2020. El evento tiene una duración de un día, durante el cual se organizan un conjunto de sesiones de trabajo, tanto en grupos como generales. Es un día de trabajo intenso con un objetivo muy claro: discutir acerca de la sostenibilidad en sistemas Open Source. Es especialmente destacable la verdadera intención abierta del evento, donde se invita a todos los asistentes a participar y a saber escuchar, sea cual sea el nivel técnico de la cuestión o la verdadera utilidad de ésta.

Mientras que en ediciones anteriores se identificó el problema de la sostenibilidad, la edición de este año estuvo más centrada en discutir qué dimensiones afectan a la sostenibilidad. Entre las dimensiones que se discutieron, me gustaría destacar algunas especialmente importantes y en las que estamos trabajando en SOM Research Lab.

La primera tiene que ver con la gobernanza de un sistema software. Una posible definición de gobernanza en el contexto de sistemas Open Source sería aquel conjunto de normas que regulan su comunidad, su desarrollo del proyecto y su dimensión legal. Aunque es generalmente aceptado que es necesario una definición clara de las reglas de gobernanza en un proyecto (p. ej., para saber quién puede contribuir, cuándo se publicará la siguiente versión del software o qué licencia protege al código), en la realidad casi nunca se definen.

En estudios previos de 2015 y 2018, comprobamos que de los 25 de los proyectos más populares de GitHub, menos del 5% definían explícitamente como tratar con las contribuciones de los miembros de la comunidad (p.ej., si una propuesta de cambio debía ser aceptada o rechazada). Esta situación afecta de forma de forma muy importante a la sostenibilidad en los sistemas OSS, ya que es prácticamente imposible conocer su modelo colaborativo. Además, comprobamos que la mayoría de ellos utilizaban un modelo de gobernanza denominado dictador benevolente de por vida (Benevolent Dictator For Life, BDFL, en inglés), un modelo donde todas las decisiones las toma el líder del proyecto OSS, sin tener en cuenta la opinión de los miembros de la comunidad. Estos resultados refuerzan la idea de que es necesario que los proyectos OSS sean más transparentes respecto a su gobernanza, permitiendo a otros miembros de la comunidad conocer los mecanismos de toma de decisiones y, posiblemente, formar parte de ellos.

Otros aspectos importantes que discutimos tuvieron que ver con la elaboración de documentación o la identificación de perfiles de miembros en las comunidades de Open Source, aspectos que también están relacionados con la gobernanza ya que su desarrollo facilita una comprensión mayor de las normas que rigen la comunidad.

Otra dimensión de especial relevancia es la identificación de métricas para sostenibilidad. Al ser un tema especialmente discutido a nivel conceptual, todavía es necesario un esfuerzo para identificar qué aspectos de los sistemas Open Source han de observarse (y medirse) para poder concluir que un sistema es sostenible. Hace falta un marco de trabajo formal que defina qué dimensiones han de medirse, por ejemplo, tamaño de la comunidad y responsables principales; tiempo de respuesta a preguntas y quejas; o evaluación de sistemas de votación para tomar decisiones (comprobando si son suficientemente democráticos).

También se trataron otras dimensiones relevantes, como métodos para fomentar la participación en comunidades Open Source, estudio de modelos de licencias o cuestiones éticas y de género, entre otros.

Como resultado del evento, se crearon diferentes grupos de trabajo en base a algunas de las dimensiones discutidas. Desde nuestro grupo de investigación, lideramos el grupo de trabajo relativo a la identificación de modelos de gobernanza y los pasos a realizar para alcanzarlos. Los resultados de estos grupos de trabajo se irán publicando a lo largo de los próximos meses. Esperamos poder contaros nuestros avances.

(Visited 116 times, 1 visits today)
Autor / Autora
Doctor en Ingeniería Informática por la Universidad de Murcia, profesor agregado de los Estudios de Informática, Multimedia y Telecomunicación, e investigador del grupo SOM Research Lab en el Internet Interdisciplinary Institute, ambos de la Universitat Oberta de Catalunya.
Comentarios
Alejandro Jimenez castro10 marzo, 2020 a las 6:53 pm

El avance que se esta dando en la sociedad con la digitalización es impresionante la existencia de software open source se agradece en este entorno

Responder
Deja un comentario