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