
Managing Software Debt
Building for Inevitable Change
Versandkostenfrei!
Versandfertig in über 4 Wochen
50,99 €
inkl. MwSt.
PAYBACK Punkte
25 °P sammeln!
Shipping imperfect software is like going into debt. When you incur debt, the illusion of doing things faster can lead to exponential growth in the cost of maintaining software. Software debt takes five major forms: technical, quality, configuration management, design, and platform experience. In today’s rush to market, software debt is inevitable. And that’s okay—if you’re careful about the debt you incur, and if you quickly pay it back.
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
Managing tensions between speed and perfection and recognizing that you’ll inevitably ship some “not quite right” code
Planning to minimize interest payments by paying debts quickly
Building architectures that respond to change and help enterprises run more smoothly
Incorporating emergent architecture concepts into daily activities, using Agile collaboration and refactoring techniques
Delivering code and other software internals that reduce the friction of future change
Using early, automated testing to move past the “break/fix” mentality
Scripting and streamlining both deployment and rollback
Implementing team configuration patterns and knowledge sharing approaches that make software debt easier to repay
Clearing away technical impediments in existing architectures
Using the YAGNI (“you ain’t gonna need it”) approach to strip away unnecessary complexity
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.
Product Description
Shipping imperfect software is like going into debt. When you incur debt, the illusion of doing things faster can lead to exponential growth in the cost of maintaining software. Software debt takes five major forms: technical, quality, configuration management, design, and platform experience. In today’s rush to market, software debt is inevitable. And that’s okay—if you’re careful about the debt you incur, and if you quickly pay it back.
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
Managing tensions between speed and perfection and recognizing that you’ll inevitably ship some “not quite right” code
Planning to minimize interest payments by paying debts quickly
Building architectures that respond to change and help enterprises run more smoothly
Incorporating emergent architecture concepts into daily activities, using Agile collaboration and refactoring techniques
Delivering code and other software internals that reduce the friction of future change
Using early, automated testing to move past the “break/fix” mentality
Scripting and streamlining both deployment and rollback
Implementing team configuration patterns and knowledge sharing approaches that make software debt easier to repay
Clearing away technical impediments in existing architectures
Using the YAGNI (“you ain’t gonna need it”) approach to strip away unnecessary complexity
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.
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
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
Managing tensions between speed and perfection and recognizing that you’ll inevitably ship some “not quite right” code
Planning to minimize interest payments by paying debts quickly
Building architectures that respond to change and help enterprises run more smoothly
Incorporating emergent architecture concepts into daily activities, using Agile collaboration and refactoring techniques
Delivering code and other software internals that reduce the friction of future change
Using early, automated testing to move past the “break/fix” mentality
Scripting and streamlining both deployment and rollback
Implementing team configuration patterns and knowledge sharing approaches that make software debt easier to repay
Clearing away technical impediments in existing architectures
Using the YAGNI (“you ain’t gonna need it”) approach to strip away unnecessary complexity
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.
Product Description
Shipping imperfect software is like going into debt. When you incur debt, the illusion of doing things faster can lead to exponential growth in the cost of maintaining software. Software debt takes five major forms: technical, quality, configuration management, design, and platform experience. In today’s rush to market, software debt is inevitable. And that’s okay—if you’re careful about the debt you incur, and if you quickly pay it back.
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
Managing tensions between speed and perfection and recognizing that you’ll inevitably ship some “not quite right” code
Planning to minimize interest payments by paying debts quickly
Building architectures that respond to change and help enterprises run more smoothly
Incorporating emergent architecture concepts into daily activities, using Agile collaboration and refactoring techniques
Delivering code and other software internals that reduce the friction of future change
Using early, automated testing to move past the “break/fix” mentality
Scripting and streamlining both deployment and rollback
Implementing team configuration patterns and knowledge sharing approaches that make software debt easier to repay
Clearing away technical impediments in existing architectures
Using the YAGNI (“you ain’t gonna need it”) approach to strip away unnecessary complexity
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.
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
Shipping imperfect software is like going into debt. When you incur debt, the illusion of doing things faster can lead to exponential growth in the cost of maintaining software. Software debt takes five major forms: technical, quality, configuration management, design, and platform experience. In today's rush to market, software debt is inevitable. And that's okay—if you're careful about the debt you incur, and if you quickly pay it back. 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 * Managing tensions between speed and perfection and recognizing that you'll inevitably ship some "not quite right” code * Planning to minimize interest payments by paying debts quickly * Building architectures that respond to change and help enterprises run more smoothly * Incorporating emergent architecture concepts into daily activities, using Agile collaboration and refactoring techniques * Delivering code and other software internals that reduce the friction of future change * Using early, automated testing to move past the "break/fix” mentality * Scripting and streamlining both deployment and rollback * Implementing team configuration patterns and knowledge sharing approaches that make software debt easier to repay * Clearing away technical impediments in existing architectures * Using the YAGNI ("you ain't gonna need it”) approach to strip away unnecessary complexity 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.