did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

did-you-know? rent-now

Amazon no longer offers textbook rentals. We do!

We're the #1 textbook rental company. Let us show you why.

9780321554130

Managing Software Debt : Building for Inevitable Change

by
  • ISBN13:

    9780321554130

  • ISBN10:

    0321554132

  • Edition: 1st
  • Format: Hardcover
  • Copyright: 2010-12-10
  • Publisher: Addison-Wesley Professional
  • Purchase Benefits
  • Free Shipping Icon Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • eCampus.com Logo Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.99 Save up to $5.00
  • Digital
    $44.99
    Add to Cart

    DURATION
    PRICE

Supplemental Materials

What is included with this book?

Summary

Shipping imperfect software is like going into debt. When you incur debt, you can do things faster than if you had to pay for everything upfront. Software debt takes five major forms: technical, quality, configuration management, design, and platform experience. In todayrs"s rush to market, software debt is inevitable. And thatrs"s okay-ifyours"re careful about the debt you incur,andifyou quickly pay it back. InManaging 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 yours"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. Yours"ll learn why accepting software debt isnotthe same as deliberate sloppiness, and yours"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 yours"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 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 ainrs"t gonna need it") approach to strip away unnecessary complexity Using this bookrs"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.

Author Biography

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.

Table of Contents

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

Supplemental Materials

What is included with this book?

The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

The Used, Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.

Rewards Program