J. D. Morgenthaler, M. Gridnev, R. Sauciuc, Sanjay Bhansali
{"title":"Searching for build debt: Experiences managing technical debt at Google","authors":"J. D. Morgenthaler, M. Gridnev, R. Sauciuc, Sanjay Bhansali","doi":"10.1109/MTD.2012.6225994","DOIUrl":"https://doi.org/10.1109/MTD.2012.6225994","url":null,"abstract":"With a large and rapidly changing codebase, Google software engineers are constantly paying interest on various forms of technical debt. Google engineers also make efforts to pay down that debt, whether through special Fixit days, or via dedicated teams, variously known as janitors, cultivators, or demolition experts. We describe several related efforts to measure and pay down technical debt found in Google's BUILD files and associated dead code. We address debt found in dependency specifications, unbuildable targets, and unnecessary command line flags. These efforts often expose other forms of technical debt that must first be managed.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"10 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127130054","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":"Technical debt aggregation in ecosystems","authors":"J. McGregor, J. Y. Monteith, Jie Zhang","doi":"10.1109/MTD.2012.6225996","DOIUrl":"https://doi.org/10.1109/MTD.2012.6225996","url":null,"abstract":"The members of the ecosystem encompassing our organization are affected by our decisions just as we are affected by their decisions. If an organization takes on technical debt with respect to a specific asset, that decision will affect users of the asset either directly or indirectly. In this position paper we distinguish between incurring technical debt directly and experiencing the effects of technical debt indirectly. We illustrate why two separate concepts are needed for a complete theory and provide examples from ecosystem models we have created for several organizations. The result is a model that produces good explanations for posited scenarios.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"29 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"117032119","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":"Visualising architectural dependencies","authors":"J. Brøndum, Liming Zhu","doi":"10.5555/2666036.2666038","DOIUrl":"https://doi.org/10.5555/2666036.2666038","url":null,"abstract":"Visibility of technical debt is critical. A lack thereof can lead to significant problems without adequate visibility as part of the system level decision-making processes [2]. Current approaches for analysing and monitoring architecture related debt are based on dependency analysis to detect code level violations of the software architecture [2,3,6]. However, heterogeneous environments with several systems constructed using OTS, and/or several programming languages may not offer sufficient code visibility. Other limiting factors include legal contracts, Intellectual Property Rights, and just very large systems. Secondly, the complexity of a software dependency is often greater than simple structural dependencies, including; multi-dimensional properties (as argued by [10]); behavioural dependencies [5,9]; and `implicit' dependencies (i.e., dependency inter-relatedness [11]). This paper proposes a simple modelling approach for visualising dependency relationships as an extension of the current approaches, while supporting complex dependencies. The model can be built using existing dependency analysis and general architectural knowledge; thus is better suited for heterogeneous environments. We demonstrate the proposed modelling using an exemplar, and two field case studies.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"28 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132527404","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":"On the role of requirements in understanding and managing technical debt","authors":"Neil A. Ernst","doi":"10.1109/MTD.2012.6226002","DOIUrl":"https://doi.org/10.1109/MTD.2012.6226002","url":null,"abstract":"Technical debt is the trading of long-term software quality in favor of short-term expediency. While the concept has traditionally been applied to tradeoffs at the code and architecture phases, it also manifests itself in the system requirements analysis phase. Little attention has been paid to requirements over time in software: requirements are often badly out of synch with the implementation, or not used at all. However, requirements are the ultimate validation of project success, since they are the manifestation of the stakeholder's desires for the system. In this position paper, we define technical debt in requirements as the distance between the implementation and the actual state of the world. We highlight how a requirements modeling tool, RE-KOMBINE, makes requirements, domain constraints and implementation first-class concerns. RE-KOMBINE represents technical debt using the notion of optimal solutions to a requirements problem. We show how this interpretation of technical debt may be useful in deciding how much requirements analysis is sufficient.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"76 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"132808803","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}
J. D. Groot, Ariadi Nugroho, Thomas Bäck, Joost Visser
{"title":"What is the value of your software?","authors":"J. D. Groot, Ariadi Nugroho, Thomas Bäck, Joost Visser","doi":"10.1109/MTD.2012.6225998","DOIUrl":"https://doi.org/10.1109/MTD.2012.6225998","url":null,"abstract":"Assessment of the economic value of software systems is useful in contexts such as capitalization on the balance sheet and due diligence prior to acquisition. Current accounting practice in determining software value is based on the cost spent in software development. This approach fails to account for the efficiency with which software has been produced or the quality of the product. This paper proposes three alternative models for determining the production value of software, based on the notions of technical debt and interest. We applied the models to 367 proprietary systems developed by a range of different organisations using a range of different programming languages. We present the valuation results and discuss the weaknesses and strengths of the models.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"26 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"122737463","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}
W. Snipes, Brian P. Robinson, Yuepu Guo, C. Seaman
{"title":"Defining the decision factors for managing defects: A technical debt perspective","authors":"W. Snipes, Brian P. Robinson, Yuepu Guo, C. Seaman","doi":"10.1109/MTD.2012.6226001","DOIUrl":"https://doi.org/10.1109/MTD.2012.6226001","url":null,"abstract":"Making a decision about whether to fix or defer fixing a defect is important to software projects. Deferring defects accumulates a technical debt that burdens the software team and customer with a less than optimal solution. The decision to defer fixing a defect is made by Software Change Control Boards (CCBs) based on a set of decision factors. In this paper, we evaluated the set of decision factors used by two CCBs at ABB in the context of technical debt management The aim was to determine how a model of cost and benefits of incurring technical debt could be part of the CCB decision process. We identified the cost categories and decision factors for fixing and deferring defects as a result of interviews with CCB members. We found that the decision factors could incorporate the financial aspects when using the technical debt metaphor. We identify opportunities for further research to integrate technical debt concepts with the decision factors towards better long term outcomes.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"191 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"116250826","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}
C. Seaman, Yuepu Guo, C. Izurieta, Yuanfang Cai, N. Zazworka, F. Shull, A. Vetrò
{"title":"Using technical debt data in decision making: Potential decision approaches","authors":"C. Seaman, Yuepu Guo, C. Izurieta, Yuanfang Cai, N. Zazworka, F. Shull, A. Vetrò","doi":"10.5555/2666036.2666044","DOIUrl":"https://doi.org/10.5555/2666036.2666044","url":null,"abstract":"The management of technical debt ultimately requires decision making - about incurring, paying off, or deferring technical debt instances. This position paper discusses several existing approaches to complex decision making, and suggests that exploring their applicability to technical debt decision making would be a worthwhile subject for further research.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"58 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"127225158","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":"Estimating the size, cost, and types of Technical Debt","authors":"B. Curtis, Jay Sappidi, Alexandra Szynkarski","doi":"10.1109/MTD.2012.6226000","DOIUrl":"https://doi.org/10.1109/MTD.2012.6226000","url":null,"abstract":"This study summarizes results of a study of Technical Debt across 745 business applications comprising 365 million lines of code collected from 160 companies in 10 industry segments. These applications were submitted to a static analysis that evaluates quality within and across application layers that may be coded in different languages. The analysis consists of evaluating the application against a repository of over 1200 rules of good architectural and coding practice. A formula for estimating Technical Debt with adjustable parameters is presented. Results are presented for Technical Debt across the entire sample as well as for different programming languages and quality factors.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"23 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"124045141","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}
C. Izurieta, A. Vetrò, N. Zazworka, Yuanfang Cai, C. Seaman, F. Shull
{"title":"Organizing the technical debt landscape","authors":"C. Izurieta, A. Vetrò, N. Zazworka, Yuanfang Cai, C. Seaman, F. Shull","doi":"10.1109/MTD.2012.6225995","DOIUrl":"https://doi.org/10.1109/MTD.2012.6225995","url":null,"abstract":"To date, several methods and tools for detecting source code and design anomalies have been developed. While each method focuses on identifying certain classes of source code anomalies that potentially relate to technical debt (TD), the overlaps and gaps among these classes and TD have not been rigorously demonstrated. We propose to construct a seminal technical debt landscape as a way to visualize and organize research on the subject.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"3 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"133931817","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":"Investigating the impact of code smells debt on quality code evaluation","authors":"F. Fontana, Vincenzo Ferme, Stefano Spinelli","doi":"10.1109/MTD.2012.6225993","DOIUrl":"https://doi.org/10.1109/MTD.2012.6225993","url":null,"abstract":"Different forms of technical debt exist that have to be carefully managed. In this paper we focus our attention on design debt, represented by code smells. We consider three smells that we detect in open source systems of different domains. Our principal aim is to give advice on which design debt has to be paid first, according to the three smells we have analyzed. Moreover, we discuss if the detection of these smells could be tailored to the specific application domain of a system.","PeriodicalId":156499,"journal":{"name":"2012 Third International Workshop on Managing Technical Debt (MTD)","volume":"1 1","pages":"0"},"PeriodicalIF":0.0,"publicationDate":"2012-06-05","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":null,"resultStr":null,"platform":"Semanticscholar","paperid":"115824913","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}