<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">Perspectives on Managing Technical Debt</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Clemente</forename><surname>Izurieta</surname></persName>
							<email>clemente.izurieta@montana.edu</email>
						</author>
						<author>
							<persName><forename type="first">Ipek</forename><surname>Ozkaya</surname></persName>
							<email>ozkaya@sei.cmu.edu</email>
							<affiliation key="aff1">
								<orgName type="department">Software Engineering Institute</orgName>
								<orgName type="institution">Carnegie Mellon University</orgName>
								<address>
									<settlement>Pittsburgh</settlement>
									<region>PA</region>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Carolyn</forename><surname>Seaman</surname></persName>
							<email>cseaman@umbc.edu</email>
						</author>
						<author>
							<persName><forename type="first">Philippe</forename><surname>Kruchten</surname></persName>
						</author>
						<author>
							<persName><forename type="first">Robert</forename><surname>Nord</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">Software Engineering Institute</orgName>
								<orgName type="institution">Carnegie Mellon University</orgName>
								<address>
									<settlement>Pittsburgh</settlement>
									<region>PA</region>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Will</forename><surname>Snipes</surname></persName>
							<email>will.snipes@us.abb.com</email>
						</author>
						<author>
							<persName><forename type="first">Paris</forename><surname>Avgeriou</surname></persName>
						</author>
						<author>
							<affiliation key="aff0">
								<orgName type="institution">Montana State University</orgName>
								<address>
									<settlement>Bozeman</settlement>
									<region>MT</region>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff2">
								<orgName type="institution">University of Maryland Baltimore County</orgName>
								<address>
									<region>Maryland, MD</region>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff3">
								<orgName type="institution">University of British Columbia</orgName>
								<address>
									<region>BC</region>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff4">
								<orgName type="institution">ABB Corporate Research</orgName>
								<address>
									<settlement>Raleigh</settlement>
									<region>NC</region>
									<country key="US">USA</country>
								</address>
							</affiliation>
						</author>
						<author>
							<affiliation key="aff5">
								<orgName type="institution">University of Groningen</orgName>
								<address>
									<settlement>Groningen</settlement>
									<country key="NL">Netherlands</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">Perspectives on Managing Technical Debt</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">2C32072D5B1E1410B3FE1E4F6A81E701</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-24T10:49+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>technical debt</term>
					<term>software quality</term>
					<term>software decay</term>
					<term>software economics</term>
					<term>software project management</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>Thirty-three practitioners, researchers, students, and tool vendors gathered in Dagstuhl, Germany, for five days in April 2016 to discuss the state of managing technical debt in software engineering. Participants reflected on the significant advances that the Managing Technical Debt (MTD) community has made since its inception in 2010; reached a consensus on a definition, called the Dagstuhl 16K technical debt definition; and discussed avenues for future progress in the area. This paper provides a brief history, summarizes current research, and offers a roadmap and a vision that describe the areas of research where significant challenges remain.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>While other software engineering disciplines-such as software sustainability, maintenance and evolution, refactoring, software quality, and empirical software engineering-have produced results relevant to managing technical debt, none of them alone suffice to model, manage, and communicate the different facets of the design trade-off problems involved in managing technical debt. Although the technical debt metaphor can be attributed to Cunningham <ref type="bibr" target="#b0">[1]</ref>, a community consensus on a pithy and focused definition has been a barrier for research progress that could address the most pressing immediate needs of the software engineering community. The technical debt metaphor describes a situation in which developers accept quality compromises in the current release to meet a deadline (e.g., delivering a release on time). A subsequent release that has been compromised will incur a higher cost in the form of higher maintenance efforts.</p><p>To date, the technical debt metaphor has served as a strong communication and reference mechanism, but the community now understands that technical debt is also a software development artifact that is incurred (mostly) unintentionally and discovered during later stages of software development. Moreover, the community also recognizes that the key research challenges ahead cannot be addressed by simply repurposing code quality and maintainability analysis as technical debt analytics. The Dagstuhl Seminar 16162 (Dagstuhl 16K) definition of technical debt focuses on design and implementation artifacts that affect maintainability and evolvability of software. This definition also prompted the community to address the problem of classifying artifacts in the periphery of the definition. Examples of the latter include social, documentation, process, and infrastructure debt. We thus present a conceptual model that allows for extension and context representation of various artifacts.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. BACKGROUND</head><p>The Management of Technical Debt (MTD) community has formally existed since 2010. Figure <ref type="figure">1</ref> depicts the timeline of prior events and illustrates new meetings that represent an increased level of activity. The outcome of these efforts has been more than 200 research papers written by research groups across the globe, systematic literature studies organizing the space and demonstrating gaps, and special issues in practitioner and research journals such as IEEE Software and the Journal of Systems and Software. Possibly the most welcomed and challenging outcome has been an ever-increasing involvement of the practitioner community. As a result, many tool vendors have started adding or repurposing features to support technical debt analysis. Many organizations are also looking into developing their own internal best practices for managing technical debt, and they need help.</p><p>Table <ref type="table">1</ref> illustrates the topics on which technical debt research has focused since 2006. We clearly see a sharp distinction between artifacts that are easier to measure, such as code, and those that are not, such as people. It also shows which topics have received more and less research.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. THE DAGSTUHL FORMAT</head><p>Dagstuhl brought together researchers, practitioners, students, and tool vendors from academia and industry who are interested in the theoretical foundations of technical debt and how to manage it (e.g., techniques for measurement, analysis, and prevention). The organizers created a blog where attendees posted positions and started discussions to facilitate seeding of ideas prior to the seminar. Organizers grouped discussions and blog entries into relevant themes that included creating a common definition and conceptual model of technical debt, measurement and analysis of technical debt, management of technical debt, and a research roadmap for managing technical debt. No long talks were featured. Each day had three types of sessions. There was a plenary session for "lightning talks," in which each presenter had 10 minutes for presentation and questions on each day except for the last day of the seminar.</p><p>1st International Workshop on Technical Debt Analytics (TDA 2016) Fig. <ref type="figure">1</ref>. Technical debt community events <ref type="bibr" target="#b2">[3]</ref> Table <ref type="table">1</ref>. Where is research focused? <ref type="bibr" target="#b3">[4]</ref> IV. TECHNICAL DEBT The significant outcomes of the seminar include a definition, a conceptual model, and a list of challenges that we face moving forward on the research agenda and transition prospects for managing technical debt. The definition and model serve as starting points for the community to build on and improve.</p><p>The Dagstuhl 16K definition presents an expansion over past definitions by taking into account the concerns heard from prior technical debt events and the thinking that has occurred over the years. Specifically, this definition elevates the concepts of evolvability and maintainability as the primary foci of technical debt research, combines design and implementation constructs, and highlights the context-specific trade-offs that need to be made in an expedient manner.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Definition of Technical Debt</head><p>Attendees converged on the following (Dagstuhl 16K) definition <ref type="bibr" target="#b1">[2]</ref>[5] for technical debt: "In software-intensive systems, technical debt is a collection of design or implementation constructs that are expedient in the short term, but set up a technical context that can make future changes more costly or impossible. Technical debt presents an actual or contingent liability whose impact is limited to internal system qualities, primarily maintainability and evolvability."</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Conceptual Model and Related Activities of Technical Debt</head><p>Another outcome of the seminar was the recognition that, similar to other complex software engineering artifacts, technical debt is best described through multiple viewpoints. Concepts related to technical debt should be discussed based on two related viewpoints: a) the viewpoint describing the properties, artifacts, and elements related to technical debt items (see Fig. Figure <ref type="figure" target="#fig_0">2</ref> shows the conceptual model in the form of a UML class diagram, which focuses on the first viewpoint and helped the group converge on key concepts. The technical debt associated with a software-intensive system is composed of a set of technical debt (TD) items, and this technical debt is one of many concerns associated with a system. TD items have both causes and consequences. The cause of technical debt can be a process, a decision, an action (or lack thereof), or an event that triggers the existence of that TD item, such as schedule pressure, unavailability of a key person, or lack of information about a technical feature. The consequences of a TD item are many: technical debt can affect the value of the system, the costs of future changes, the schedule, and system quality. The business objectives of the sponsoring organization developing or maintaining the software system are affected in several ways: through delays, loss of quality for some features of the system, and difficulties in maintaining the system operations (continuance). A TD item is associated with one or more concrete, tangible artifacts of the software development process, primarily the code, but also to some extent the documentation, known defects, and tests associated with the system.</p><p>To keep with the financial metaphor, the cost impact of technical debt can be seen as composed of principal and interest. The principal is the cost savings gained by taking some initial approach or shortcut in development (the initial principal, often the initial benefit) or the cost that it would now take to develop a different or better solution (the current principal). The interest is comprised of costs that add up as time passes. There is recurring interest: additional cost incurred by the project in the presence of technical debt, due to reduced velocity (or productivity), induced defects, and loss of quality (maintainability is affected). And there is accruing interest: the additional cost of developing new software depending on not-quite-right code (evolvability is affected). This view summarizing the elements related to technical debt, however, does not capture the activities that need to be conducted to manage technical debt or the states that debt may go through. An activity-focused view would map out research topics to be studied such as identifying, visualizing, assessing, and making decisions about technical debt. The phenomena all along the causal chain of causes and consequences are also important to investigate.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Technical Debt Management</head><p>Managing technical debt includes recognizing, analyzing, monitoring, and measuring it. Today many organizations do not have established practices to manage technical debt, and project managers and developers alike are asking for methods and tools to help them strategically plan, track, and pay down technical debt. We identified two broad high-priority challenges:</p><p>1) Developing effective tooling (academia and industry) to assist with assessing technical debt: A number of studies have examined the relationship between software code quality and technical debt. This work has applied detection of "code smells" (low internal code quality), coupling and cohesion, and dependency analysis to identify technical debt. However, empirical examples collected from industry all point out that the most significant technical debt is caused by design tradeoffs, which are not detectable by measuring code quality. For example, an architectural decision encountered early in the design stage is the selection of a Visitor pattern vs. inheritance-based designs. Either design selection may be appropriate in the current context and would not yield smells; however, later evolutionary steps may reveal different maintenance problems, depending on the choice. Furthermore, several published case studies demonstrate that assessing technical debt appropriately requires combining several analysis techniques together.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>2) Establishing an empirical basis and data science for technical debt:</head><p>Well-defined benchmarks (with uncertainty levels) provide a basis for evaluating new approaches and 1st International Workshop on Technical Debt Analytics (TDA 2016) ideas. They are also an essential first step toward creating an empirical basis on which work in this area can grow more effectively. Effective and well-accepted benchmarks allow researchers to validate their work and tailor empirical studies to be synergistic. Technical debt's evolving definition and its sensitivity to context have inhibited the development of benchmarks so far. An ideal benchmark for technical debt research would consist of a code base, architectural models (perhaps with several versions), and known TD items. New approaches could be run against these artifacts to see how well the approaches reveal TD items. Industry needs guidance for how and what data to collect and what artifacts they can make available to enable progress in understanding, measuring, and managing technical debt.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. RESEARCH ROADMAP AND VISION</head><p>The Dagstuhl participants spent some time envisioning what the world would be like if technical debt research were as successful as we could ever hope it to be. The resulting vision is summarized in the following points:</p><p>• Technical debt will be managed as well as we now manage defects, vulnerabilities, and new features. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>CONCLUSION</head><p>Technical debt is an active field of research with a growing community, as evidenced by the success of meetings and increased research output such as papers, commercial tools, and new projects. However, significant challenges remain to meet effective tooling demands, to establish an empirical basis, and to pinpoint artifacts that serve as inputs to measurement and analysis and most importantly to be useful in practice. The research roadmap is an evolving document and activity that requires active involvement from the greater community of academics and practitioners alike. The hope is that it will continue to be refined and instantiated at gatherings of researchers and engineers interested in future research in technical debt management.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. Contextual figure of technical debt [2][5]</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0"><head></head><label></label><figDesc></figDesc><graphic coords="3,86.90,54.00,438.15,213.75" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" type="table" xml:id="tab_0"><head>•</head><label></label><figDesc>We have a way to translate developer concerns to manager concerns-a basis for making decisions about allocating time for reducing technical debt.• Technical debt will be mostly incurred intentionally. • Projects that manage technical debt are more efficient, effective, and sustainable than projects that don't. • There is support for up-front and continuous architectural work (vs. emergent architecture) and evidence that it helps avoid and manage technical debt. Understanding phenomena that fall outside the core definition of technical debt and that have an essential relationship with how technical debt plays out in practice. Specific activities include • identifying the important context factors (e.g., code volatility, business context, development personnel) that affect the evaluation of technical debt • understanding the relationship of other types of debt (e.g., social, infrastructure) as causes or consequences of technical debt • exploring the role of development methodologies to manage technical debt 3) The Necessary Infrastructure: Building the shared infrastructure that facilitates all our research activities. Specific activities include • sharing experimental data sets and study designs • creating benchmarks in an effort to standardize tools and measures • developing techniques to inject different forms of technical debt into data sets in order to evaluate, predict, and validate techniques</figDesc><table><row><cell cols="5">• Tools support all aspects of technical debt management,</cell></row><row><cell cols="4">and all stakeholders adopt them and use them.</cell><cell></cell></row><row><cell cols="5">• Technical debt-aware development (practices and tools)</cell></row><row><cell cols="4">is an accepted way of producing software.</cell><cell></cell></row><row><cell cols="5">This vision set the stage for the beginnings of a research</cell></row><row><cell cols="5">roadmap to guide future research to establish a cohesive body</cell></row><row><cell cols="5">of knowledge about how to manage technical debt. The</cell></row><row><cell cols="4">research roadmap consists of three major parts:</cell><cell></cell></row><row><cell>1) The</cell><cell>Core:</cell><cell>Defining,</cell><cell>understanding,</cell><cell>and</cell></row><row><cell cols="5">operationalizing the concept of value with respect to technical</cell></row><row><cell cols="3">debt. Specific activities include</cell><cell></cell><cell></cell></row><row><cell cols="5">• investigating the role of opportunity cost to measure</cell></row><row><cell cols="5">the differences in value between a decision to</cell></row><row><cell cols="5">implement new features that incur technical debt or</cell></row><row><cell cols="5">make infrastructure improvements that avoid technical</cell></row><row><cell cols="4">debt while foregoing the features</cell><cell></cell></row><row><cell cols="5">• understanding the factors, beyond principal and</cell></row><row><cell cols="5">interest, that go into making decisions about incurring,</cell></row><row><cell cols="4">paying off, and managing technical debt</cell><cell></cell></row><row><cell cols="5">• understanding how to model technical debt</cell></row><row><cell cols="5">phenomena over time, which is not linear in software</cell></row><row><cell cols="2">development</cell><cell></cell><cell></cell><cell></cell></row><row><cell cols="3">2) The Essential Context:</cell><cell></cell><cell></cell></row></table></figure>
		</body>
		<back>

			<div type="acknowledgement">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>ACKNOWLEDGMENT</head></div>
			</div>


			<div type="funding">
