Thông tin tài liệu
ptg
www.it-ebooks.info
Praise for Managing Software Debt
“If you work in technology, you’re probably familiar with terms like ‘technical debt.’ The meta-
phor seems easy, but using it to influence change can be remarkably hard. To do that, you’re
going to want to present options to decision makers, backed up by evidence. I’ve been
impressed watching Chris Sterling research and refine his work in just this area for several
years, and I’m pleased to see him release it as a book. If you want to go beyond clichés to talk
about how to deal with the problem of software debt, this is the seminal work in the field—and
it’s also the book for you.”
—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 dif-
ferent types of debt are that lead to inertia and, ultimately, to a cost to the business in manag-
ing 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 con-
tinuous 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 inher-
ent 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
www.it-ebooks.info
This page intentionally left blank
www.it-ebooks.info
M
ANAGING
S
OFTWARE
D
EBT
www.it-ebooks.info
A
gile software development centers on four values, which are identified in the
Agile Alliance’s Manifesto:
1. Individuals and interactions over processes and tools
2. Working software over comprehensive documentation
3. Customer collaboration over contract negotiation
4. Responding to change over following a plan
The development of Agile software requires innovation and responsiveness, based
on generating and sharing knowledge within a development team and with the
customer. Agile software developers draw on the strengths of customers, users,
and developers to find just enough process to balance quality and agility.
The books in The Agile Software Development Series focus on sharing the experienc-
es of such Agile developers. Individual books address individual techniques (such as
Use Cases), group techniques (such as collaborative decision making), and proven
solutions to different problems from a variety of organizational cultures. The result is a
core of Agile best practices that will enrich your experiences and improve your work.
Visit informit.com/agileseries for a complete list of available publications.
The Agile Software
Development Series
Alistair Cockburn and Jim Highsmith, Series Editors
www.it-ebooks.info
M
ANAGING
S
OFTWARE
D
EBT
B
UILDING FOR
I
NEVITABLE
C
HANGE
Chris Sterling
With contributions from Brent Barton
Upper Saddle River, NJ • Boston • Indianapolis • San Francisco
New York • Toronto • Montreal • London • Munich • Paris • Madrid
Capetown • Sydney • Tokyo • Singapore • Mexico City
www.it-ebooks.info
Many of the designations used by manufacturers and sellers to distinguish their products are
claimed as trademarks. Where those designations appear in this book, and the publisher was
aware of a trademark claim, the designations have been printed with initial capital letters or in
all capitals.
The author and publisher have taken care in the preparation of this book, but make no
expressed or implied warranty of any kind and assume no responsibility for errors or omis-
sions. No liability is assumed for incidental or consequential damages in connection with or
arising out of the use of the information or programs contained herein.
Cover photograph reused with the permission of Earl A. Everett.
The quotation on page 227 is excerpted from Beck, EXTREME PROGRAMMING
EXPLAINED: EMBRACING CHANGE, © 2000 by Kent Beck. Reproduced by permission of
Pearson Education, Inc.
The publisher offers excellent discounts on this book when ordered in quantity for bulk
purchases or special sales, which may include electronic versions and/or custom covers and
content particular to your business, training goals, marketing focus, and branding interests.
For more information, please contact:
U.S. Corporate and Government Sales
(800) 382-3419
corpsales@pearsontechgroup.com
For sales outside the United States please contact:
International Sales
international@pearson.com
Visit us on the Web: informit.com/aw
Library of Congress Cataloging-in-Publication Data
Sterling, Chris, 1973–
Managing software debt : building for inevitable change / Chris
Sterling ; with contributions from Brent Barton.
p. cm.
Includes bibliographical references and index.
ISBN-13: 978-0-321-55413-0 (hardcover : alk. paper)
ISBN-10: 0-321-55413-2 (hardcover : alk. paper)
1. Computer software—Quality control. 2. Agile software development.
3. Software reengineering. I. Barton, Brent. II. Title.
QA76.76.Q35S75 2011
005.1'4—dc22
2010037879
Copyright © 2011 Pearson Education, Inc.
All rights reserved. Printed in the United States of America. This publication is protected by
copyright, and permission must be obtained from the publisher prior to any prohibited repro-
duction, storage in a retrieval system, or transmission in any form or by any means, electronic,
mechanical, photocopying, recording, or likewise. For information regarding permissions,
write to:
Pearson Education, Inc.
Rights and Contracts Department
501 Boylston Street, Suite 900
Boston, MA 02116
Fax: (617) 671-3447
ISBN-13: 978-0-321-55413-0
ISBN-10: 0-321-55413-2
Te x t p r i n t e d i n t h e Un i t e d S t a t e s o n r e c y c l e d p a p e r a t C o u r i e r i n We s t f o r d , M a s s a c h u s e t t s .
First printing, December 2010
www.it-ebooks.info
Thank you to my children, Ashon, Diya, and Aman, who put up with
their daddy writing so much, and especially thank you to my beautiful
wife, Shivani, who enabled me to write this book.
www.it-ebooks.info
This page intentionally left blank
www.it-ebooks.info
ix
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
Like-to-Like Migration 6
Limited Expertise Available 8
Expensive Release Stabilization Phases 8
Increased Cost of Regression Testing 11
Business Expectations Do Not Lessen as Software Ages 12
Summary 14
Chapter 2 Technical Debt 15
Origins of Terminology 16
Other Viewpoints on Technical Debt 16
Definition of Technical Debt 18
Patterns of Technical Debt 19
Schedule Pressure 19
Duplication 20
Get It “Right” the First Time 21
Acknowledging Technical Debt 22
Pay Off Technical Debt Immediately 23
Strategically Placed Runtime Exceptions 25
Add Technical Debt to the Product Backlog 28
Summary 30
www.it-ebooks.info
[...]... Chapter 1 MANAGING SOFTWARE DEBT Technical debt Quality debt Where Does Software Debt Come From? Configuration management debt Design debt Software Debt Creeps In Platform experience debt Managing Software Debt Like-to-Like Migration Software Asset Depreciation Limited Expertise Available Expensive Release Stabilization Phases Increased Cost of Regression Testing Business Expectations Do Not Lessen as Software. .. 1, Managing Software Debt, ” is a primer on the types of software debt that can impede software changes with age The topic of software debt is prevalent throughout the book as the main focus for attaining more architectural agility Five areas of software debt are described in the chapter: technical, quality, configuration management, design, and platform experience These five areas of software debt. .. teams look for clarity about what aspects of these areas they should focus more of their effort on For external integrations, find out who in the organization can support your application integrations and coordinate efforts between teams In the case of software quality attributes, work with your business owner to decide which quality attributes are most important for your application As for the software s... “Design Debt, ” Chapter 8, “Designing Software, ” Chapter 9, “Communicating Architectures,” and Chapter 10, “Technology Evaluation Styles,” focus on how software is designed for changeability, including its structure, alignment to current business needs, integrity, and design communication www.it-ebooks.info I NTRODUCTION xxix Chapter 11, “Platform Experience Debt, ” looks at how people fit into software. .. Agile team looks for ways to consolidate its efforts into practical focus areas that are manageable from iteration to iteration as the application and its design evolve In a phase-gate approach, all of the design effort that occurs before construction begins is sometimes referred to as “big design up front” (BDUF) The reason for specifying business requirements and technical design before construction... methods for project management This book discusses how Agile software organizations can use these practices and methods with a holistic view of software development from team configurations to deployment and maintenance Some might discuss parts of this book in terms of software or enterprise architecture, but this book is about how teams can take more responsibility for these aspects, taking software. .. TARGET AUDIENCE This book is for everyone who is involved in delivering and maintaining software for users Senior software leadership can find better ways to support and manage delivery of value to stakeholders Software management can find ways to organize and support the work of development teams Teams can find out more about how they can build integrity into the full software development life cycle... condition Performance: Perceived response is immediate Scalability: The software is able to handle increased usage with the appropriate amount of resources Analyzability: It is easy to figure out how the software functions Changeability: Software components can be changed to meet new business needs Testability: Repeatable and specific tests of the software can be created, and there is potential for some... some to be automated Adaptability: Software component functionality can be changed quickly www.it-ebooks.info xxiv I NTRODUCTION Installability: Installation and reinstallation are easy Conformance: The software conforms to industry and operational standards Replaceability: The software is replaceable in the future Taking into consideration external integrations, software quality attributes, and the... supporting the design of significant portions of the software architecture before the software is built, Agile methods identify and support practices, processes, and tools to enable evolutionary design This is not synonymous with undisciplined or “cowboy” coding of software Agile methods are highly disciplined One principle behind the “Manifesto for Agile Software Development” in particular identifies the .
www.it-ebooks.info
ix
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. 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
Ngày đăng: 16/03/2014, 00:20
Xem thêm: Praise for Managing Software Debt potx, Praise for Managing Software Debt potx