Increasing, not Diminishing: Investigating the Returns of Highly Maintainable Code (2401.13407v1)
Abstract: Understanding and effectively managing Technical Debt (TD) remains a vital challenge in software engineering. While many studies on code-level TD have been published, few illustrate the business impact of low-quality source code. In this study, we combine two publicly available datasets to study the association between code quality on the one hand, and defect count and implementation time on the other hand. We introduce a value-creation model, derived from regression analyses, to explore relative changes from a baseline. Our results show that the associations vary across different intervals of code quality. Furthermore, the value model suggests strong non-linearities at the extremes of the code quality spectrum. Most importantly, the model suggests amplified returns on investment in the upper end. We discuss the findings within the context of the "broken windows" theory and recommend organizations to diligently prevent the introduction of code smells in files with high churn. Finally, we argue that the value-creation model can be used to initiate discussions regarding the return on investment in refactoring efforts.
- Use and Misuse of the Term “Experiment” in Mining Software Repositories Research. IEEE Trans. on Software Engineering 48, 11 (2022), 4229–4248.
- Standardized Code Quality Benchmarking for Improving Software Maintainability. Software Quality Journal 2 (2012), 287–307.
- Accompanying Replication Package. https://zenodo.org/records/10560722
- U Owns the Code That Changes and How Marginal Owners Resolve Issues Slower in Low-Quality Source Code. In Proc. of the 27th Int’l. Conf. on Evaluation and Assessment in Software Engineering. 368–377. https://doi.org/10.1145/3593434.3593480
- Empirical Standards for Repository Mining. In Proc. of the 19th Int’l. Conf. on Mining Software Repositories. 142–143. https://doi.org/10.1145/3524842.3528032
- B. Efron. 1979. Bootstrap Methods: Another Look at the Jackknife. The Annals of Statistics 7, 1 (1979), 1–26. https://doi.org/10.1214/aos/1176344552
- David Farley. 2021. Modern Software Engineering: Doing What Works to Build Better Software Faster. Addison-Wesley Professional, Boston, MA, USA.
- Norman Fenton. 1994. Software Measurement: A Necessary Scientific Basis. IEEE Trans. on Software Engineering 20, 3 (1994), 199–206.
- Accelerate: The Science of Lean Software and DevOps: Building and Scaling High Performing Technology Organizations (1 ed.). IT Revolution Press, Portland, Oregon.
- The SPACE of Developer Productivity: There’s more to it than you think. Queue 19, 1 (2021), 10:20–10:48. https://doi.org/10.1145/3454122.3454124
- Code Ownership in Open-Source Software. In Proc. of the 18th Int’l. Conf. on Evaluation and Assessment in Software Engineering. 1–9. https://doi.org/10.1145/2601248.2601283
- Methods for Evaluating Causality in Observational Studies. Deutsches Arzteblatt Int’l. 117, 7 (2020), 101–107. https://doi.org/10.3238/arztebl.2020.0101
- Comparing Fine-grained Source Code Changes and Code Churn for Bug Prediction. In Proc. of the 8th Working Conf. on Mining Software Repositories. 83–92. https://dl.acm.org/doi/abs/10.1145/1985441.1985456
- A Systematic Literature Review on Fault Prediction Performance in Software Engineering. IEEE Trans. on Software Engineering 38, 6 (2012), 1276–1304. https://doi.org/10.1109/TSE.2011.103
- It’s Not a Bug, It’s a Feature: How Misclassification Impacts Bug Prediction. In Proc. of the 35th Int’l. Conf. on Software Engineering. 392–401. https://doi.org/10.1109/ICSE.2013.6606585
- A Systematic Literature Review and Meta-Analysis on Cross Project Defect Prediction. IEEE Trans. on Software Engineering 45, 2 (2019), 111–147. https://doi.org/10.1109/TSE.2017.2770124
- Andrew Hunt and David Thomas. 1999. The Pragmatic Programmer: From Journeyman to Master (1 ed.). Addison-Wesley Professional, Boston, MA, USA.
- Helvio Jeronimo Junior and Guilherme Horta Travassos. 2022. Consolidating a Common Perspective on Technical Debt and its Management Through a Tertiary Study. Information and Software Technology 149 (2022), 106964.
- Robust Statistical Methods for Empirical Software Engineering. Empirical Software Engineering 22, 2 (2017), 579–630. https://doi.org/10.1007/s10664-016-9437-5
- Handling Estimation Uncertainty with Bootstrapping: Empirical Evaluation in the Context of Hybrid Prediction Methods. In Proc. of the Int’l. Symposium on Empirical Software Engineering and Measurement. 245–254. https://doi.org/10.1109/ESEM.2011.33
- An Investigation into the Functional Form of the Size-Defect Relationship for Software Modules. IEEE Trans. on Software Engineering 35, 2 (2009), 293–304. https://doi.org/10.1109/TSE.2008.90
- Code Smells and Refactoring: A Tertiary Systematic Review of Challenges and Observations. Journal of Systems and Software 167 (2020), 110610.
- A Systematic Literature Review on Technical Debt Prioritization: Strategies, Processes, Factors, and Tools. Journal of Systems and Software 171 (2021), 110827. https://doi.org/10.1016/j.jss.2020.110827
- Testing the Broken Windows Theory in the context of Technical Debt. https://doi.org/10.48550/arXiv.2209.01549
- Wei Li and Raed Shatnawi. 2007. An Empirical Study of the Bad Smells and Class Error Probability in the Post-Release Object-Oriented System Evolution. Journal of Systems and Software 80, 7 (2007), 1120–1128. https://doi.org/10.1016/j.jss.2006.10.018
- Source Code Metrics: A Systematic Mapping Study. Journal of Systems and Software 128 (2017), 164–197.
- The Evolution and Impact of Code Smells: A Case Study of Two Open Source Systems. In Proc. of the 3rd Int’l. Symposium on Empirical Software Engineering and Measurement. 390–400. https://doi.org/10.1109/ESEM.2009.5314231
- Judea Pearl. 2018. The Book of Why: The New Science of Cause and Effect (1 ed.). Ingram Publisher Services, La Vergne, TN, USA.
- Software Fault Prediction Metrics: A Systematic Literature Review. Information and Software Technology 55, 8 (2013), 1397–1418. https://doi.org/10.1016/j.infsof.2013.02.009
- A Systematic Review of Software Maintainability Prediction and Metrics. In Proc. of the 3rd Int’l. Symposium on Empirical Software Engineering and Measurement. 367–377.
- A Tertiary Study on Technical Debt: Types, Management Strategies, Research Trends, and Base Information for Practitioners. Information and Software Technology 102 (2018), 117–145.
- A Systematic Review on the Code Smell Effect. Journal of Systems and Software 144 (2018), 450–477. https://doi.org/10.1016/j.jss.2018.07.035
- Dag Sjoberg and Gunnar Rye Bergersen. 2023. Improving the Reporting of Threats to Construct Validity. In Proc. of the 27th Int’l. Conf. on Evaluation and Assessment in Software Engineering. 205–209. https://doi.org/10.1145/3593434.3593449
- Quantifying the Effect of Code Smells on Maintenance Effort. IEEE Trans. on Software Engineering 39, 8 (2013), 1144–1156. https://doi.org/10.1109/TSE.2012.89
- Do Code Smells Impact the Effort of Different Maintenance Programming Activities?. In Proc. of the 23rd Int’l. Conf. on Software Analysis, Evolution, and Reengineering, Vol. 1. 393–402. https://doi.org/10.1109/SANER.2016.103
- On the Relationship Between Story Points and Development Effort in Agile Open-Source Software. In Proc. of the 16th Int’l. Symposium on Empirical Software Engineering and Measurement. 183–194.
- Adam Tornhill. 2018. Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis. Pragmatic Bookshelf.
- Adam Tornhill and Markus Borg. 2022. Code Red: The Business Impact of Code Quality - A Quantitative Study of 39 Proprietary Production Codebases. In Proc. of the 5th Int’l. Conf. on Technical Debt. 11–20.
- Zeynep Tufekci. 2022. The Shameful Open Secret Behind Southwest’s Failure. The New York Times (Dec. 2022). https://www.nytimes.com/2022/12/31/opinion/southwest-airlines-computers.html
- James Wilson and George Kelling. 1982. Broken Windows: The Police and Neighborhood Safety. Atlantic (1982), 29–38.
- Aiko Yamashita and Leon Moonen. 2012. Do Code Smells Reflect Important Maintainability Aspects?. In Proc. of the 28th IEEE Int’l. Conf. on Software Maintenance. 306–315. https://doi.org/10.1109/ICSM.2012.6405287
- Investigating the Impact of Design Debt on Software Quality. In Proc. of the 2nd Workshop on Managing Technical Debt. 17–23. https://doi.org/10.1145/1985362.1985366
- An Empirical Study of the Impact of Bad Designs on Defect Proneness. In Proc. of the Int’l. Conf. on Software Analysis, Testing and Evolution. 1–9. https://doi.org/10.1109/SATE.2017.9