My Account Log in

1 option

Managing Software Debt.

O'Reilly Online Learning: Academic/Public Library Edition Available online

View online
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.

Find

Home Release notes

My Account

Shelf Request an item Bookmarks Fines and fees Settings

Guides

Using the Find catalog Using Articles+ Using your account