Un estudio de la UOC describe la importancia de los contribuyentes que no desarrollan código en la sostenibilidad de este tipo de proyectos. Las comunidades de desarrollo de software abordan una gran variedad de tareas más allá de las técnicas.
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.
Artículo relacionado. Cánovas Izquierdo, J. L., Cabot, J. On the analysis of non-coding roles in open source development. Empirical Software Engineering 27, 18 (2022). https://doi.org/10.1007/s10664-021-10061-x