Mining knowledge on technical debt propagation

Technical debt has gained considerable traction both in the industry and the academia due to its unique ability to distinguish asset management characteristics for problematic software project trade-offs. Management of technical debt relies on separate solutions identifying instances of technical debt, tracking the instances, and delivering information regarding the debt to relevant decision making processes. While there are several of these solutions available, due to the multiformity of software development, they are applicable only in predefined contexts that are often independent from one another. As technical debt management must consider all these aspects in unison, our work pursues connecting the software contexts via unlimited capturing and explanation of technical debt propagation intraand inter-software-contexts. We mine software repositories (MSR) for data regarding the amount of work as a function of time. Concurrently, we gather information on events that are clearly external to the programmers’ own work on these repositories. These data are then combined in an effort to statistically measure the impact of these events in the amount of work. With this data, as future work, we can apply taxonomies, code analysis, and other analyses to pinpoint these effects into different technical debt propagation channels. Abstraction of the channel patterns into rules is pursued so that development tools may automatically maintain technical debt information with them (the authors have introduced the DebtFlag tool for this). Hence, successfully implementing this study would allow further understanding and describing technical debt propagation at both the high level (longitudinal technical debt propagation effects for the project) and the low level (artifact level effects describing the mechanism of technical debt value accumulation).

[1]  Daniela E. Damian,et al.  The promises and perils of mining GitHub , 2009, MSR 2014.

[2]  Yuanfang Cai,et al.  Using technical debt data in decision making: Potential decision approaches , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[3]  James D. Herbsleb,et al.  Influence of social and technical factors for evaluating contribution in GitHub , 2014, ICSE.

[4]  Jonathan I. Maletic,et al.  A survey and taxonomy of approaches for mining software repositories in the context of software evolution , 2007, J. Softw. Maintenance Res. Pract..

[5]  Robert L. Nord,et al.  Managing technical debt in software-reliant systems , 2010, FoSER '10.

[6]  Jie Zhang,et al.  Technical debt aggregation in ecosystems , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[7]  Klaus Schmid A formal approach to technical debt decision making , 2013, QoSA '13.

[8]  André L. M. Santos,et al.  Tracking technical debt — An exploratory case study , 2011, 2011 27th IEEE International Conference on Software Maintenance (ICSM).

[9]  James D. Herbsleb,et al.  Social coding in GitHub: transparency and collaboration in an open software repository , 2012, CSCW.

[10]  Peng Liang,et al.  A systematic mapping study on technical debt and its management , 2015, J. Syst. Softw..

[11]  Robert L. Nord,et al.  Technical Debt: From Metaphor to Theory and Practice , 2012, IEEE Software.

[12]  Yuanfang Cai,et al.  Organizing the technical debt landscape , 2012, 2012 Third International Workshop on Managing Technical Debt (MTD).

[13]  Espen Suenson,et al.  How computer programmers work : understanding software development in practise , 2015 .

[14]  Philip Barker,et al.  Organising Knowledge: Taxonomies, Knowledge and Organisational Effectiveness , 2007 .

[15]  Sven Johann,et al.  Technical Debt , 2015, IEEE Softw..

[16]  Ville Leppänen,et al.  Technical Debt and the Effect of Agile Software Development Practices on It - An Industry Practitioner Survey , 2014, 2014 Sixth International Workshop on Managing Technical Debt.

[17]  Ward Cunningham,et al.  The WyCash portfolio management system , 1992, OOPSLA '92.