ABSTRACT
Delivering increasingly complex software-reliant systems demands better ways to manage the long-term effects of short-term expedients. The technical debt metaphor is gaining significant traction in the agile development community as a way to understand and communicate such issues. The idea is that developers sometimes accept compromises in a system in one dimension (e.g., modularity) to meet an urgent demand in some other dimension (e.g., a deadline), and that such compromises incur a "debt": on which "interest" has to be paid and which the "principal" should be repaid at some point for the long-term health of the project. We argue that the software engineering research community has an opportunity to study and improve this concept. We can offer software engineers a foundation for managing such trade-offs based on models of their economic impacts. Therefore, we propose managing technical debt as a part of the future research agenda for the software engineering field.
- Biffl, S., Aurum, A., Boehm, B., Erdogmus, H. and Grunbacher, P. 2005. Value-Based Software Engineering. Springer, Berlin. Google ScholarDigital Library
- Brown, N., Nord, R., Ozkaya, I. 2010 Enabling Agility through Architecture, Crosstalk Nov/Dec 2010.Google Scholar
- Cohn, M. 2006 Agile Estimation and Planning, Prentice Hall. Google ScholarDigital Library
- Cunningham, W. 1992. The WyCash Portfolio Management System. OOPSLA' 92 Experience Report. Google ScholarDigital Library
- Denne, M., & Cleland-Huang, J. 2004. Software by Numbers: Low-Risk, High-Return Development. Upper Saddle River, N.J.: Prentice Hall.Google Scholar
- Erdogmus, H., Morisio, M., and Torchiano, M. 2005. On the Effectiveness of the Test-First Approach to Programming. IEEE Trans. Softw. Eng. 31, 3 (Mar. 2005), 226--237. Google ScholarDigital Library
- Fowler, M. Technical Debt Quadrant. Bliki {Blog} 2009. {cited 2010 June 14}; Available from: http://www.martinfowler.com/bliki/TechnicalDebtQuadrant.html.Google Scholar
- Fowler, M. 1999. Refactoring: Improving the Design of Existing Code. Addison-Wesley Professional. Google ScholarDigital Library
- Gaudin, O. 2009. Evaluate your technical debt with Sonar. {cited 2010 June 14}; Available from: http://www.sonarsource.org/evaluate-your-technical-debt-with-sonar/Google Scholar
- Highsmith, J. 2009. Agile Project Management 2nd ed. Addison Wesley.Google Scholar
- Hinsman C., Sangal, N., Stafford, J. 2009. Achieving Agility Through Architecture Visibility, in LNCS 5581/2009, Architectures for Adaptive Software Systems, pp.116--129. Google ScholarDigital Library
- Kamiya, T.; Kusumoto, S. & Inoue, K. 2002. CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code. IEEE TSE, 2002, 28. Google ScholarDigital Library
- Kim, M. and Notkin, D. 2009. Discovering and representing systematic code changes. In Proc. ICSE 31. Google ScholarDigital Library
- Leffingwell, D. 2007. Scaling Software Agility, Boston: Addison-Wesley. Google ScholarDigital Library
- Lehman, M.M. and Belady, L.A. (eds) 1985. Program evolution: processes of software change. Academic Press Professional, Inc. Google ScholarDigital Library
- Martin, Robert C. 2008. Clean Code: A Handbook of Agile Software Craftsmanship. Addison Wesley. Google ScholarDigital Library
- Mens, T. 2008. Introduction and Roadmap: History and Challenges of Software Evolution in T. Mens, S. Demeyer eds. Software Evolution, Springer, 2008, pp. 1--11.Google ScholarCross Ref
- McConnell, S. 2007. Technical Debt. 10x Software Development {cited 2010 June 14}; http://blogs.construx.com/blogs/stevemcc/archive/2007/11/01/technical-debt-2.aspx.Google Scholar
- Parnas, D.L. 1994. Software Aging, Proc. ICSE 16. Google ScholarDigital Library
- Rothman, J. An Incremental Technique to Pay Off Testing Technical Debt. {Weekly Column} 2006 {cited 2010 February 9}; Available from: http://www.stickyminds.com/sitewide.asp Function=edetail&ObjectType=COL&ObjectId=11011&tth=DYN&tt=siteemail&iDyn=2.Google Scholar
- Sutherland, J. 2005. Future of Scrum: Parallel Pipelining of Sprints in Complex Projects. Proceedings of the Agile 2005, pp. 90--102. Google ScholarDigital Library
Index Terms
- Managing technical debt in software-reliant systems
Recommendations
Technical debt in software development: from metaphor to theory report on the third international workshop on managing technical debt
The technical debt metaphor is gaining significant traction in the software development community as a way to understand and communicate issues of intrinsic quality, value, and cost. This is a report on a third workshop on managing technical debt, which ...
Second international workshop on managing technical debt (MTD 2011)
ICSE '11: Proceedings of the 33rd International Conference on Software EngineeringThe technical debt metaphor is gaining significant traction in the software development community as a way to understand and communicate issues of intrinsic quality, value, and cost. The idea is that developers sometimes accept compromises in a system ...
Five Reasons for Including Technical Debt in the Software Engineering Curriculum
ECSAW '15: Proceedings of the 2015 European Conference on Software Architecture WorkshopsTechnical Debt is a useful metaphor to explain some of the difficulties of software evolution. The concept of Technical Debt is gaining importance from a scientific perspective, as the number of related papers, special issues, and international events ...
Comments