Defining the Practice of Managing Technical Debt: From Research to Community
As software systems mature, earlier design or code decisions made in the context of budget or schedule constraints increasingly impede evolution and innovation. This phenomenon is called technical debt, and for a decade, the SEI has been at the forefront of shaping a definition of technical debt, forming and executing a research agenda applicable to government and industry, and cultivating a community of practice.
Since 2010, the SEI has challenged the software engineering research community to find ways to manage technical debt by convening the annual Managing Technical Debt Workshop series. In 2018, the workshops evolved into an annual Conference on Technical Debt co-located with the ACM/IEEE International Conference on Software Engineering. Those events have produced more than 100 publications in the Association for Computer Machinery (ACM)/Institute of Electrical and Electronics Engineers (IEEE) digital libraries and spawned more than 2,000 citations in other published papers.
Through relationships with researchers, practitioners, and industry tool vendors in the software engineering community, SEI researchers have gathered data on technical debt in large-scale systems. They have identified metrics that can be extracted from the code and module structures of software systems. And by combining techniques from machine learning and code analysis, they have provided software engineers visibility into technical debt from strategic and architectural perspectives.
The book Managing Technical Debt in the SEI Series in Software Engineering blends this research into a cohesive approach that developers can use to deliberately manage technical debt in their systems. In 2019, the SEI transitioned conference management to this community that continues to share research results, data, and lessons learned about their projects to advance the practice of managing technical debt.