Finding collaborations based on co-changed files

dc.creatorKattiana Fernandes Constantino
dc.date.accessioned2024-02-15T03:03:30Z
dc.date.accessioned2025-09-08T23:21:02Z
dc.date.available2024-02-15T03:03:30Z
dc.date.issued2022-07-15
dc.description.abstractSoftware developers must collaborate at all stages of the software life-cycle to create successful software systems. However, for large projects with hundreds of dynamic developers, such as several successful open source projects, it can be very complex to find developers with the same affinity and thus gain suitable collaborations and new insights. Besides, in this project context, resources and efforts may be wasted, discouraging many developers from staying. Therefore, this doctoral thesis proposes an investigation of collaborative development based on similar code interests and tool-supported strategies to help developers find suitable collaborators. We performed five empirical studies: (1) we investigated how collaborations happen in open-source software development projects through an interview study. Some main findings from the interview study include that collaboration transcends coding and includes documentation and management tasks; (2) we designed and performed a survey study to investigate how open developers are to collaborate with others. Some analysis from the survey study revealed that most participants (85%) prefer to work collaboratively with the core team members and 30% prefer to work in independent tasks; (3) we provided two strategies based on co-changed files and a prototype tool, named CoopFinder, that support them; (4) we evaluated these two strategies to motivate collaborations based on changes of similar code of point of view of who receives the developer recommendations. As a result, the acceptance rates for them were greater than 65%. The joint strategy presented the best acceptance rate (81%); and, (5) we also evaluated these strategies and their supporting tool with GitHub users and non-GitHub users. About 86% of the participants answered that they could use or recommend this tool. Based on the results obtained in this doctoral thesis, it is possible that developers and maintainers can acquire the knowledge to foster collaborations in the project and, consequently, avoid emptying it.
dc.description.sponsorshipCAPES - Coordenação de Aperfeiçoamento de Pessoal de Nível Superior
dc.identifier.urihttps://hdl.handle.net/1843/63962
dc.languageeng
dc.publisherUniversidade Federal de Minas Gerais
dc.rightsAcesso Aberto
dc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/pt/
dc.subjectComputação – Teses
dc.subjectEngenharia de software – Teses
dc.subjectSistemas abertos (Computadores) – Teses
dc.subjectSoftware – Desenvolvimento – Sistemas colaborativos - Teses
dc.subject.otherOpen-source software projects
dc.subject.otherCollaborative software development
dc.subject.otherDistributed collaboration
dc.subject.otherDeveloper recommendation
dc.titleFinding collaborations based on co-changed files
dc.title.alternativeLocalizando colaborações com base em alteração de arquivos
dc.typeTese de doutorado
local.contributor.advisor1Eduardo Magno Lages Figueiredo
local.contributor.advisor1Latteshttp://lattes.cnpq.br/1265706528850746
local.contributor.referee1Raquel Oliveira Prates
local.contributor.referee1Marco Túlio de Oliveira Valente
local.contributor.referee1Igor Fábio Steinmacher
local.contributor.referee1Marcelo de Almeida Maia
local.creator.Latteshttp://lattes.cnpq.br/3081878651653793
local.description.resumoDesenvolvedores devem colaborar entre si em todos os estágios do ciclo de vida do software para criar sistemas bem-sucedidos. No entanto, em grandes projetos com centenas de desenvolvedores, como os projetos de código aberto, pode ser muito complexo encontrar desenvolvedores com a mesma afinidade e, assim, obter boas colaborações e novos insights. Além disso, nesse contexto de projetos, pode haver desperdício de recursos e esforços, o que desencoraja a permanência de muitos desenvolvedores. Portanto, esta tese de doutorado propõe uma investigação sobre o desenvolvimento colaborativo baseadas em interesses similares de código. Foram realizados cinco estudos empíricos, nos quais: (1) investigamos como as colaborações acontecem em desenvolvimento de projetos de código aberto. Algumas das principais conclusões do estudo da entrevista incluem que a colaboração transcende a codificação e inclui tarefas de documentação e de gerenciamento; (2) investigamos quão abertos os desenvolvedores estão para colaborarem uns para com os outros. Algumas análises do estudo de pesquisa revelaram que a maioria dos participantes (85%) prefere trabalhar em colaboração com a equipe principal e 30% prefere trabalhar em tarefas independentes; (3) propomos duas estratégias de recomendação de desenvolvedores e um protótipo para suportá-las; (4) avaliamos as duas estratégias de recomendação de desenvolvedores, sob o ponto de vista de quem recebe a recomendação; as taxas de aceitação para eles foram superiores a 65%. Quando juntamos as estratégias, a taxa de aceitação foi de 81%. Finalmente, (5) também avaliamos o suporte ferramental com usuários e não usuários do GitHub. Baseado nos resultados obtidos nesta tese de doutorado, é possível que os desenvolvedores e mantenedores possam adquirir o conhecimento para fomentar as colaborações no projeto e consequentemente, evitar o esvaziamento do mesmo.
local.identifier.orcidhttps://orcid.org/0000-0003-4511-7504
local.publisher.countryBrasil
local.publisher.departmentICX - DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
local.publisher.initialsUFMG
local.publisher.programPrograma de Pós-Graduação em Ciência da Computação

Arquivos

Pacote original

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
FindingCollaborating_TeseDeDoutorado_versaoFinal_ppgccufmg.pdf
Tamanho:
2.61 MB
Formato:
Adobe Portable Document Format

Licença do pacote

Agora exibindo 1 - 1 de 1
Carregando...
Imagem de Miniatura
Nome:
license.txt
Tamanho:
2.07 KB
Formato:
Plain Text
Descrição: