Skip to main content Site map

Managing Technical Debt: Reducing Friction in Software Development


Managing Technical Debt: Reducing Friction in Software Development

Paperback by Kruchten, Philippe; Nord, Robert; Nord, Robert; Ozkaya, Ipek

Managing Technical Debt: Reducing Friction in Software Development

£29.99

ISBN:
9780135645932
Publication Date:
13 Jun 2019
Language:
English
Publisher:
Pearson Education (US)
Imprint:
Addison Wesley
Pages:
272 pages
Format:
Paperback
For delivery:
Estimated despatch 22 May 2024
Managing Technical Debt: Reducing Friction in Software Development

Description

"This is an incredibly wise and useful book. The authors have considerable real-world experience in delivering quality systems that matter, and their expertise shines through in these pages. Here you will learn what technical debt is, what is it not, how to manage it, and how to pay it down in responsible ways. This is a book I wish I had when I was just beginning my career. The authors present a myriad of case studies, born from years of experience, and offer a multitude of actionable insights for how to apply it to your project." -Grady Booch, IBM Fellow Master Best Practices for Managing Technical Debt to Promote Software Quality and Productivity As software systems mature, earlier design or code decisions made in the context of budget or schedule constraints increasingly impede evolution and innovation. This phenomenon is called technical debt, and practical solutions exist. In Managing Technical Debt, three leading experts introduce integrated, empirically developed principles and practices that any software professional can use to gain control of technical debt in any software system. Using real-life examples, the authors explain the forms of technical debt that afflict software-intensive systems, their root causes, and their impacts. They introduce proven approaches for identifying and assessing specific sources of technical debt, limiting new debt, and "paying off" debt over time. They describe how to establish managing technical debt as a core software engineering practice in your organization. Discover how technical debt damages manageability, quality, productivity, and morale-and what you can do about it Clarify root causes of debt, including the linked roles of business goals, source code, architecture, testing, and infrastructure Identify technical debt items, and analyze their costs so you can prioritize action Choose the right solution for each technical debt item: eliminate, reduce, or mitigate Integrate software engineering practices that minimize new debt Managing Technical Debt will be a valuable resource for every software professional who wants to accelerate innovation in existing systems, or build new systems that will be easier to maintain and evolve.

Contents

Foreword xiii Preface xv Part I: Exploring the Technical Debt Landscape 1 Chapter 1: Friction in Software Development 3 The Promise of Managing Technical Debt 3 Technical Debt A-B-C 5 Examples of Technical Debt 6 Your Own Story About Technical Debt? 11 Who Is This Book For? 12 Principles of Technical Debt Management 13 Navigating the Concepts of the Book 14 What Can You Do Today? 16 For Further Reading 17 Chapter 2: What Is Technical Debt? 19 Mapping the Territory 19 The Technical Debt Landscape 20 Technical Debt Items: Artifacts, Causes, and Consequences 22 Principal and Interest 24 Cost and Value 27 Potential Debt versus Actual Debt 32 The Technical Debt Timeline 33 What Can You Do Today? 35 For Further Reading 35 Chapter 3: Moons of Saturn-The Crucial Role of Context 37 "It Depends..." 37 Three Case Studies: Moons of Saturn 39 Technical Debt in Context 44 What Can You Do Today? 48 For Further Reading 48 Part II: Analyzing Technical Debt 49 Chapter 4: Recognizing Technical Debt 51 Where Does It Hurt? 51 What Are the Visible Consequences of Technical Debt? 54 Writing a Technical Debt Description 55 Understanding the Business Context for Assessing Technical Debt 58 Assessing Artifacts Across the Technical Debt Landscape 60 What Can You Do Today? 63 For Further Reading 64 Chapter 5: Technical Debt and the Source Code 65 Looking for the Magic Wand 65 Understand Key Business Goals 68 Identify Questions About the Source Code 70 Define the Observable Measurement Criteria 72 Select and Apply an Analysis Tool 75 Document the Technical Debt Items 76 Then Iterate 78 What Happens Next? 79 What Can You Do Today? 80 For Further Reading 81 Chapter 6: Technical Debt and Architecture 83 Beyond the Code 83 Ask the Designers 86 Examine the Architecture 89 Examine the Code to Get Insight into the Architecture 93 The Case of Technical Debt in the Architecture of Phoebe 94 What Can You Do Today? 101 For Further Reading 101 Chapter 7: Technical Debt and Production 103 Beyond the Architecture, the Design, and the Code 103 Build and Integration Debt 106 Testing Debt 109 Infrastructure Debt 110 The Case of Technical Debt in the Production of Phoebe 110 What Can You Do Today? 113 For Further Reading 113 Part III: Deciding What Technical Debt to Fix 115 Chapter 8: Costing the Technical Debt 117 Shining an Economic Spotlight on Technical Debt 117 Refine the Technical Debt Description 119 Calculate the Cost of Remediation 121 Calculate the Recurring Interest 122 Compare Cost and Benefit 123 Manage Technical Debt Items Collectively 127 What Can You Do Today? 129 For Further Reading 130 Chapter 9: Servicing the Technical Debt 131 Weighing the Costs and Benefits 131 Paths for Servicing Technical Debt 136 The Release Pipeline 142 The Business Case for Technical Debt as an Investment 143 What Can You Do Today? 146 For Further Reading 147 Part IV: Managing Technical Debt Tactically and Strategically 149 Chapter 10: What Causes Technical Debt? 151 The Perplexing Art of Identifying What Causes Debt 151 The Roots of Technical Debt 153 What Causes Technical Debt? 154 Causes Rooted in the Business 155 Causes Arising from Change in Context 157 Causes Associated with the Development Process 159 Causes Arising from People and Team 162 To Conclude 165 What Can You Do Today? 165 For Further Reading 166 Chapter 11: Technical Debt Credit Check 167 Identifying Causes: Technical Debt Credit Check 167 Four Focus Areas for Understanding the State of a Project 170 Diagnosing the Causes of Technical Debt in Phoebe 172 Diagnosing the Causes of Technical Debt in Tethys 174 What Can You Do Today? 177 For Further Reading 178 Chapter 12: Avoiding Unintentional Debt 179 Software Engineering in a Nutshell 179 Code Quality and Unintentional Technical Debt 180 Architecture, Production, and Unintentional Technical Debt 185 What Can You Do Today? 193 For Further Reading 193 Chapter 13: Living with Your Technical Debt 195 Your Technical Debt Toolbox 195 On the Three Moons of Saturn... 201 Technical Debt and Software Development 204 Finale 205 Glossary 207 References 209 Index 217

Back

University of Salford logo