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, we discussed the results with three development teams, plus line manager and the architect team, evaluating whether the model inferences aligned with what they expected. 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),用以阐释各团队的不同行为。最后,我们与三个开发团队、直线经理以及架构团队讨论了结果,评估模型推断是否符合他们的预期。反馈被记录并进行主题编码。结果:结果表明,不同团队在不同组件中的行为确实存在差异,且团队反馈显示,这种阐释团队行为的方法可作为传统所有权汇总统计的有益补充。结论:我们发现,基于模型的方法能够有效可视化团队在修改不同组件时引入代码克隆的情况。从业者表示,这些可视化结果提供了有价值的见解,并且通过与平均团队进行比较,可以避免团队间的直接对比。因此,该方法有潜力成为采用弱所有权或集体所有权的软件开发组织中,为团队提供反馈的有用工具。