1 option
Managing Software Debt.
- Format:
- Book
- Author/Creator:
- Sterling, Chris.
- Language:
- English
- Subjects (All):
- Information Technology--General and Others.
- Local Subjects:
- Information Technology--General and Others.
- Physical Description:
- 1 online resource (284 pages)
- Edition:
- 1st ed.
- Other Title:
- Managing Software Debt
- Place of Publication:
- : Pearson Education Inc, 1900.
- 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 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” codePlanning to minimize interest payments by paying debts quicklyBuilding architectures that respond to change and help enterprises run more smoothlyIncorporating emergent architecture concepts into daily activities, using Agile collaboration and refactoringDelivering code and other software internals that reduce the friction of future changeUsing early, automated testing to move past the “break/fix” mentalityScripting and streamlining both deployment and rollbackImplementing team configuration patterns and
- knowledge sharing approaches that make software debt easier to repayClearing away technical impediments in existing architecturesUsing 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.
- Contents:
- Cover
- Contents
- Foreword
- Introduction
- Acknowledgments
- About the Author
- Chapter 1 Managing Software Debt
- Where Does Software Debt Come From?
- Software Debt Creeps In
- Software Asset Depreciation
- Like-to-Like Migration
- Limited Expertise Available
- Expensive Release Stabilization Phases
- Increased Cost of Regression Testing
- Business Expectations Do Not Lessen as Software Ages
- Summary
- Chapter 2 Technical Debt
- Origins of Terminology
- Other Viewpoints on Technical Debt
- Definition of Technical Debt
- Patterns of Technical Debt
- Schedule Pressure
- Duplication
- Get It "Right" the First Time
- Acknowledging Technical Debt
- Pay Off Technical Debt Immediately
- Strategically Placed Runtime Exceptions
- Add Technical Debt to the Product Backlog
- Chapter 3 Sustaining Internal Quality
- Discipline in Approach
- Sustainable Pace
- Early Identification of Internal Quality Problems
- Close Collaboration
- Small Batches of Work
- Refactoring
- Defining Technically Done
- Potentially Shippable Product Increments
- Single Work Queue
- Chapter 4 Executable Design
- Principles of Executable Design
- Executable Design in Practice
- Test Automation
- Continuous Unit Test Execution
- Merciless Refactoring
- Need-Driven Design
- Test-Driven Development (or Design?)
- Modeling Sessions
- Transparent Code Analysis
- Chapter 5 Quality Debt
- Quality as an Afterthought
- The Break/Fix Mentality
- Release Stabilization Period
- Indicators of Quality Debt
- Lengthening Regression Test Execution
- Increasing Known Unresolved Defects
- Maintenance Team for Production Issues
- Acceptance Tests
- Acceptance Test-Driven Development
- Automated Acceptance Testing Tools
- Compliance with Test Automation
- Summary.
- Chapter 6 Configuration Management Debt
- Overview of Configuration Management
- Responsibilities for Configuration Management
- Transferring Responsibilities to Teams
- Increase Automated Feedback
- Continuous Integration
- Tracking Issues Collaboratively
- Release Management
- Version Management
- Building from Scratch
- Automated Promotion
- Rollback Execution
- Push-Button Release
- Branching Strategies
- Single Source Repository
- Collapsing Branches
- Spike Branches
- Choosing a Branching Strategy
- Documenting Software
- Incremental Documentation
- Push Documentation to Later Iterations of the Release
- Generating Documentation
- Automated Test Scripts
- Chapter 7 Design Debt
- Robustness
- Modularity
- Architectural Description
- Evolve Tools and Infrastructure Continually
- The Cost of Not Addressing
- Abuse Stories
- Abuse Story Writing Session
- Changeability
- User Interfaces
- Services
- Application Programming Interfaces
- Review Sessions
- Design Reviews
- Pair Programming
- Retrospectives
- Chapter 8 Designing Software
- Application Design
- Where Design Issues Come From
- "Good" Design
- Incremental Design
- Simplify Design
- The "Wright Model" of Incremental Design
- Team Tools for Effective Design
- Design Tools
- Common Environment
- Working Agreement
- Chapter 9 Communicating Architectures
- The Three Levels of Architecture Perspective
- Component Architecture
- Application Architecture
- Enterprise Architecture
- Utility of the Three Levels of Architecture Perspective
- Architecture Is S.A.I.D.
- Structure
- Alignment
- Integrity
- Design
- Modeling
- Using Models for Communication
- Generating Artifacts
- Chapter 10 Technology Evaluation Styles
- The Need for Technology Evaluation
- Budgeting for Technology Evaluation.
- Research
- Spike
- Tracer Bullet
- When to Conduct Technology Evaluations
- In Preparation for the Next Iteration
- Near or During Iteration Planning
- Chapter 11 Platform Experience Debt
- Defining Platform Experience
- People Are NOT Resources
- Extreme Specialization
- Sharing Knowledge
- Pairing
- Training Programs
- Personal Development
- Collaborative Team Configurations
- Integration Team
- Feature Team
- Cross-Team Mentor
- Component Shepherd
- Virtual Team
- Importance of Relevant Experience
- Personal Training
- Communities of Practice
- Lunch and Learns
- Brown-Bag Sessions
- Appendix: What Is Agile?
- Scrum
- Extreme Programming
- Index.
- Notes:
- Description based on publisher supplied metadata and other sources.
- ISBN:
- 0-321-70060-0
- 1-282-91822-2
- 9786612918223
- 0-321-70055-4
- OCLC:
- 1027182816
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.