An Investigation of the Effects of Merge Conflicts on Collaborative Software Development
Merge conflicts have long plagued software development. With larger and more dispersed teams comes greater risk of developers working on the same code at the same time. While merge conflicts are known to be painful, their exact impact on software is still largely unknown. Are merge conflicts an isolated problem, or are they linked to bigger issues in the code base? This thesis tries to answer this. The first 2 parts of this thesis look at the correlation between code smells, bugs, and merge conflicts. Our results show that code that is involved in merge conflicts most frequently is more likely to have bugs, or exhibit code smells.
To better understand where tool support is lacking, in the 3rd part, we investigated how developers resolve merge conflicts. We used a sensemaking approach to analyze qualitative data collected in situ, where participants were working on production software. We found different patterns developers use when resolving merge conflicts, and different areas where they struggled. Our results show that merge conflicts have a real impact on software quality and also show potential avenues for tool improvements.
Finally, we propose a way to predict the difficulty of a merge conflict.This can allow developers to plan ahead and set aside time and resources to handle the merge conflict resolution.
Co Advisor: Carlos Jensen
Co Advisor: Anita Sarma
Committee: Alex Groce
Committee: Danny Dig
GCR: Brett Tyler
Tuesday, July 7 at 11:00am to 1:00pmVirtual Event