–Grady Booch, IBM Fellow
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
Table of contents
- Cover Page
- Title Page
- Copyright Page
- Contents at a Glance
- About the Authors
- About the Contributors
- SEI Figures for Managing Technical Debt
Part I: Exploring the Technical Debt Landscape
- Chapter 1. Friction in Software Development
- Chapter 2. What Is Technical Debt?
- Chapter 3. Moons of Saturn—The Crucial Role of Context
Part II: Analyzing Technical Debt
- Chapter 4. Recognizing Technical Debt
- Chapter 5. Technical Debt and the Source Code
- Chapter 6. Technical Debt and Architecture
- Chapter 7. Technical Debt and Production
Part III: Deciding What Technical Debt to Fix
- Chapter 8. Costing the Technical Debt
- Chapter 9. Servicing the Technical Debt
Part IV: Managing Technical Debt Tactically and Strategically
Chapter 10. What Causes Technical Debt?
- The Perplexing Art of Identifying What Causes Debt
- The Roots of Technical Debt
- What Causes Technical Debt?
- Causes Rooted in the Business
- Causes Arising from Change in Context
- Causes Associated with the Development Process
- Causes Arising from People and Team
- To Conclude
- What Can You Do Today?
- For Further Reading
- Chapter 11. Technical Debt Credit Check
- Chapter 12. Avoiding Unintentional Debt
- Chapter 13. Living with Your Technical Debt
- Chapter 10. What Causes Technical Debt?
- Technical Debt Description
- Title: Managing Technical Debt: Reducing Friction in Software Development
- Release date: April 2019
- Publisher(s): Addison-Wesley Professional
- ISBN: 9780135646052
You might also like
Building Microservices, 2nd Edition
As organizations shift from monolithic applications to smaller, self-contained microservices, distributed systems have become more fine-grained. …
Designing Distributed Systems
Without established design patterns to guide them, developers have had to build distributed systems from scratch, …
Architecting for Scale, 2nd Edition
Every day, companies struggle to scale critical applications. As traffic volume and data demands increase, these …