Crédito:Pixabay/CC0 Public Domain
Os sistemas de código aberto são um tipo de software que pode ser modificado e distribuído livremente. Os projetos de código aberto estão no centro da infraestrutura de nossa sociedade digital, mas são suscetíveis a problemas significativos de sustentabilidade porque muitas pessoas os usam, mas muito poucos contribuem para seu desenvolvimento.
Pesquisa de Javier Cánovas (membro da Faculdade de Ciência da Computação, Multimídia e Telecomunicações da UOC e pesquisador do grupo Laboratório de Pesquisa de Sistemas, Software e Modelos (SOM Research Lab) do Instituto Interdisciplinar de Internet IN3), juntamente com Jordi Cabot (pesquisa ICREA professor e líder de grupo), analisou o perfil dos usuários envolvidos nesses projetos. Os resultados mostram que a presença de colaboradores que não desenvolvem código é altamente significativa, e que também existe um certo grau de especialização entre essas pessoas. Segundo os pesquisadores, esses dados “desmistificam a ideia de que apenas os desenvolvedores conduzem projetos de código aberto” e podem ser usados para desenhar novas estratégias para melhorar a sustentabilidade de tais iniciativas.
Concluindo a imagem parcial dos projetos de código aberto A estrutura de projetos de código aberto depende fundamentalmente tanto da comunidade de contribuidores (que mantêm os projetos vivos) quanto deles colaborando de forma ativa e enriquecedora. No entanto, a grande maioria das pesquisas sobre essas comunidades se concentra no estudo dos perfis dos usuários responsáveis pela programação e outras tarefas técnicas, como revisão ou combinação de código. "Esta é apenas uma imagem parcial do que um projeto de código aberto realmente consiste e como ele avança, que geralmente é baseado em uma comunidade de usuários encarregados de uma ampla variedade de tarefas (como marketing, promoção e design), que também ajudam a redigir a documentação ou a participar nas discussões sobre a evolução futura do projeto", explicou Javier Cánovas.
Para obter uma compreensão mais profunda da dinâmica de colaboração em sistemas de código aberto, os pesquisadores analisaram os 100 projetos npm mais importantes (npm é o gerenciador de pacotes do Node.js, um dos servidores de aplicativos da web mais populares) encontrados no GitHub, um dos principais plataforma de codificação. "Este estudo nos permitiu verificar que tarefas não codificadas (não técnicas), como relatar um problema, sugerir uma melhoria, participar de uma discussão ou simplesmente reagir aos comentários de outras pessoas (por exemplo, com um emoji para comunicar aceitação de uma proposta), são uma característica comum em sistemas de código aberto. De fato, sua presença é altamente significativa, demonstrando seu envolvimento na vida do projeto", destacou Javier Cánovas.
Divisão de tarefas do projeto O estudo também investigou se os colaboradores do projeto costumam ter uma única tarefa ou se realizam várias tarefas e, portanto, as diferentes funções se sobrepõem. Os resultados mostram que há usuários que contribuem para o projeto apenas com atividades não técnicas, o que complementaria o trabalho das pessoas com foco em programação e desenvolvimento de código, que, ao contrário, teriam pouco envolvimento em outras tarefas.
Esses dados dão novas pistas para desenhar estratégias de integração e governança que facilitem a evolução desses usuários e uma melhor colaboração entre as diversas funções. "Na maioria dos projetos de código aberto, os esforços para atrair e trazer novos colaboradores são claramente direcionados aos desenvolvedores, mas isso significa que eles perdem a oportunidade de atrair outros tipos de perfis que poderiam ser mais fáceis de trazer e também ajudar no progresso e no longo prazo. sustentabilidade a longo prazo do projeto", observaram os autores do estudo.
"Na verdade", acrescentaram, "projetos interessados em atrair mais colaboradores técnicos também devem fazer um esforço adicional para ajudar alguns dos colaboradores não técnicos a participar do lado da programação, pois essa não é uma evolução natural".
Estudando a evolução da comunidade ao longo do tempo Esta pesquisa faz parte do trabalho do SOM Research Lab focado em otimizar e promover a colaboração dos contribuidores em sistemas de código aberto, que tem diferentes ramificações. “O aspecto mais significativo agora é considerar a dimensão temporal, ou seja, como o estado de um projeto e sua comunidade evolui ao longo do tempo”, disse o pesquisador.
Outras linhas de trabalho nesta área incluem estudar mecanismos para atrair novos colaboradores para projetos open source, explorar novas formas de visualizar as contribuições dos membros da comunidade ou propor soluções para definir regras (ou modelos) de governança comunitária.
A pesquisa foi publicada em
Empirical Software Engineering .