Developers from different teams or organizations, co-located or distributed, making changes to the same source code files or areas, through pull requests that are active in the same time period, is an essential part of developing complex software systems. With such a dynamically changing environment spanning several boundaries, geographic and organizational, there is little awareness about the changes that are flowing in through other active pull requests in the system leading to complex merge conflicts, hard-to-detect logical bugs or duplication of work and wasted developer productivity. In order to address this problem, we studied changes produced in eight very large repositories, in Microsoft to understand the extent of concurrent edits and their relation to subsequent bugs and bug fixes. Motivated by our findings, we developed a system called ConE (Concurrent Edit Detector) that proactively detects concurrent edits to help mitigate the problems caused by them. We present the results of ConE's deployment through early intervention techniques such as pull request notifications, by which ConE facilitates better communication among all the stakeholders participating in collaborative software development, helping avoid future problems.
翻译:不同团队或组织的开发者,在同一地点或分布处,通过在同一期间活跃的拉动请求,改变同一源代码文件或领域,是开发复杂软件系统的一个基本部分。由于这种动态变化的环境跨越若干边界、地理和组织,对系统其他积极拉动请求产生的变化知之甚少,这些请求导致复杂的合并冲突、难以检测的逻辑错误或重复工作,以及浪费开发者生产力。为了解决这一问题,我们研究了8个非常庞大的存储库(微软)产生的变化,以了解同时编辑的程度及其与随后的错误和错误修正的关系。我们根据我们的调查结果,开发了一个称为ConE(Convent Edit 探测器)的系统,该系统积极主动地检测同时进行编辑,以帮助缓解这些变化造成的问题。我们介绍了ConE部署的结果,通过早期干预技术,例如拉动请求通知,ConE便于所有参与协作软件开发的利益攸关方之间更好地沟通,帮助避免未来问题。