The Broken Windows Theory in Software Engineering: An experiment on technical debt propagation
Publicerad
Författare
Typ
Examensarbete för masterexamen
Program
Modellbyggare
Tidskriftstitel
ISSN
Volymtitel
Utgivare
Sammanfattning
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,
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. Primarily in situations where there are no significant hurdles
to implementing a low TD solution (i.e., when there is no TD that practically
forces the implementation of new TD).
Method: The study used a mixed-methods strategy consisting of a controlled experiment
and accompanying follow-up interviews. The experiment had a total of
29 developers of varying experience levels complete small system extension tasks in
systems with high or low TD density; most subjects completed one of each for a
total of 51 solution submissions. The solutions were scanned for TD, both manually
and using SonarQube. A subset of subjects volunteered to participate in interviews,
the results of which were evaluated using thematic analysis.
Result: Bayesian data analysis revealed significant effects of TD level on the
subjects’ tendency to reimplement (rather than reuse) functionality, choose nondescriptive
variable names, and introduce other code smells identified by SonarQube,
all with at least 95% certainty. Additionally, subjects appeared to be, at least partially,
aware of when they had introduced TD. The results of the thematic analysis
were in line with the findings of the experiment.
Conclusion: Three separate significant results along with a validating qualitative
result combine to form substantial evidence of the BWTs applicability to software
engineering contexts.
Beskrivning
Ämne/nyckelord
Software engineering, broken windows theory, technical debt, software, spread, contagious, controlled experiment, Bayesian data analysis, thematic analysis