Table of Contents
Foreword.
Preface.
Finding a Balance. Fundamental Questions. What Kinds of Problems
Does Agility Solve Best? What Is Agility? What Are Agile Software
Development Ecosystems? A Chaordic Perspective. Collaborative
Values and Principles. A Barely Sufficient Methodology. Changing
Perspectives.
Introduction.
Book Organization and Conventions. The Major Agile Ecosystems and
Leaders. Scrum. Dynamic Systems Development Method (DSDM). Crystal
Methods. Feature-Driven Development (FDD). Lean Development (LD).
Extreme Programming (XP). Adaptive Software Development (ASD).
Acknowledgments. The Agile Software Development Series.
I. PROBLEMS AND SOLUTIONS.
1. The Change-Driven Economy.
Turbulence: Bubbles versus Trends. Exploration versus Optimization.
Exploratory Projects. Command-Control versus
Leadership-Collaboration Cultures. Thriving at the Edge.
2. IDX
Systems Corporation.
The IDX Story. An Agile Group in Action.
3. Agility.
Agility. Creating and Responding to Change. Nimbleness and
Improvisation. Conformance to Actual. Balancing Flexibility and
Structure. “Agile” Studies. Product Development in Internet Time.
“Heavy” Agile Projects. Agile Software Development Ecosystems.
II. PRINCIPLES AND PEOPLE.
4. Kent Beck.
Reflections.
5. Deliver Something Useful.
HAHT Commerce, Inc. Customer Delivery Principles. Delivering
Customer Value. Voice of the Customer. Working Software. Frequent
Delivery. Work Together Daily. Practices That Deliver Useful
Features. The Customer-Developer Interface. Proxy Users.
Domain-Knowledgeable Developers. Contracts: Shaping Customer
Relationships. Obviously It's Not Obvious.
6. Alistair
Cockburn.
Reflections.
7. Rely on People.
ThoughtWorks. Who Are You Calling Average? Trust, Mistrust, and
Communications. Talent, Skill, and Process. Process versus Skill.
Artifacts and Information Flow. Innovation and Creativity. The Fall
and Resurrection of Programming. Software through People.
8. Ken
Schwaber.
Reflections.
9. Encourage Collaboration.
The Modern Transport Team at ITL. A Cooperative Game of Invention
and Communication. Practice versus Process. Documentation Is Not
Understanding. The Dimensions of Collaboration. Real Teams.
10.
Martin Fowler.
Reflections.
11. Technical Excellence.
The PDFS Team at Generali Group. Agile Is Not Ad Hoc. Removal of
Defects. Focus on Code. Simple Design. Big Bang versus Incremental.
Modeling and Abstraction. Domain Recognition. Documentation versus
Conversation. Specialists versus Generalists. Quality versus Speed.
Establishment versus Anti-establishment. Values and Principles.
Reflections.
12. Ward Cunningham.
Reflections.
13. Do the Simplest Thing Possible.
The Survey Controller Team at Trimble Navigation. Musashi. The
Three Faces of Simplicity. Simplicity as Minimalism. Simplicity as
Good Design. Simplicity as Generative Rules. Adapting Simple Rules.
A Final Note on Simplicity.
14. Jim Highsmith.
15. Be Adaptable.
The Mustang Team at Cellular, Inc. The Great Divide: Predictability
or Adaptability. Our Changing Business Ecosystem. Embracing Change.
Facilitate Change. View Rework as a Virtue. Control Final
Components. Constant Feedback at Multiple Levels. Multiple Process
Levels. Balancing Adaptation with Anticipation. Putting Lipstick on
a Bulldog. The Cost of Change. Conform to Actual: Measuring
Success. Adaptability Is a Mindset.
16. Bob Charette.
Reflections.
III. AGILE SOFTWARE DEVELOPMENT ECOSYSTEMS.
17. Scrum.
The Scrum Process. Pre-Sprint Planning. Sprint. Post-Sprint
Meeting. Monitoring Progress. Scrum's Contributions.
18. Dynamic
Systems Development Method.
Arie van Bennekum. DSDM Principles. The DSDM Process. DSDM's
Contributions.
19. Crystal Methods.
Methodology Design Principles. The Crystal Framework. Crystal
Method Example: Crystal Clear. Crystal's Contributions.
20.
Feature-Driven Development.
The Singapore Project. The FDD Process Model. Process 1: Develop an
Overall Model. Process 2: Build a Features List. Process 3: Plan by
Feature. Process 4: Design by Feature. Process 5: Build by Feature.
Beyond the FDD Process Description. Conceptual Similarities and
Differences. FDD's Contributions.
21. Lean Development.
EuroTel. The Strategic Foundation of Lean Development. Lean
Development's Origins. What Is Lean Development? The Lean
Development Environment. Lean Development's Contributions.
22.
Extreme Programming.
XP--The Basics. XP Practices. Values and Principles. XP's
Contributions.
23. Adaptive Software Development.
A Change-Oriented Life Cycle. The Basic ASD Life Cycle. Speculate:
Initiation and Planning. Collaborate: Concurrent Feature
Development. Learn: Quality Review. Leadership-Collaboration
Management. ASD's Contributions.
IV. DEVELOPING AN ASDE.
24. Articulating Your Ecosystem.
Opportunity and Problem Domains. Cultural Domain. The Competence
Culture. The Control Culture. The Collaboration Culture. The
Cultivation Culture. Cultural Relativism. Matching Methodology to
Opportunity and Culture. Methodology Selection. Articulate Values
and Principles.
25. Designing Your Agile Methodology.
Methodology Expectations. Methodology Elements and the System of
Practices. Keep It Simple. Practices and Principles Methodology
Design Principles. Frameworks, Templates, and Scenarios. Phase and
Gate Life Cycle Frameworks. Problem Domain Templates. Scenarios.
Collaborative Methodology Design Steps. Evaluate Project Objectives
and Characteristics. Design a Methodology Framework, Templates, and
Scenarios. Customize Templates to the Team. A Customizing Approach.
Adapt the Template to Use. Scaling. Methodology Scaling: Balancing
Optimizing and Adapting Elements. Collaboration Scaling.
Architecture and Integration Scaling. Agile Methodologies for the
Enterprise.
26. The Agile Metamorphosis.
Chaordic Perspective. Collaborative Values and Principles. Barely
Sufficient Methodology. The Agility Ratings. Final Thoughts.
Bibliography.
Index. 0201760436T04092002Promotional Information
Traditional software development methods struggle to keep pace
with the accelerated pace and rapid change of Internet-era
development. Several "agile methodologies" have been developed in
response -- and these approaches to software development are
showing exceptional promise. In this book, Jim Highsmith covers
them all -- showing what they have in common, where they differ,
and how to choose and customize the best agile approach for your
needs. Highsmith begins by introducing the values and principles
shared by virtually all agile software development methods. He
presents detailed case studies from organizations that have used
them, as well as interviews with each method's principal authors or
leading practitioners. Next, he takes a closer look at the key
features and techniques associated with each major Agile approach:
Extreme Programming (XP), Crystal Methods, Scrum, Dynamic Systems
Development Method (DSDM), Lean Development, Adaptive Software
Development (ASD), and Feature-Driven Development (FDD). In Part
III, Highsmith offers practical advice on customizing the optimal
agile discipline for your own organization. For all software
developers, project managers, and other IT professionals seeking
more flexible, effective approaches to developing software.
About the Author
Jim Highsmith is a well-known consultant, software
developer, writer, and speaker. He is a founding member of the
AgileAlliance, serving on its first board, and is coauthor of the
Agile Manifesto. Jim is director of the Agile Project Management
Advisory Service for the Cutter Consortium. He is also the author
of Adaptive Software Development (Dorset House), winner of the 2000
Jolt Award.
0201760436AB03112002