El software es la infraestructura que sostiene nuestra sociedad digital (¡por eso somos tan importantes!). Y la mayor parte de este software es de código libre o se basa en proyectos de software libre.

Esto parece (y de hecho es) una muy buena noticia pero no exenta de un gran riesgo: la gran mayoría de proyectos open tienen grandes problemas para sobrevivir y muchos acaban abandonados, con el impacto que esto implica para todos los proyectos que de ellos dependían. Como muchos otros de los “bienes de bien común”, el software libre sufre de lo que se conoce como la “tragedia de los comunes”: todo el mundo quiere beneficiarse de ese software pero nadie quiere preocuparse de mantenerlo. Vaya, que hay muchos más consumidores de software que participantes en su construcción.

La tragedia de los comunes, versión software libre: todo el mundo lo usa pero siempre esperan que sea otro quién lo mantenga y mejore Click To Tweet

Aunque ésta sea la triste (y muy humana) realidad, hay varias maneras de mitigar este riesgo de abandono de los proyectos open source:

pero a veces ni así ( los bots todavía no hacen milagros, el dinero no lo es todo e incluso cuando un proyecto hace el esfuerzo de ser transparente sigue necesitando de líderes).

¿Qué hacer cuando nada funciona? Lo mejor es dar el proyecto en adopción. Hacerlo de una forma explícita tiene dos ventajas principales:

  1. Deja bien claro que los propietarios del proyecto están buscando alguien que se lo quede y están dispuestos a ayudar en la transición. Para indicarlo, se puede usar un tag especial, añadir alguna keyword en el nombre o utilizar algún badge especial.
  2. Ayuda a los que buscan nuevas aventuras a descubrir proyectos que necesitan ayuda y que podrían beneficiarse de encontrar un padre adoptivo. Recordad que hay gente que por las razones que sean (ni que sea simplemente un tema de CV) está dispuesto a cargarse a la espalda un proyecto entero más que entrar poco a poco en una comunidad ya establecida y madura.

De hecho, esta idea no es nueva. En WordPress, el tag adopt-me se utiliza para clasificar plugins en adopción. Jenkins utiliza la etiqueta adopt-this-plugin  con el mismo fin. Y el npm graveyard  es un cementerio de paquetes npm que ya no están soportados y listos para adopción. Pero estos ejemplos son más la excepción que la regla. Necesitamos que más y más comunidades sigan este tipo de iniciativas. Y aún es más importante que, a base de más experiencias, entendamos mejor como conseguir que este tipo de transferencias de proyectos tengan éxito (por ejemplo, no tenemos datos sobre cuántos proyectos sobreviven largo tiempo con sus padres adoptivos).

También necesitamos herramientas que nos ayuden a detectar de forma más proactiva proyectos que estén en riesgo para así poder empezar a hablar de una posible adopción y los mecanismos legales y de transferencia de IP para facilitar al máximo las posibles adopciones.

Y para los que no quieren abandonar su proyecto pero necesitan desesperadamente una mano amiga, Code Shelter puede ser una solución temporal. Code Shelter es un colectivo de desarrolladores voluntarios que ayudan a mantener proyectos open source cuyos creadores no tienen tiempo para mantenerlos ellos mismos.

¿Qué os parece? ¿Alguna vez habéis pensado en adoptar un proyecto?

Imagen destacada por Agatha en Unsplash