On June 5, 2012 we will be organizing a workshop co-located with the International Conference on Software Engineering (ICSE 2012) in Zurich to scrutinize the diverse issues that are related to technical debt and the software development lifecycle. The details of the call for papers and other logistics are at our workshop site. We invite practitioners and researchers to join us in discussing early findings, future directions, experiences, and results.
An initial workshop was held at the Software Engineering Institute in Pittsburgh on June 2–4, 2010. The outcomes of this workshop and open research questions are outlined in the position paper Managing Technical Debt in Software-Reliant Systems presented at the FSE/SDP 2010 Workshop on the Future of Software Engineering Research. The second workshop was held collocated with ICSE 2011. A summary of the workshop is available in the September 2011 issue of ACM SIGSOFT Software Engineering Notes.
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. The idea is that developers sometimes accept compromises in a system in one dimension (such as modularity) to meet an urgent demand in some other dimension (such as a deadline), and that such compromises incur a debt on which interest has to be paid and which should be repaid at some point for the long-term health of the project.
The power of the metaphor is that it communicates the essence of the tradeoffs that are at the core of many software engineering decisions–balancing economic outcomes while continuing to meet business and user needs. However, the more the metaphor resonates the more there is the need to understand the quantifiable and scientific principles to avoid confusion.
In addition, today the metaphor is used not only to refer to suboptimal coding and refactoring practices as it was originally used by Ward Cunningham, but also to describe issues observed during different software development activities: requirements debt, testing debt, and architectural debt to name a few.
As part of our Communicating the Value of Architecting within Agile Development project, we have been working on technical debt from the perspective of strategic architecture-related technical debt with Philippe Kruchten from the University of British Columbia.
The workshop has the broader goal to discuss managing technical debt as a part of the research agenda for the software engineering field, in particular focusing on eliciting and visualizing debt and creating payback strategies.
- Robert Nord, SEI