<div xmlns="http://www.tei-c.org/ns/1.0"><p>This material is based upon work funded and supported by the Department of Defense under Contract No. FA8721-05-C-0003 with Carnegie Mellon University for the operation of the Software Engineering Institute, a federally funded research and development center. NO WARRANTY. THIS CARNEGIE MELLON UNIVERSITY AND SOFTWARE ENGINEERING INSTITUTE MATERIAL IS FURNISHED ON AN "AS-IS" BASIS. CARNEGIE MELLON UNIVERSITY MAKES NO WARRANTIES OF ANY KIND, EITHER EXPRESSED OR IMPLIED, AS TO ANY MATTER INCLUDING, BUT NOT LIMITED TO, WARRANTY OF FITNESS FOR PURPOSE OR MERCHANTABILITY, EXCLUSIVITY, OR RESULTS OBTAINED FROM USE OF THE MATERIAL. CARNEGIE MELLON UNIVERSITY DOES NOT MAKE ANY WARRANTY OF ANY KIND WITH RESPECT TO FREEDOM FROM PATENT, TRADEMARK, OR COPYRIGHT INFRINGEMENT. [Distribution Statement A] This material has been approved for public release and unlimited distribution. Please see Copyright notice for non-US Government use and distribution. DM-0004135.</p><p>We thank Tamara Marshall-Keim for her expert input.</p></div>
			</div>

			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">The WyCash portfolio management system</title>
		<author>
			<persName><forename type="first">W</forename><surname>Cunningham</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">SIGPLAN OOPS Mess</title>
		<imprint>
			<biblScope unit="volume">4</biblScope>
			<biblScope unit="issue">2</biblScope>
			<biblScope unit="page" from="29" to="30" />
			<date type="published" when="1992-12">Dec 1992</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<analytic>
		<title/>
		<ptr target="http://www.dagstuhl.de/16162" />
	</analytic>
	<monogr>
		<title level="j">Managing Technical Debt in Software Engineering</title>
		<imprint>
			<biblScope unit="volume">6</biblScope>
			<biblScope unit="issue">4</biblScope>
			<date type="published" when="2016">April 17-22, 2016</date>
		</imprint>
	</monogr>
	<note>Dagstuhl Reports</note>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<title level="m">8th International Workshop on Managing Technical Debt (MTD)</title>
				<meeting><address><addrLine>Raleigh, NC</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016-10-04">October 4, 2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<analytic>
		<title/>
		<author>
			<persName><surname>Nsr Alves</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">Information and Software Technology</title>
		<imprint>
			<biblScope unit="volume">70</biblScope>
			<biblScope unit="page" from="100" to="121" />
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="https://mtd2016dagstuhl" />
		<title level="m">Dagstuhl</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<monogr>
		<title level="m">International Workshop on Technical Debt Analytics</title>
				<meeting><address><addrLine>TDA</addrLine></address></meeting>
		<imprint>
			<date type="published" when="2016">2016</date>
		</imprint>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
