Managing Software Debt: Building for Inevitable Change (paperback)
©2011 |Addison-Wesley Professional | Available
In Managing Software Debt, leading Agile expert Chris Sterling shows how understanding software debt can help you move products to market faster, with a realistic plan for refactoring them based on experience. Writing for all Agile software professionals, Sterling explains why you’re going into software debt whether you know it or not—and why the interest on that debt can bring projects to a standstill. Next, he thoroughly explains each form of software debt, showing how to plan for it intelligently and repay it successfully. You’ll learn why accepting software debt is not the same as deliberate sloppiness, and you’ll learn how to use the software debt concept to systematically improve architectural agility. Coverage includes
Using this book’s techniques, senior software leadership can deliver more business value; managers can organize and support development teams more effectively; and teams and team members can improve their performance throughout the development lifecycle.
—Matthew Heusser, Software Process Naturalist
“Inertia: It’s what restricts change and leads to a cost of making a change or starting a change after a period of no investment or maintenance. This book explains in great detail what the different types of debt are that lead to inertia and, ultimately, to a cost to the business in managing software maintenance and development. The richness of explanation in this book of how to manage the virtual debt that every business incurs is unmatched. Every business-focused CIO, enterprise architect, software architect, or project manager should have a copy.”
—Colin Renouf, Enterprise Architect
“Software debt is an important concept and Sterling does a sterling job of explaining what it is, why it is bad, and how to avoid it. A healthy dose of theory sprinkled with lots of pragmatic examples.”
—Roger Sessions, CTO, ObjectWatch (objectwatch.com)
“Chris Sterling’s experience in Agile architecture and his focus on software debt make this book a must-read for architects and engineers on Agile teams.”
—Jan Bosch, VP Engineering Process, Intuit
“This book offers highlights and shortcomings of managing inherited software code and the debts that come with quality software. The author offers a unique perspective on dealing with software development issues. A must-read for all software developers.”
—Leyna Cotran, Institute for Software Research, University of California, Irvine
“The vital importance of rapid feedback to the software process is a fundamental premise of modern software methods. When such feedback is quantified in the form of software debt, the software process becomes most effective. Chris Sterling’s book holds the details you need to know in order to quantify the debt and pay it back. Moreover, it will teach you how to avoid debt in the first place.”
—Israel Gat, The Agile Executive (theagileexecutive.com and on Twitter at @agile_exec)
“This book represents a wonderful opportunity for a larger community to take advantage of Chris’s many years of experience and his innovative approaches to Agile architecture and continuous quality. . . . His book distills many of his principles and techniques into practical guidelines, and he manages to convey very powerful ideas in accessible prose, despite the inherent complexity of architecture and technical debt. . . . Chris’s book will help architects, leaders, and teams see their way to better systems and better organizational performance.”
—Evan Campbell, Founder of Chinook Software Consulting
Foreword xv
Introduction xxi
Acknowledgments xxxi
About the Author xxxiii
Chapter 1: Managing Software Debt 1
Where Does Software Debt Come From? 1
Software Debt Creeps In 3
Software Asset Depreciation 5
Business Expectations Do Not Lessen as Software Ages 12
Summary 14
Chapter 2: Technical Debt 15
Origins of Terminology 16
Patterns of Technical Debt 19
Acknowledging Technical Debt 22
Summary 30
Chapter 3: Sustaining Internal Quality 31
Discipline in Approach 31
Summary 52
Chapter 4: Executable Design 55
Principles of Executable Design 55
Executable Design in Practice 59
Summary 79
Chapter 5: Quality Debt 81
Quality as an Afterthought 81
Indicators of Quality Debt 85
Test Automation 93
Summary 104
Chapter 6: Configuration Management Debt 107
Overview of Configuration Management 108
Responsibilities for Configuration Management 109
Release Management 115
Branching Strategies 123
Documenting Software 126
Summary 128
Chapter 7: Design Debt 131
Robustness 131
The Cost of Not Addressing 135
Changeability 138
Review Sessions 146
Summary 150
Chapter 8: Designing Software 153
Application Design 153
Team Tools for Effective Design 163
Summary 171
Chapter 9: Communicating Architectures 173
The Three Levels of Architecture Perspective 173
Architecture Is S.A.I.D. 178
Modeling 186
Summary 188
Chapter 10: Technology Evaluation Styles 191
The Need for Technology Evaluation 191
When to Conduct Technology Evaluations 196
Summary 198
Chapter 11: Platform Experience Debt 199
Defining Platform Experience 199
Sharing Knowledge 203
Collaborative Team Configurations 206
Importance of Relevant Experience 217
Summary 219
Appendix: What Is Agile? 221
Index 229
Pearson offers affordable and accessible purchase options to meet the needs of your students. Connect with us to learn more.
K12 Educators: Contact your Savvas Learning Company Account General Manager for purchase options. Instant Access ISBNs are for individuals purchasing with credit cards or PayPal.
Savvas Learning Company is a trademark of Savvas Learning Company LLC.
Sterling
©2011  | Addison-Wesley Professional  | 288 pp
Chris Sterling, Partner at Sterling Barton, LLC, works with widely diverse clients as a technology, management, and Agile consultant. A Certified Scrum Trainer and Innovation Games Facilitator, he has created—and continues contributing to—multiple open source projects. He has been a speaker at many conferences and events, including Agile conferences, Better Software, SD West, Scrum Gatherings, and PNSQC. He teaches the Advanced Topics in Agile Software Development course for the University of Washington’s Agile Developer Certificate extension program.
We're sorry! We don't recognize your username or password. Please try again.
The work is protected by local and international copyright laws and is provided solely for the use of instructors in teaching their courses and assessing student learning.
You have successfully signed out and will be required to sign back in should you need to download more resources.