论文标题

功能切换的采用如何与开源项目中的分支合并和缺陷相关联?

How the adoption of feature toggles correlates with branch merges and defects in open-source projects?

论文作者

Prutchi, Eduardo Smil, Junior, Heleno de Souza Campos, Murta, Leonardo Gresta Paulino

论文摘要

上下文:分支在版本控制中已被广泛采用,以实现协作软件开发。但是,分支机构引起的隔离可能会对即将到来的合并过程构成挑战。最近,Google,Microsoft,Facebook和Spotify等公司采用了基于中继的开发以及功能切换。该策略使协作无需通过分支机构进行隔离,从而减少了合并挑战。但是,文献缺乏有关功能切换对协作软件开发的益处和局限性的证据。目标/方法:在本文中,我们研究了用6种不同编程语言编写的949个开源项目应用功能切换的效果。我们首先确定每个项目采用一个功能切换框架的时刻。然后,我们观察到采用率是否暗示分支合并的频率或复杂性以及缺陷数量以及修复它们的平均时间的显着变化。最后,我们将获得的结果与从不使用特征切换框架的一组控制项目获得的结果进行了比较。结果/结论:我们可以观察到平均合并努力的减少,并在采用特征切换框架后修复缺陷所需的平均总时间增加。但是,我们无法确认这一增加受到特征切换的影响。

Context: Branching has been widely adopted in version control to enable collaborative software development. However, the isolation caused by branches may impose challenges on the upcoming merging process. Recently, companies like Google, Microsoft, Facebook, and Spotify, among others, have adopted trunk-based development together with feature toggles. This strategy enables collaboration without the need for isolation through branches, potentially reducing the merging challenges. However, the literature lacks evidence about the benefits and limitations of feature toggles to collaborative software development. Objective/Method: In this paper, we study the effects of applying feature toggles on 949 open-source projects written in 6 different programming languages. We first identified the moment in which each project adopted a feature toggles framework. Then, we observed whether the adoption implied significant changes in the frequency or complexity of branch merges and the number of defects, and the average time to fix them. Finally, we compared the obtained results with results obtained from a set of control projects that do not use feature toggles frameworks. Results/Conclusion: We could observe a reduction in the average merge effort and an increase in the average total time needed to fix defects after adopting feature toggles frameworks. However, we could not confirm that this increase was influenced by the use of feature toggles.

扫码加入交流群

加入微信交流群

微信交流群二维码

扫码加入学术交流群,获取更多资源