Software development organisations strive to maintain their effectiveness while the complexity of the systems they develop continues to grow. To tackle this challenge, organisations tend to be organised into small teams working with components that can be developed separately. Here, organisations must design their architecture and organisational structures in a way that enables communication and minimises dependencies, and helps teams reduce code and architectural degradation. Ensuring that each small independent team is responsible for components they primarily contribute is one approach to achieving this goal. This study aims at understanding the impact of ownership and contribution alignment on accumulation of code technical debt and how abrupt changes in team constellation affect teams' effectiveness in managing TD. We conducted an embedded case study in a company developing a very large software system, analysing ten components belonging to 1 team. During the studied period, the team was split into two, and the components owned by them were distributed between the two new teams. With high degrees of contribution alignment, we noticed a negative correlation between contribution alignment and TD Density before the team split. In 4 components, this correlation is statistically significant. This means a higher contribution alignment degree implies a lower TD Density. After the split, we observe a negative correlation in 3 components. The positive correlation observed in the other 5 components could be attributed to low contribution alignment, leading to difficulties in managing TD. Our findings suggest that contribution alignment can be important in controlling TD in software development organisations. Making teams responsible for the quality of components they have more expertise over and minimising dependencies between teams can help organisations mitigate the growth of TD.
翻译:软件开发组织在努力保持其有效性的同时,所开发系统的复杂性持续增长。为应对这一挑战,组织倾向于组建小型团队,专注于可独立开发的组件。在此背景下,组织必须设计其架构和组织结构,以促进沟通、减少依赖,并帮助团队降低代码和架构的退化。确保每个独立的小型团队负责其主要贡献的组件,是实现这一目标的一种方法。本研究旨在理解所有权与贡献对齐对代码技术债务积累的影响,以及团队构成的突然变化如何影响团队管理技术债务的有效性。我们在一家开发超大型软件系统的公司中开展了嵌入式案例研究,分析了属于一个团队的十个组件。在研究期间,该团队被拆分为两个团队,其拥有的组件被分配给这两个新团队。在贡献对齐程度较高的情况下,我们注意到在团队拆分前,贡献对齐与技术债务密度之间存在负相关关系。在四个组件中,这种相关性具有统计显著性。这意味着较高的贡献对齐程度对应较低的技术债务密度。拆分后,我们在三个组件中观察到负相关关系。在其他五个组件中观察到的正相关关系可能归因于较低的贡献对齐程度,从而导致管理技术债务的困难。我们的研究结果表明,贡献对齐在软件开发组织中控制技术债务方面可能具有重要意义。使团队对其更具专业知识的组件的质量负责,并最小化团队间的依赖,有助于组织缓解技术债务的增长。