Context: In software development organizations employing weak or collective ownership, different teams are allowed and expected to autonomously perform changes in various components. This creates diversity both in the knowledge of, and in the responsibility for, individual components. Objective: Our objective is to understand how and why different teams introduce technical debt in the form of code clones as they change different components. Method: We collected data about change size and clone introductions made by ten teams in eight components which was part of a large industrial software system. We then designed a Multi-Level Generalized Linear Model (MLGLM), to illustrate the teams' differing behavior. Finally, the results were reported to the studied organization, responses were recorded and thematically coded. Results: The results show that teams do behave differently in different components, and the feedback from the teams indicates that this method of illustrating team behavior can be useful as a complement to traditional summary statistics of ownership. Conclusions: We find that our model-based approach produces useful visualizations of team introductions of code clones as they change different components. Practitioners stated that the visualizations gave them insights that were useful, and by comparing with an average team, inter-team comparisons can be avoided. Thus, this has the potential to be a useful feedback tool for teams in software development organizations that employ weak or collective ownership.
翻译:背景:在采用弱所有权或集体所有权的软件开发组织中,不同团队被允许并期望自主地对各种组件进行更改。这导致了对各个组件的认知和责任存在多样性。目标:我们的目标是理解不同团队在更改不同组件时如何以及为何以代码克隆的形式引入技术债务。方法:我们收集了十个团队在某个大型工业软件系统的八个组件中所做的变更规模及克隆引入数据。随后设计了一个多层级广义线性模型(MLGLM)来阐释团队间的差异行为。最后,将结果反馈给被研究组织,记录其回应并进行主题编码。结果:结果表明不同团队在不同组件中的行为确实存在差异,团队反馈显示这种阐释团队行为的方法可作为传统所有权汇总统计的有效补充。结论:我们发现基于模型的方法能有效可视化团队在更改不同组件时引入代码克隆的行为。实践者表示可视化结果提供了有价值的见解,且通过与平均团队比较可避免团队间的直接对比。因此,该方法有望成为采用弱所有权或集体所有权的软件开发组织中团队反馈的有效工具。