Nicolli Rios, R. Spínola, Manoel G. Mendonça, C. Seaman
{"title":"Supporting Analysis of Technical Debt Causes and Effects with Cross-Company Probabilistic Cause-Effect Diagrams","authors":"Nicolli Rios, R. Spínola, Manoel G. Mendonça, C. Seaman","doi":"10.1109/TechDebt.2019.00009","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00009","url":null,"abstract":"Understanding TD causes can support development teams in defining actions that could be taken to prevent the occurrence of debt items. Understanding the effects of TD could aid in prioritization of TD items to pay off to minimize possible negative consequences for the project. Existing work has revealed 105 causes and 85 effects of TD, and this high number can make it difficult to make practical use of this information. Without a consolidated representation, we would need to rely on a set of tables and isolated pieces of data. In this work, we propose the use of cross-company probabilistic cause-effect diagrams to represent information about TD causes and effects. We hypothesize that such diagrams can be useful to support TD cause/effect analysis sessions and empirically investigate this issue. Results from a case study performed with 72 participants indicate that the diagrams are able to positively support the management of TD, making it easier to identify its causes and the effects of its presence. Most of the participants also agreed that, by using the proposed diagrams, they gain agility, productivity, performance, and effectiveness. Finally, 89% of the participants stated that the use of the diagrams helped them to identify causes and effects of TD that they would not have identified without their support.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"255 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"129047940","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"A Proposed Model-Driven Approach to Manage Architectural Technical Debt Life Cycle","authors":"B. Pérez, D. Correal, H. Astudillo","doi":"10.1109/TechDebt.2019.00025","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00025","url":null,"abstract":"Architectural Technical Debt (ATD) is a metaphor used to describe consciously decisions taken by software architects to accomplish short-term goals but possibly negatively affecting the long-term health of the system. However, difficulties arise when repayment strategies are defined because software architects need to be aware of the consequences of these strategies over others decisions in the software architecture. This article proposes REBEL, a semi-automated model-driven approach that exploits natural language processing, machine learning and model checking techniques on heterogeneous project artifacts to build a model that allows to locate and visualize the impact produced by the consciously injected ATD and its repayment strategy on the other architectural decisions. The technique is illustrated with a data analytics project in Colombia where software architects are unaware of the consequences of the repayment strategies. This proposal seeks to support teams of architects to make explicit the current and future impact of the ATD injected as a result of decisions taken, focusing on the architectural level rather than code level.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"44 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"126851101","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"TDMentions: A Dataset of Technical Debt Mentions in Online Posts","authors":"Morgan Ericsson, Anna Wingkvist","doi":"10.1109/TechDebt.2019.00031","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00031","url":null,"abstract":"The term technical debt is easy to understand as a metaphor, but can quickly grow complex in practice. We contribute with a dataset, TDMentions, that enables researchers to study how developers and end users use the term technical debt in online posts and discussions. The dataset consists of posts from news aggregators and Q&A-sites, blog posts, and issues and commits on GitHub.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"8 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125857918","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"How (not ) to Remove Technical Debt in Testing Environments","authors":"Valentin Guerlesquin","doi":"10.1109/TechDebt.2019.00008","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00008","url":null,"abstract":"All software systems, from new developments to legacy systems, suffer from test automation backlogs, i.e., manual tests that stagnate the rate of development and innovation. I argue that such backlogs are really technical debt. I expose here six behavior that may ruin your goal to remove test automation technical debt.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"38 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"125246033","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Lessons from the Exponential Growth of Refactoring Research in the Last Decade","authors":"Danny Dig","doi":"10.1109/TechDebt.2019.00020","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00020","url":null,"abstract":"In the last decade refactoring research has seen exponential growth. I will attempt to map this vast landscape and the advances that the community has made by answering questions such as who does what, when, where, why, and how. I will muse on some of the factors contributing to the growth of the field (e.g., refactoring the definition of refactoring to include other artifacts besides source code), the adoption of research into industry, and the lessons that we learned along this journey. This talk will present the value of prioritizing the important tasks, yet often the difficult ones. Several cases studies will show that everything worth doing is uphill all the way. This will inspire and equip you so that you can make a difference, with people who make a difference, at a time when it makes a difference.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"238 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134108006","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"DV8: Automated Architecture Analysis Tool Suites","authors":"Yuanfang Cai, R. Kazman","doi":"10.1109/TechDebt.2019.00015","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00015","url":null,"abstract":"This paper present our tool suite called DV8. The objective of DV8 is to measure software modularity, detect architecture anti-patterns as technical debts, quantify the maintenance cost of each instance of an anti-pattern, and enable return on investment analyses of architectural debts. Different from other tools, DV8 integrates data from both source code and revision history. We now elaborate on each of DV8's capabilities","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132910213","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Silverthread CodeMRI Care","authors":"Daniel J. Sturtevant","doi":"10.1109/TechDebt.2019.00019","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00019","url":null,"abstract":"Silverthread CodeMRI Care and Technical Health Improvement Plan is a collection of tools designed to produce objective architectural measurement and actionable improvement. These tools have been successfully applied within a DoD development environment wherein a small team was able to measurably improve the architectural health and software economic outcomes of their codebase within months.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"40 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"134086785","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
M. D. Biase, Ayushi Rastogi, M. Bruntink, A. Deursen
{"title":"The Delta Maintainability Model: Measuring Maintainability of Fine-Grained Code Changes","authors":"M. D. Biase, Ayushi Rastogi, M. Bruntink, A. Deursen","doi":"10.1109/TechDebt.2019.00030","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00030","url":null,"abstract":"Existing maintainability models are used to identify technical debt of software systems. Targeting entire codebases, such models lack the ability to determine shortcomings of smaller, fine-grained changes. This paper proposes a new maintainability model – the Delta Maintainability Model (DMM) – to measure fine-grained code changes, such as commits, by adapting and extending the SIG Maintainability Model. DMM categorizes changed lines of code into low and high risk, and then uses the proportion of low risk change to calculate a delta score. The goal of the DMM is twofold: first, producing meaningful and actionable scores; second, compare and rank the maintainability of fine-grained modifications. We report on an initial study of the model, with the goal of understanding if the adapted measurements from the SIG Maintainability Model suit the fine-grained scope of the DMM. In a manual inspection process for 100 commits, 67 cases matched the expert judgment. Furthermore, we report an exploratory empirical study on a data set of DMM scores on 3,017 issue-fixing commits of four open source and four closed source systems. Results show that the scores of DMM can be used to compare and rank commits, providing developers with a means to do root cause analysis on activities that impacted maintainability and, thus, address technical debt at a finer granularity.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"42 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132893836","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"How Deep is the Mud: Fathoming Architecture Technical Debt Using Designite","authors":"Tushar Sharma","doi":"10.1109/TechDebt.2019.00018","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00018","url":null,"abstract":"The quality of software architecture is an important concern for any software development team. Architecture smells represent quality issues at architecture granularity. Identifying and refactoring them periodically is a necessity to keep architecture quality high. We present Designite, a software design quality assessment tool, that identifies seven well-known architecture smells. Along with the identification, the tool provides supplementary information such as cause and responsible classes for each identified smell instance to help developers understand and refactor the smell. The tool is relevant and useful in both research and practice context. Software developers may use it to identify technical debt instances and to refactor them. On the other hand, software engineering researchers may use the tool to carry out large-scale empirical studies concerning code smells.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"18 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133573303","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}
{"title":"Teamscale: Tackle Technical Debt and Control the Quality of Your Software","authors":"Roman Haas, Rainer Niedermayr, Elmar Jürgens","doi":"10.1109/TechDebt.2019.00016","DOIUrl":"https://doi.org/10.1109/TechDebt.2019.00016","url":null,"abstract":"Teamscale is a software intelligence platform, that is, it creates transparency on code quality and the underlying software development process. This makes it possible for developers, testers and managers to better understand and control technical debt of their systems. In this paper, we give an overview of Teamscale and how this tool can be used in practice to control and lower technical debt in the long run. We explain which code analyses can be used to identify and address technical debt. Teamscale is available for free for research and teaching purposes at www.teamscale.io.","PeriodicalId":197657,"journal":{"name":"2019 IEEE/ACM International Conference on Technical Debt (TechDebt)","volume":"17 3","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2019-05-26","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"114110144","PeriodicalName":null,"FirstCategoryId":null,"ListUrlMain":null,"RegionNum":0,"RegionCategory":"","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":"","EPubDate":null,"PubModel":null,"JCR":null,"JCRName":null,"Score":null,"Total":0}