La supervivencia de los proyectos Open Source

20/09/2022
Foto: Unsplash.

Como ya hemos comentado en artículos anteriores del blog, el software libre (Open Source Systems, OSS) propone un proceso de desarrollo colaborativo donde el código es accesible y cualquier persona que lo desee puede contribuir. En la actualidad, plataformas como GitHub ofrecen un lugar donde desarrollar proyectos OSS, donde tanto el código como las interacciones entre los desarrolladores (por ejemplo, las notificaciones de problemas o las propuestas de mejora) son accesibles libremente. Sin embargo, esta naturaleza tan característica del software libre se convierte muy frecuentemente en la principal fuente de problemas, ya que el abandono de contribuidores a los proyectos provocan serios problemas de sostenibilidad

De esta manera, cuando buscamos proyectos de software libre con los que trabajar, ya sea para echar una mano contribuyendo o para utilizarlos en nuestros propios proyectos, la sostenibilidad a largo plazo o, al menos, su nivel de actividad y evolución temporal, son factores fundamentales que hay que considerar para elegir el proyecto que mejor se ajuste a nuestros objetivos. Desafortunadamente, la tarea de explorar y seleccionar proyectos OSS no es una tarea fácil. Las técnicas actuales de filtrado y consulta ofrecidos por plataformas como GitHub no son suficientes para localizar de manera efectiva buenos proyectos. Esta tarea es aún más complicada cuando se trata de elegir proyectos que queremos asegurarnos de que siguen vivos y en desarrollo.

Como parte de las líneas de investigación del grupo SOM Research Lab del IN3 hemos llevado a cabo un estudio para analizar este problema mediante la aplicación del análisis de supervivencia a los proyectos de GitHub. El estudio, junto con sus resultados, lo publicamos en el artículo An Empirical Study on the Survival Rate of GitHub Projects el cual fue aceptado y presentado en la conferencia Mining Software Repositories 2022. A continuación resumimos los resultados y conclusiones del trabajo, pero os invitamos a leer el artículo para comprender mejor los detalles metodológicos.

En el análisis de supervivencia se presta especial atención a la evolución temporal de diferentes aspectos de un proyecto OSS, que nos permite comprender su probabilidad de supervivencia. De una forma más específica, en nuestro estudio realizamos un análisis cuantitativo de la supervivencia de los proyectos OSS a lo largo del tiempo, centrándonos en su tasa de supervivencia, la dinámica de evolución y la identificación de factores que se correlacionan positivamente con mayores tasas de supervivencia. 

Enfocamos nuestro análisis en cuatro ecosistemas de software en GitHub bien conocidos: paquetes para NodeJS (NPM), paquetes para la herramienta R, complementos de WordPress y paquetes del framework Laravel. Entre estos ecosistemas, estudiamos la actividad de un total de 1127 repositorios de GitHub creados en 2016 y observamos su evolución hasta octubre de 2021.

Nuestro estudio exploró dos principales vías de investigación, para las cuales os mostramos sus resultados a continuación.

¿Cómo cambia la actividad de un proyecto en GitHub con el tiempo? 

En primer lugar, analizamos los diferentes estados (o fases) que un proyecto puede transitar durante su vida útil (por ejemplo, períodos de tiempo con alta actividad y otros en los que el proyecto puede parecer muerto). Al estudiar la evolución de la actividad del proyecto, el objetivo es comprender mejor el dinamismo y los patrones de evolución comunes de la vida de los proyectos.

Nuestros resultados demostraron que la actividad de los proyectos es intermitente, es decir, pasa de estar vivo y con su código en desarrollo a estados muertos y sin actividad; pasando, curiosamente, más tiempo sin actividad (en promedio, aproximadamente el doble). Además, cuando en un proyecto el desarrollo del código se detiene y la actividad se centra en discusiones entre los contribuidores, es muy improbable que el proyecto recupere la actividad en el código. 

¿Cuál es la tasa de supervivencia de un proyecto de GitHub? 

En segundo lugar, enfocamos nuestro estudio en identificar proyectos que han muerto y cuándo han muerto (es decir, han sido abandonados y sin actividad proveniente de un contribuidor). Luego calculamos la tasa de supervivencia (es decir, proyectos muertos versus vivos), lo que nos permitirá comprender la capacidad de supervivencia de los proyectos en varias dimensiones.

Los resultados demuestran que más de la mitad de los proyectos analizados mueren en sus primeros cuatro años. De hecho, la probabilidad de supervivencia es inferior al 50% más allá del quinto año de vida.

Estos resultados nos ayudan a comprender la dinámica de los proyectos de software libre en plataformas como GitHub y nos permiten proponer posibles vías para intentar incrementar su supervivencia. Por ejemplo, la identificación de recomendaciones para mantener los proyectos vivos, la importancia de incorporar nuevos contribuidores o el impacto que pueden tener los bots en la supervivencia.

Finalmente, también creemos que estos resultados son útiles para crear conciencia sobre la volatilidad de Open Source proyectos y los riesgos asumidos por muchas organizaciones que generalmente confían en proyectos Open Source sin prestar atención a su salud ni a su sostenibilidad. 

(Visited 138 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
Deja un comentario