Towards requirements for merge conflict avoidance strategies
Merge conflicts often occur when developers change the same code artifacts. Such conflicts might be frequent in practice, and resolving them might be costly and is an errorprone activity. To minimize these problems by reducing merge conflicts, it is important to better understand how merge conflicts...
Main Author: | DIAS, Klissiomara Lopes |
---|---|
Other Authors: | BORBA, Paulo Henrique Monteiro |
Format: | doctoralThesis |
Language: | por |
Published: |
Universidade Federal de Pernambuco
2020
|
Subjects: | |
Online Access: |
https://repositorio.ufpe.br/handle/123456789/37664 |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
id |
ir-123456789-37664 |
---|---|
recordtype |
dspace |
spelling |
ir-123456789-376642020-08-18T05:11:14Z Towards requirements for merge conflict avoidance strategies DIAS, Klissiomara Lopes BORBA, Paulo Henrique Monteiro http://lattes.cnpq.br/2717200348115740 http://lattes.cnpq.br/9395715443254344 Engenharia de software Desenvolvimento colaborativo Merge conflicts often occur when developers change the same code artifacts. Such conflicts might be frequent in practice, and resolving them might be costly and is an errorprone activity. To minimize these problems by reducing merge conflicts, it is important to better understand how merge conflicts are affected by technical and organizational factors, so we can derive a set of factors development teams need to pay attention to avoid conflicts. With that aim, we conducted two empirical studies. First, we quantitatively investigate seven factors related to modularity, size, and timing of developers’ contributions by reproducing and analyzing 73504 merge scenarios in GitHub repositories of Ruby and Python MVC projects. Then, to qualitatively evaluate our findings and explore other ways to avoid merge conflicts, we conducted 16 exploratory semi-structured interviews with practitioners across 13 companies, among them 4 global companies. Additionally, we also investigate how developers could be assisted in conflict avoidance by exploring the usefulness of a hypothetical tool for alerting merge conflict risk based on the factors we investigate. We bring quantitative evidence of 6 out of 7 modularity, size, and timing factors that are more likely associated with merge conflicts. We found most interviewees perceive an association between merge conflict occurrence and each factor we investigate in the previous study. Overall, we new 15 merge conflict factors considered important by the interviewees and 11 practices they use to avoid conflicts. Additionally, interviewees say that most merge conflicts are straightforward; exceptions, to mention a few, involve conflicts caused by global refactorings, when changes are related in non-trivial ways, demanding semantic understanding of the changes, and depending on the project phase. Finally, most interviewees consider a tool for alerting merge conflict risk useful for distinct purposes (e.g., to help the integrator or DevOps to early monitoring conflict issues ) and give us insight into contexts in which this type of tool would not apply (e.g., projects that follow strict policies to avoid conflicts). Our results bring quantitative and qualitative evidence related to merge conflict reduction hypotheses and advice raised but not empirically evaluated by previous works, and we also go further by exploring new hypotheses related to contribution modularity and conclusion delay. By finding 15 new merge conflict factors in relation to our previous quantitative study and understanding how interviewees perceive their importance, we derive a set of more robust requirements for the development of more accurate conflict prediction models. Such models could then be used as a basis of project management and assistive tools that could help teams better deal with merge conflicts. Development teams can benefit from these results by improving the recommendations and guidelines to merge conflict avoidance. We also provide ideas on the usefulness and desirable features for the development of a tool for alerting conflict risk. CNPq Conflitos de integração frequentemente ocorrem quando os desenvolvedores mudam os mesmos artefatos de código. Tais conflitos podem ser comuns na prática, e resolvê-los pode ser uma atividade custosa e propensa a erros. Para minimizar esses problemas reduzindo os conflitos de integração, é importante entender melhor como os conflitos de integração são afetados por fatores técnicos e organizacionais. Dessa forma, poderemos derivar um conjunto de fatores que as equipes de desenvolvimento poderão ficar atentas para evitar conflitos. Com esse objetivo, investigamos sete fatores relacionados à modularidade, tamanho e tempo das contribuições dos desenvolvedores. Para isso conduzimos dois estudos empíricos. Primeiro, reproduzimos e analisamos 73504 cenários de integração de código em repositórios GitHub de projetos Ruby e Python desenvolvidos usando o framework MVC. Segundo, para avaliar qualitativamente nossos resultados e explorar outras formas de evitar conflitos de integração, realizamos 16 entrevistas exploratórias semiestruturadas com profissionais de 13 empresas, entre elas 4 empresas globais. Além disso, também investigamos como os desenvolvedores poderiam ser assistidos na prevenção de conflitos, explorando a utilidade de uma ferramenta hipotética para alertar o risco de conflito integração com base nos fatores que investigamos. Nossos resultados trazem evidências quantitativas de que 6 dentre os 7 fatores de modularidade, tamanho e tempo que investigamos estão mais associados a conflitos de integração de código. Observamos que a maioria dos entrevistados percebe uma associação entre a ocorrência de conflitos de integração e cada fator que investigamos no estudo anterior. Ao todo, observamos 15 novos fatores de conflitos de integração que são considerados importantes pelos entrevistados e 11 práticas que eles sutilizam para evitar conflitos. Além disso, os entrevistados dizem que a maioria dos conflitos integração são simples para resolver, mas existem exceções, tais como quando envolvem conflitos causados por refatorações globais. Também observamos que a maioria dos entrevistados considera uma ferramenta para alerta do risco de conflito de integração útil, por exemplo, para facilitar o trabalho do integrador ou DevOps no monitoramento precoce de potenciais problemas de integração do código. Contudo, há contextos onde esse tipo de ferramenta não se aplicaria, por exemplo em projetos que seguem políticas rigorosas para evitar conflitos. Nossos resultados trazem evidências relacionadas à hipóteses e recomendações para a redução de conflitos levantados, mas não empiricamente avaliados por trabalhos anteriores, e também vamos além explorando novas hipóteses relacionadas à modularidade da contribuição e atraso de conclusão. Ao encontrar 15 novos fatores de conflito de mesclagem em relação ao estudo quantitativo realizado e entender como os entrevistados percebem sua importância, derivamos um conjunto de requisitos mais robusto para o desenvolvimento de modelos de previsão de conflitos mais precisos. Tais modelos poderiam então ser usados como base para o gerenciamento de projetos e ferramentas assistivas que poderia ajudar as equipes a lidar melhor com conflitos de fusão. As equipes de desenvolvimento poderiam se beneficiar desses resultados, melhorando as recomendações e diretrizes para evitar conflitos de integração. Também fornecemos ideias sobre a utilidade e características desejáveis para o desenvolvimento de uma ferramenta para alertar o risco de conflito. 2020-08-17T17:04:19Z 2020-08-17T17:04:19Z 2020-02-20 doctoralThesis DIAS, Klissiomara Lopes. Towards Requirements for Merge Conflict Avoidance Strategies. 2020. Tese (Doutorado em Ciência da Computação) - Universidade Federal de Pernambuco, Recife, 2020. https://repositorio.ufpe.br/handle/123456789/37664 por openAccess Attribution-NonCommercial-NoDerivs 3.0 Brazil http://creativecommons.org/licenses/by-nc-nd/3.0/br/ application/pdf Universidade Federal de Pernambuco UFPE Brasil Programa de Pos Graduacao em Ciencia da Computacao |
institution |
REPOSITORIO UFPE |
collection |
REPOSITORIO UFPE |
language |
por |
topic |
Engenharia de software Desenvolvimento colaborativo |
spellingShingle |
Engenharia de software Desenvolvimento colaborativo DIAS, Klissiomara Lopes Towards requirements for merge conflict avoidance strategies |
description |
Merge conflicts often occur when developers change the same code artifacts. Such conflicts might be frequent in practice, and resolving them might be costly and is an errorprone activity. To minimize these problems by reducing merge conflicts, it is important to better understand how merge conflicts are affected by technical and organizational factors, so we can derive a set of factors development teams need to pay attention to avoid conflicts. With that aim, we conducted two empirical studies. First, we quantitatively investigate seven factors related to modularity, size, and timing of developers’ contributions by reproducing and analyzing 73504 merge scenarios in GitHub repositories of Ruby and Python MVC projects. Then, to qualitatively evaluate our findings and explore other ways to avoid merge conflicts, we conducted 16 exploratory semi-structured interviews with practitioners across 13 companies, among them 4 global companies. Additionally, we also investigate how developers could be assisted in conflict avoidance by exploring the usefulness of a hypothetical tool for alerting merge conflict risk based on the factors we investigate. We bring quantitative evidence of 6 out of 7 modularity, size, and timing factors that are more likely associated with merge conflicts. We found most interviewees perceive an association between merge conflict occurrence and each factor we investigate in the previous study. Overall, we new 15 merge conflict factors considered important by the interviewees and 11 practices they use to avoid conflicts. Additionally, interviewees say that most merge conflicts are straightforward; exceptions, to mention a few, involve conflicts caused by global refactorings, when changes are related in non-trivial ways, demanding semantic understanding of the changes, and depending on the project phase. Finally, most interviewees consider a tool for alerting merge conflict risk useful for distinct purposes (e.g., to help the integrator or DevOps to early monitoring conflict issues ) and give us insight into contexts in which this type of tool would not apply (e.g., projects that follow strict policies to avoid conflicts). Our results bring quantitative and qualitative evidence related to merge conflict reduction hypotheses and advice raised but not empirically evaluated by previous works, and we also go further by exploring new hypotheses related to contribution modularity and conclusion delay. By finding 15 new merge conflict factors in relation to our previous quantitative study and understanding how interviewees perceive their importance, we derive a set of more robust requirements for the development of more accurate conflict prediction models. Such models could then be used as a basis of project management and assistive tools that could help teams better deal with merge conflicts. Development teams can benefit from these results by improving the recommendations and guidelines to merge conflict avoidance. We also provide ideas on the usefulness and desirable features for the development of a tool for alerting conflict risk. |
author2 |
BORBA, Paulo Henrique Monteiro |
format |
doctoralThesis |
author |
DIAS, Klissiomara Lopes |
author_sort |
DIAS, Klissiomara Lopes |
title |
Towards requirements for merge conflict avoidance strategies |
title_short |
Towards requirements for merge conflict avoidance strategies |
title_full |
Towards requirements for merge conflict avoidance strategies |
title_fullStr |
Towards requirements for merge conflict avoidance strategies |
title_full_unstemmed |
Towards requirements for merge conflict avoidance strategies |
title_sort |
towards requirements for merge conflict avoidance strategies |
publisher |
Universidade Federal de Pernambuco |
publishDate |
2020 |
url |
https://repositorio.ufpe.br/handle/123456789/37664 |
_version_ |
1680625266819334144 |
score |
13.657419 |