Crédito:Pixabay/CC0 Dominio público
Los sistemas de código abierto son un tipo de software que se puede modificar y distribuir libremente. Los proyectos de código abierto están en el corazón de la infraestructura de nuestra sociedad digital, pero son susceptibles a importantes problemas de sostenibilidad porque muchas personas los usan pero muy pocas contribuyen a su desarrollo.
Investigación de Javier Cánovas (miembro de los Estudios de Informática, Multimedia y Telecomunicación de la UOC e investigador del grupo de Laboratorio de Investigación de Sistemas, Software y Modelos (SOM Research Lab) del Instituto Interdisciplinar Internet IN3), junto con Jordi Cabot (investigador ICREA profesor y líder de grupo), ha analizado los perfiles de los usuarios implicados en estos proyectos. Los resultados muestran que la presencia de colaboradores que no desarrollan código es muy significativa, y que también existe cierto grado de especialización entre estas personas. Según los investigadores, estos datos "desmitifican la idea de que solo los desarrolladores impulsan proyectos de código abierto" y podrían usarse para diseñar nuevas estrategias para mejorar la sostenibilidad de este tipo de iniciativas.
Completando la imagen parcial de los proyectos de código abierto
La estructura de los proyectos de código abierto depende fundamentalmente tanto de la comunidad de colaboradores (que mantienen vivos los proyectos) como de que estos colaboren de forma activa y enriquecedora. Sin embargo, la gran mayoría de las investigaciones sobre estas comunidades se centran en estudiar los perfiles de los usuarios que se encargan de la programación y otras tareas técnicas, como revisar o combinar código. "Esta es solo una imagen parcial de en qué consiste realmente un proyecto de código abierto y cómo avanza, que generalmente se basa en una comunidad de usuarios a cargo de una amplia variedad de tareas (como marketing, promoción y diseño), quienes también colaboran en la redacción de la documentación o participan en los debates sobre la evolución futura del proyecto”, explica Javier Cánovas.
Para obtener una comprensión más profunda de la dinámica de colaboración en los sistemas de código abierto, los investigadores analizaron los 100 proyectos de npm más importantes (npm es el administrador de paquetes para Node.js, uno de los servidores de aplicaciones web más populares) que se encuentran en GitHub, una red social líder. plataforma de codificación “Este estudio nos ha permitido comprobar que las tareas no codificadas (no técnicas), como informar de un problema, sugerir una mejora, participar en una discusión o simplemente reaccionar a los comentarios de otras personas (por ejemplo, con un emoji para comunicarse aceptación de una propuesta), son una característica común en los sistemas de código abierto. De hecho, su presencia es muy significativa, demostrando su implicación en la vida del proyecto”, apunta Javier Cánovas.
División de tareas del proyecto
El estudio también investigó si los colaboradores del proyecto suelen tener una sola tarea o si realizan varias tareas y, por lo tanto, los diferentes roles se superponen. Los resultados muestran que hay usuarios que solo contribuyen al proyecto con actividades no técnicas, lo que complementaría el trabajo de las personas centradas en la programación y desarrollo de código, quienes, en cambio, tendrían poca implicación en otras tareas.
Estos datos dan nuevas pistas para diseñar estrategias de onboarding y gobernanza que faciliten la evolución de estos usuarios y una mejor colaboración entre los distintos roles. "En la mayoría de los proyectos de código abierto, los esfuerzos para atraer y traer nuevos colaboradores están claramente dirigidos a los desarrolladores, pero esto significa que pierden la oportunidad de atraer otro tipo de perfiles que podrían ser más fáciles de traer y también podrían ayudar al progreso y largo plazo". a largo plazo la sostenibilidad del proyecto", señalaron los autores del estudio.
"De hecho", agregaron, "los proyectos interesados en atraer a más colaboradores técnicos también deberían hacer un esfuerzo adicional para ayudar a algunos de los colaboradores no técnicos a participar en la programación, ya que esto no es una evolución natural".
Estudiar la evolución de la comunidad a lo largo del tiempo
Esta investigación es parte del trabajo del SOM Research Lab centrado en optimizar y promover la colaboración de los contribuyentes en sistemas de código abierto, lo que tiene diferentes ramificaciones. "El aspecto más significativo en este momento es considerar la dimensión temporal, es decir, cómo evoluciona el estado de un proyecto y su comunidad con el tiempo", dijo el investigador.
Otras líneas de trabajo en esta área incluyen estudiar mecanismos para atraer nuevos colaboradores a proyectos de código abierto, explorar nuevas formas de visualizar las contribuciones de los miembros de la comunidad o proponer soluciones para definir reglas (o modelos) de gobernanza comunitaria.
La investigación fue publicada en Empirical Software Engineering .