ABSTRACT
Large-scale systems often contain considerable amounts of code that is overly complicated, hard to understand, and hence expensive to change. An organization cannot address and refactor all of that code at once, nor should they. Ideally, actionable refactoring targets should be prioritized based on the technical debt interest rate to balance the trade-offs between improvements, risk, and new features. This paper examines how CodeScene, a tool for predictive analyses and visualizations, can be used to prioritize technical debt in a large-scale codebase like the Linux Kernel based on the most likely return on code improvements.
- A. Tornhill. 2018. Software Design X-Rays: Fix Technical Debt with Behavioral Code Analysis. The Pragmatic Bookshelf,Raleigh, NC.Google Scholar
- W. Cunningham. 1992. The WyCash Portfolio Management System, Addendum to Proc. Object-Oriented Programming Systems Languages and Applications (OOPSLA 92). 29--30 Google ScholarDigital Library
- CodeScene analysis of Linux, retrieved on January 10th 2018: https://codescene.io/projects/1737/jobs/4353/results/code/hotspots/system-mapGoogle Scholar
- G.K. Gill, & C.F. Kemerer. 1991. Cyclomatic complexity density and software maintenance productivity. IEEE Transactions on Software Engineering, Vol. 17, Issue: 12 Google ScholarDigital Library
- Linux Git repository, retrieved on January 10th 2018: https://github.com/torvalds/linuxGoogle Scholar
- A. Hindle, M.W. Godfrey, & R.C. Holt. 2008. Reading Beside the Lines: Indentation as a Proxy for Complexity Metric. ICPC 2008. The 16th IEEE International Conference on Google ScholarDigital Library
- D. Roberts, W. Opdyke, K. Beck, M. Fowler, J. Brant. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional, Boston, MA. Google ScholarDigital Library
- E. Lim, N. Taksande, C. Seaman. 2012. A Balancing Act: What Software Practitioners Have to Say about Technical Debt. IEEE Software, Vol. 29, Issue: 6 Google ScholarDigital Library
- Pull request to Linux, retrieved on March 7th 2018: https://patchwork.freedesktop.org/series/2757Google Scholar
Recommendations
A portfolio approach to technical debt management
MTD '11: Proceedings of the 2nd Workshop on Managing Technical DebtTechnical debt describes the effect of immature software artifacts on software maintenance - the potential of extra effort required in future as if paying interest for the incurred debt. The uncertainty of interest payment further complicates the ...
Sell-Side Debt Analysts and Debt Market Efficiency
We explore sell-side debt analysts’ contributions to the efficiency of securities markets. We document that debt returns lag equity returns less when debt research coverage exists, which is consistent with debt analysts facilitating the process by which ...
A large-scale empirical study on self-admitted technical debt
MSR '16: Proceedings of the 13th International Conference on Mining Software RepositoriesTechnical debt is a metaphor introduced by Cunningham to indicate "not quite right code which we postpone making it right". Examples of technical debt are code smells and bug hazards. Several techniques have been proposed to detect different types of ...
Comments