论文标题

破碎的窗户理论适用于技术债务

The Broken Windows Theory Applies to Technical Debt

论文作者

Levén, William, Broman, Hampus, Besker, Terese, Torkar, Richard

论文摘要

上下文:技术债务(TD)一词描述了用于阻碍系统进化和维护的亚最佳解决方案的汇总。一些人声称,从犯罪学借来的概念破裂的Windows理论(BWT)也适用于软件开发项目。该理论指出,先前犯罪的迹象(例如窗口破裂)将增加进一步的犯罪活动的可能性。 TD可以被视为软件系统破裂的窗口。 目的:凭经验研究系统的TD密度与开发人员在该系统扩展过程中引入新TD的倾向之间的因果关系。 方法:该研究使用了混合方法研究策略,该研究策略由对照实验和随附的调查和后续访谈组成。该实验共有29个经验水平的不同经验水平的开发人员完成了已经存在的TD密度高或低的系统中的系统扩展任务。结果:分析表明,TD水平对受试者重新实施(而不是重用)功能的趋势,选择非描述性变量名称以及引入软件工具Sonarqube确定的其他代码气味的趋势,所有这些都至少为95%可信间隔。 结论:三个独立的重要结果以及验证的定性结果结合在一起,形成了BWT在软件工程环境中存在的实质证据。这项研究发现,现有的TD可能会对开发人员倾向在开发过程中引入各种类型的新TD。

Context: The term technical debt (TD) describes the aggregation of sub-optimal solutions that serve to impede the evolution and maintenance of a system. Some claim that the broken windows theory (BWT), a concept borrowed from criminology, also applies to software development projects. The theory states that the presence of indications of previous crime (such as a broken window) will increase the likelihood of further criminal activity; TD could be considered the broken windows of software systems. Objective: To empirically investigate the causal relationship between the TD density of a system and the propensity of developers to introduce new TD during the extension of that system. Method: The study used a mixed-methods research strategy consisting of a controlled experiment with an accompanying survey and follow-up interviews. The experiment had a total of 29 developers of varying experience levels completing system extension tasks in already existing systems with high or low TD density. Results: The analysis revealed significant effects of TD level on the subjects' tendency to re-implement (rather than reuse) functionality, choose non-descriptive variable names, and introduce other code smells identified by the software tool SonarQube, all with at least 95% credible intervals. Conclusions: Three separate significant results along with a validating qualitative result combine to form substantial evidence of the BWT's existence in software engineering contexts. This study finds that existing TD can have a major impact on developers propensity to introduce new TD of various types during development.

扫码加入交流群

加入微信交流群

微信交流群二维码

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