Últimamente nos hemos animado a abordar en este blog el tema del desarrollo de software, pero todavía nos habíamos quedado sin tratar el candente asunto del código abierto, ese que se crea, modifica y distribuye fuera del ámbito industrial, en una especie de comunidad sin ánimo de lucro, al más puro estilo copy left.
La verdad es que, a pesar de las controversias (hola Richard Stallman), si hay algo en el mundo que se mueva de esta forma altruista -sin contar las causas solidarias y ONG`s- y que no genere demasiados gestos torcidos (diría que más bien al contrario) es el mundo del software libre. Porque como hablemos de la propiedad intelectual en la música, el cine, etc. (el pirateo) ya no suena tan idílico sino que más bien pasamos al mismísimo infierno; aun reconociendo que es cierto que son temas muy distintos.
Sin embargo, en todos los sitios cuecen habas. Y ya que hablamos de un vegetal, pongamos como metáfora otro ámbito liberal en general bien visto, como es el de los huertos urbanos comunitarios. ¿Qué pasaría si alguien se agenciase los tomates, los pepinos y las lechugas de estos espacios sin ayudar en su cultivo ni aportar nada? Pues eso mismo creen algunos que ocurre con el código abierto: Que muchos los usan pero pocos lo desarrollan, y eso pone en peligro la sostenibilidad de ese sistema.
Pero lo cierto es que un estudio viene a desmentir que eso sea así, ya que las formas de contribuir a la creación de software libre van más allá de estar sentado frente a un teclado en un cuarto oscuro y enclaustrado. Sobre dicho estudio trata el artículo con el que os vamos a dejar a continuación. Esperemos que os inspire si estáis interesados en el tema, y que con ello comprobéis como este mundo no es una comuna hippie ni nada por el estilo… Porque si alguna vez os topáis con alguien que sí presuma de esa imagen guay y mega – altruista, tened cuidado de que no sea como aquel programador de Google que iba de falso colaborador filántropo que luego robó la idea para crear Google Earth… Es un poco como lo de los peces gordos del negocio del fútbol a los que estamos escuchando últimamente como mesías de la salvación de las miserias del tercer mundo… Bueno, venga, que me voy por las ramas y me caliento...
Software para todo el mundo: ¿cómo trabajan las comunidades de código abierto?
Los sistemas de código abierto u open source son un tipo de software que puede ser modificado y distribuido libremente. Estos proyectos abiertos están en el corazón de la infraestructura de nuestra sociedad digital, pero pueden llegar a sufrir importantes problemas de sostenibilidad porque mucha gente los utiliza, pero muy pocos contribuyen a su desarrollo.
Una investigación de Javier Cánovas, profesor de los Estudios de Informática, Multimedia y Telecomunicación de la Universitat Oberta de Catalunya (UOC) e investigador del grupo Systems, Software and Models Research Lab (SOM Research Lab), del Internet Interdisciplinary Institute (IN3), junto con el profesor de investigación ICREA y líder del mismo grupo Jordi Cabot, ha analizado los perfiles de los usuarios involucrados en estos proyectos. Los resultados demuestran que la presencia de contribuidores que no desarrollan código es muy relevante y que, además, existe una cierta especialización entre estas personas. Según los investigadores, estos datos "desmitifican la idea de que solo los desarrolladores dirigen proyectos de código abierto" y podrían servir para diseñar nuevas estrategias que mejoraran la sostenibilidad de estas iniciativas.
Completar la visión parcial sobre los proyectos de código abierto
La estructura de los proyectos de código abierto depende fundamentalmente de la comunidad de contribuidores, que son los que los mantienen vivos, y de que haya una colaboración activa y enriquecedora entre ellos. Aun así, la gran mayoría de las investigaciones sobre estas comunidades se centran en el estudio de perfiles de usuarios encargados de programar y hacerse cargo de otras tareas técnicas, como revisar o combinar código. "Esta es solo una visión parcial de lo que realmente constituye y hace avanzar un proyecto de código abierto, que generalmente se basa en una comunidad de usuarios que se encargan de una gran variedad de tareas (como marketing, promoción y diseño) y que también ayudan a redactar documentación o participan en las discusiones sobre la evolución futura del proyecto", explica Javier Cánovas.
Para profundizar en el conocimiento de las dinámicas de colaboración en los sistemas de código abierto, los investigadores analizaron los cien proyectos NPM más importantes (NPM es el gestor de paquetes de Node.js, uno de los servidores de aplicaciones web más populares) localizados en GitHub, una de las plataformas de codificación social más relevantes. "Con este estudio hemos podido comprobar que tareas no relacionadas con código (no técnicas) como reportar un problema, recomendar un cambio de mejora, participar en una discusión o simplemente reaccionar a comentarios de otros (por ejemplo, con un emoji para comunicar la aceptación de una propuesta) están muy presentes en los sistemas de código abierto. De hecho, su presencia es muy relevante, lo que demuestra la implicación en la vida del proyecto", subraya Javier Cánovas.
División de tareas en los proyectos
El trabajo también investigó si normalmente los contribuidores del proyecto tienen una única tarea o hacen diversas y, por lo tanto, se superponen los diferentes roles. Los resultados muestran que hay usuarios que solo colaboran en el proyecto con actividades no técnicas, que complementarían el trabajo de las personas dedicadas a la programación y el desarrollo de código, las cuales, por el contrario, tendrían poca implicación en otras tareas.
Estos datos dan nuevas claves para diseñar estrategias de incorporación y gobernanza que faciliten la evolución de estos usuarios y una mejor colaboración entre los diferentes roles. "En la mayoría de los proyectos de código abierto, los esfuerzos para atraer e incorporar a nuevos colaboradores se dirigen claramente a los desarrolladores, pero así se pierde la oportunidad de atraer a otros tipos de perfiles que podrían ser más fáciles de incorporar y que también ayudan al avance y la sostenibilidad del proyecto a largo plazo", destacan los autores.
"De hecho, —continúan— los proyectos interesados en atraer a más contribuidores técnicos también tendrían que hacer un esfuerzo adicional para ayudar a algunos de los colaboradores no técnicos a participar en la parte de programación, puesto que esta no es una evolución natural".
Estudiar la evolución temporal de la comunidad
Esta investigación se enmarca en la línea de trabajo del SOM Research Lab centrada en la optimización y la promoción de la colaboración de los contribuidores en los sistemas de código abierto, que tiene diferentes ramificaciones. "Lo más relevante ahora mismo es considerar la dimensión temporal, es decir, cómo el estado de un proyecto y su comunidad evolucionan a lo largo del tiempo", destaca el investigador.
Otras vías de trabajo en esta área incluyen el estudio de los mecanismos para atraer a nuevos colaboradores a los proyectos de código abierto, explorar nuevas maneras de visualizar las contribuciones de los miembros de la comunidad o proponer soluciones para definir las normas (o modelos) de gobernanza de la comunidad.