Technical Debt

The emerging field of Technical Debt research is concerned about understanding the tradeoffs between rapid software development and software that is developed by applying all the right practices, such as sufficient testing, design, documentation etc. According to the metaphor, originally coined by Ward Cunningham, it is believed that a software product developed in a rapid fashion incurs technical debt (e.g. through taking shortcuts) and that this debt will have negative impact on future development. Even if software engineers are often trained to develop high-quality code by applying established best-practices all the time, getting a release out the door early and accepting some debt can be financially beneficial, e.g. to beat a competitor, or to satisfy the urgent need of a customer.

Whenever technical debt is incurred in a project the question arises if the short-term benefits outweighs the long term impact of the debt on the project. For example, a suboptimal design might impact future maintainability and portability. Or, parts of code not being tested sufficiently might pose risks to the security of an application. 

For existing projects and software acquisitions, a second question arises, that is concerned about the present debt and interest payments in the project.

 

This page highlights some of the early research results, as well as some less scientific resources that cover different topics and research questions. Due to the novelty of the metaphor and its raising popularity I expect this page to change quiet a bit within the next year. Please revisit. This page can also be reached at www.technicaldebt.de.

Getting Started

My colleague, Carolyn Seaman and I presented multiple presentations as part of webinar series for Lockheed Martin, the IEEE, and Boeing. The following slides represent a summary of these presentations. The slides give an introduction into the metaphor and highlight some approaches to automatically identify Technical Debt in code.

Technical Debt Research Community

Over the past three years a couple of key players have taken the lead on conducting research in the area of Technical Debt. The unique mix of University research groups, not-for-profit research organizations, industry consultants, and tool providers enables us to look at the metaphor from different perspectives.

 

The most important meeting between these groups is the yearly Workshop on Managing Technical Debt that has been hold at at ICSE for the past two years, and at the SEI in its first year:

Noteworthy is a research statement coming out of the first workshop, formulating a common vision of Technical Debt research:

  • Brown, N., Cai, Y., Guo, Y. , Kazman, R. , Kim, M., Kruchten, P., Lim, E., MacCormack, A., Nord, R., Ozkaya, I., Sangwan, R., Seaman, C., Sullivan, K., Zazworka, N. : "Managing Technical Debt in Software-Reliant Systems" FoSeR '10: Workshop on the Future of Software Engineering Research, 4 pages, 2010, click here to download

The following is an (incomplete) list of institutions and organizations contributing to better understanding and measurment of Technical Debt.

 

Academic Contributors

  • Carolyn Seaman and Yuepu Guo, University of Maryland Baltimore County (UMBC), USA. Carolyn's resarch group has been awarded with a NSF grant to explore the identifcation and management of Technical Debt. Her group has published more than 10 research papers on Technical Debt. She works together with Fraunhofer CESE, Yuanfang Cai (Drexel University) and Clemente Izurieta (MSU). Check out her website on: www.technicaldebt.umbc.edu
  • Yuanfang Cai, Drexel University, USA
  • Clemente Izurieta, Montana State University, USA
  • Philippe Kruchten, University of British Columbia, Canada

Not-for-profit and University Affiliated Contributors

  • Forrest Shull and Nico Zazworka, Fraunhofer Center for Experimental Software Engineering (CESE) in College Park, MD.
  • Ipek Ozkaya and Rod Nord, Software Engineering Institute (SEI)

Industrial Collaborators, Consultants, and Tool Providers

Contact

Your form message has been successfully sent.

You have entered the following data:

For questions and suggestions please feel free to drop me a message:

Please correct your input in the following fields:
Error while sending the form. Please try again later.

Note: Fields marked with * are required

Recommend this page on: