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.

9780201760439

Agile Software Development Ecosystems

by
  • ISBN13:

    9780201760439

  • ISBN10:

    0201760436

  • Edition: 1st
  • Format: Paperback
  • Copyright: 2002-03-26
  • Publisher: Addison-Wesley Professional

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

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: $54.99 Save up to $13.75
  • Buy Used
    $41.24
    Add to Cart Free Shipping Icon Free Shipping

    USUALLY SHIPS IN 2-4 BUSINESS DAYS

Supplemental Materials

What is included with this book?

Summary

From February 11 to 13, 2001, at the Lodge at Snowbird ski resort in the Wasatch Mountains of Utah, 17 people met to talk, ski, relax, and try to find common ground. What emerged was the Agile Software Development movement. Representatives from Extreme Programming (XP), Scrum, the Dynamic Systems Development Method (DSDM), Adaptive Software Development (ASD), Crystal Methods, Feature-Driven Development (FDD), Pragmatic Programming, and others sympathetic to the need for an alternative to document-driven, rigorous software development processes convened. What this meeting produced--The Manifesto for Agile Software Development, signed by all 17 of the participants--was symbolic. It declares that:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value:

  • Individuals and interactions over processes and tools
  • Working software over comprehensive documentation
  • Customer collaboration over contract negotiation
  • Responding to change over following a plan.

That is, while there is value in the items on the right, we value the items on the left more.

This value statement has a number of fascinating aspects, not the least of which was getting 17 people to agree to it. Although this was a group of experienced and recognized software development "gurus," the word uncovering was selected to indicate that the authors don't have all the answers and don't subscribe to the silver-bullet theory.

The phrase "by doing it" indicates that the authors actually practice these methods in their own work. Ken Schwaber told the story of his days of selling tools to automate comprehensive, "heavy" methodologies. Impressed by the responsiveness of Ken's company, Jeff Sutherland asked him which of these rigorous methodologies he used for internal development. "I still remember the look on Jeff's face," Ken remarked, "when I told him, ‘None. If we used any of them, we'd be out of business.'" The authors want to help others with Agile practices and to further our own knowledge by learning from those we try to help.

The value statements have a form. In each statement, the first segment indicates a preference, while the latter segment describes an item that, while important, is of lesser priority. This distinction lies at the heart of agility, but simply asking people to list what's valuable doesn't flesh out essential differences. Roy Singham, CEO of ThoughtWorks, put it well when he said that it's the edge cases, the hard choices, that interest him. "Yes, we value planning, comprehensive documentation, processes, and tools. That's easy to say. The hard thing is to ask, ‘What do you value more?'" When push comes to shove--and it usually does--something must give, and we need to be clear about what stays and what gives.

The first value statement recognizes the importance of processes and tools but stresses that the interaction of talented individuals is of far more importance. Rigorous methodologies and their business process reengineering brethren place more emphasis on process than people. Agile development reverses this trend. If individuals are unique, and we believe they are, then processes should be melded to individuals and teams, not the other way around.

Similarly, while comprehensive documentation is not necessarily harmful, the primary focus must remain on the final product--working software. This means that every project team needs to determine, for itself, what documentation is absolutely essential to delivering working software. Working software tells the developers and sponsors what they really have in front of them--as opposed to promises of what they might have in front of them. Working software can be shipped, modified, or scrapped, but it is always real.

Contract negotiation, whether through an internal project charter or an external legal contract, isn't a bad practice, just a seriously insufficient one. Customers want a product that conforms to their needs--at the time of delivery. "Contract negotiation encourages the addition of buffers contingency," says colleague Ron Holliday. "This makes projects take even longer, drives up costs, and reduces responsiveness to change. A collaborative arrangement is a team effort between customer and supplier to deliver the best possible solution." Contracts and project charters provide boundary conditions within which the parties can work, but only through ongoing collaboration can a development team hope to understand and deliver what the client wants.

No one can argue that following a plan is a good idea--right? Well, yes and no. In a world of business and technology turbulence, scrupulously following a plan can have dire consequences, even if it's executed faithfully. However carefully a plan is crafted, it becomes dangerous if it blinds you to change. As you will see in several of the case studies presented in this book, few, if any, of the projects delivered what was planned for in the beginning. And yet they were successful because the development team was Agile enough to respond again and again to external changes. In the Information Age, planning is important, but accepting that deviations from any plan are "normal" is even more important.

The meeting at Snowbird was incubated at a spring 2000 gathering of Extreme Programming leaders organized by Kent Beck. At that meeting in Oregon, a few "outsiders" but "sympathizers," such as myself, were invited, and attendees voiced support for a variety of "light" methodologies. During 2000, a number of articles referenced the category of "light" or "lightweight" practices. In conversation, the soon to be "Agile" authors didn't like the moniker "light," but it stuck at that time.

In September 2000, "Uncle Bob" Martin of Object Mentor in Chicago started what was to become the Agile ball rolling with an email: "I'd like to convene a short (two-day) conference in the January to February 2001 time frame here in Chicago. The purpose of this conference is to get all the lightweight method leaders in one room. All of you are invited, and I'd be interested to know who else I should approach." Bob set up an online group site, and the discussions raged. Early on, Alistair Cockburn weighed in with an epistle that identified the general disgruntlement with the word "light": "I don't mind the methodology being called light in weight, but I'm not sure I want to be referred to as a lightweight attending a lightweight methodologists meeting. It somehow sounds like a bunch of skinny, feeble-minded lightweight people trying to remember what day it is."

The fiercest debate was over location! There was serious concern about Chicago in wintertime--cold and nothing fun to do. Someone suggested Snowbird, Utah--cold, but fun things to do, at least for those who ski on their heads, as Martin Fowler tried on the first day. Someone else mentioned Anguilla in the Caribbean--warm and fun, but time consuming to get to. In the end, Snowbird and skiing won out.

The Agile Manifesto value statements represent a deeper theme that drives many, but not all, of the Manifesto's authors. At the close of the two-day meeting, Bob Martin joked that he was about to make a "mushy" statement. Although tinged with humor, no one disagreed with Bob's sentiments--that we all felt privileged to work with a group of people who held a set of compatible values, based on trust and respect for each other, promotion of organizational models based on people, and the desire to build collaborative communities in which to work. At the core, I believe Agile developers are really about mushy stuff--about delivering products to customers while operating in a vibrant, sustaining workplace. So in the final analysis, the

Author Biography

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

Table of Contents

Foreword xv
Preface xvii
Finding a Balance xxi
Fundamental Questions xxii
What Kinds of Problems Does Agility Solve Best? xxii
What Is Agility? xxiii
What Are Agile Software Development Ecosystems? xxiii
A Chaordic Perspective xxiv
Collaborative Values and Principles xxvi
A Barely Sufficient Methodology xxvi
Changing Perspectives xxvii
Introduction xxix
Book Organization and Conventions xxx
The Major Agile Ecosystems and Leaders xxxi
Scrum xxxii
Dynamic Systems Development Method (DSDM) xxxii
Crystal Methods xxxii
Feature-Driven Development (FDD) xxxiii
Lean Development (LD) xxxiii
Extreme Programming (XP) xxxiii
Adaptive Software Development (ASD) xxxiv
Acknowledgments xxxiv
The Agile Software Development Series xxxvi
Part I Problems and Solutions 1(42)
The Change-Driven Economy
3(16)
Turbulence: Bubbles versus Trends
6(3)
Exploration versus Optimization
9(3)
Exploratory Projects
12(3)
Command-Control versus Leadership-Collaboration Cultures
15(2)
Thriving at the Edge
17(2)
IDX Systems Corporation
19(8)
The IDX Story
19(7)
An Agile Group in Action
26(1)
Agility
27(16)
Agility
29(5)
Creating and Responding to Change
29(1)
Nimbleness and Improvisation
30(2)
Conformance to Actual
32(1)
Balancing Flexibility and Structure
33(1)
``Agile'' Studies
34(5)
Product Development in Internet Time
34(2)
``Heavy'' Agile Projects
36(3)
Agile Software Development Ecosystems
39(4)
Part II Principles and People 43(196)
Kent Beck
45(10)
Reflections
52(3)
Deliver Something Useful
55(24)
HAHT Commerce, Inc.
55(3)
Customer Delivery Principles
58(9)
Delivering Customer Value
58(3)
Voice of the Customer
61(2)
Working Software
63(2)
Frequent Delivery
65(1)
Work Together Daily
66(1)
Practices That Deliver Useful Features
67(9)
The Customer-Developer Interface
68(1)
Proxy Users
69(1)
Domain-Knowledgeable Developers
70(2)
Contracts: Shaping Customer Relationships
72(4)
Obviously It's Not Obvious
76(3)
Alistair Cockburn
79(10)
Reflections
87(2)
Rely on People
89(16)
Thought Works
89(3)
Who Are You Calling Average?
92(1)
Trust, Mistrust, and Communications
93(2)
Talent, Skill, and Process
95(5)
Process versus Skill
97(2)
Artifacts and Information Flow
99(1)
Innovation and Creativity
99(1)
The Fall and Resurrection of Programming
100(3)
Software through People
103(2)
Ken Schwaber
105(10)
Reflections
113(2)
Encourage Collaboration
115(18)
The Modern Transport Team at ITL
115(5)
A Cooperative Game of Invention and Communication
120(1)
Practice versus Process
121(3)
Documentation Is Not Understanding
124(3)
The Dimensions of Collaboration
127(2)
Real Teams
129(4)
Martin Fowler
133(12)
Reflections
144(1)
Technical Excellence
145(24)
The PDFS Team at Generali Group
145(5)
Agile is Not Ad Hoc
150(1)
Removal of Defects
151(1)
Focus on Code
152(2)
Simple Design
154(2)
Big Bang versus Incremental
156(1)
Modeling and Abstraction
157(3)
Domain Recognition
160(1)
Documentation versus Conversation
161(1)
Specialists versus Generalists
162(1)
Quality versus Speed
163(2)
Establishment versus Anti-establishment
165(2)
Values and Principles
167(1)
Reflections
167(2)
Ward Cunningham
169(8)
Reflections
175(2)
Do the Simplest Thing Possible
177(14)
The Survey Controller Team at Trimble Navigation
177(3)
Musashi
180(1)
The Three Faces of Simplicity
181(7)
Simplicity as Minimalism
181(2)
Simplicity as Good Design
183(1)
Simplicity as Generative Rules
184(3)
Adapting Simple Rules
187(1)
A Final Note on Simplicity
188(3)
Jim Highsmith
191(8)
Be Adaptable
199(30)
The Mustang Team at Cellular, Inc.
199(4)
The Great Divide: Predictability or Adaptability
203(3)
Our Changing Business Ecosystem
206(2)
Embracing Change
208(6)
Facilitate Change
209(1)
View Rework as a Virtue
210(2)
Control Final Components
212(1)
Constant Feedback at Multiple Levels
213(1)
Multiple Process Levels
214(1)
Balancing Adaptation with Anticipation
214(2)
Putting Lipstick on a Bulldog
216(4)
The Cost of Change
220(1)
Conform to Actual: Measuring Success
221(5)
Adaptability Is a Mindset
226(3)
Bob Charette
229(10)
Reflections
237(2)
Part III Agile Software Development Ecosystems 239(82)
Scrum
241(10)
The Scrum Process
243(5)
Pre-Sprint Planning
244(1)
Sprint
245(2)
Post-Sprint Meeting
247(1)
Monitoring Progress
247(1)
Scrum's Contributions
248(3)
Dynamic Systems Development Method
251(10)
Arie van Bennekum
252(1)
DSDM Principles
253(1)
The DSDM Process
254(5)
DSDM's Contributions
259(2)
Crystal Methods
261(8)
Methodology Design Principles
262(1)
The Crystal Framework
263(3)
Crystal Method Example: Crystal Clear
266(1)
Crystal's Contributions
267(2)
Feature-Driven Development
269(16)
The Singapore Project
270(2)
The FDD Process Model
272(6)
Develop an Overall Model
274(1)
Build a Features List
275(1)
Plan by Feature
276(1)
Design by Feature
277(1)
Build by Feature
278(1)
Beyond the FDD Process Description
278(2)
Conceptual Similarities and Differences
280(3)
FDD's Contributions
283(2)
Lean Development
285(12)
EuroTel
285(1)
The Strategic Foundation of Lean Development
286(3)
Lean Development's Origins
289(1)
What Is Lean Developments?
290(3)
The Lean Development Environment
293(2)
Lean Development's Contributions
295(2)
Extreme Programming
297(12)
XP -- The Basics
298(6)
XP Practices
299(5)
Values and Principles
304(2)
XP's Contributions
306(3)
Adaptive Software Development
309(12)
A Change-Oriented Life Cycle
310(3)
The Basic ASD Life Cycle
313(4)
Speculate: Initiation and Planning
314(1)
Collaborate: Concurrent Feature Development
315(1)
Learn: Quality Review
315(2)
Leadership-Collaboration Management
317(2)
ASD's Contributions
319(2)
Part IV Developing an ASDE 321(62)
Articulating Your Ecosystem
323(12)
Opportunity and Problem Domains
324(2)
Cultural Domain
326(3)
The Competence Culture
327(1)
The Control Culture
327(1)
The Collaboration Culture
328(1)
The Cultivation Culture
328(1)
Cultural Relativism
328(1)
Matching Methodology to Opportunity and Culture
329(2)
Methodology Selection
331(2)
Articulate Values and Principles
333(2)
Designing Your Agile Methodology
335(32)
Methodology Expectations
336(2)
Methodology Elements and the System of Practices
338(4)
Keep It Simple
340(1)
Practices and Principles
341(1)
Methodology Design Principles
342(2)
Framework, Templates, and Scenarios
344(6)
Phase and Gate Life Cycle Frameworks
345(2)
Problem Domain Templates
347(1)
Scenarios
347(3)
Collaborative Methodology Design Steps
350(4)
Evaluate Project Objectives and Characteristics
351(2)
Design a Methodology Framework, Templates, and Scenarios
353(1)
Customize Templates to the Team
354(3)
A Customizing Approach
354(2)
Adapt the Template to Use
356(1)
Scaling
357(8)
Methodology Scaling: Balancing Optimizing and Adapting Elements
359(2)
Collaboration Scaling
361(2)
Architecture and Integration Scaling
363(2)
Agile Methodologies for the Enterprise
365(2)
The Agile Metamorphosis
367(16)
Chaordic Perspective
368(4)
Collaborative Values and Principles
372(3)
Barely Sufficient Methodology
375(2)
The Agility Ratings
377(2)
Final Thoughts
379(4)
Bibliography 383(6)
Index 389

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.

Excerpts

From February 11 to 13, 2001, at the Lodge at Snowbird ski resort in the Wasatch Mountains of Utah, 17 people met to talk, ski, relax, and try to find common ground. What emerged was the Agile Software Development movement. Representatives from Extreme Programming (XP), Scrum, the Dynamic Systems Development Method (DSDM), Adaptive Software Development (ASD), Crystal Methods, Feature-Driven Development (FDD), Pragmatic Programming, and others sympathetic to the need for an alternative to document-driven, rigorous software development processes convened. What this meeting produced-- The Manifesto for Agile Software Development,signed by all 17 of the participants--was symbolic. It declares that: We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactionsover processes and tools Working softwareover comprehensive documentation Customer collaborationover contract negotiation Responding to changeover following a plan. That is, while there is value in the items on the right, we value the items on the left more. This value statement has a number of fascinating aspects, not the least of which was getting 17 people to agree to it. Although this was a group of experienced and recognized software development "gurus," the word uncoveringwas selected to indicate that the authors don''t have all the answers and don''t subscribe to the silver-bullet theory. The phrase "by doing it" indicates that the authors actually practice these methods in their own work. Ken Schwaber told the story of his days of selling tools to automate comprehensive, "heavy" methodologies. Impressed by the responsiveness of Ken''s company, Jeff Sutherland asked him which of these rigorous methodologies he used for internal development. "I still remember the look on Jeff''s face," Ken remarked, "when I told him, 'None. If we used any of them, we''d be out of business.''" The authors want to help others with Agile practices and to further our own knowledge by learning from those we try to help. The value statements have a form. In each statement, the first segment indicates a preference, while the latter segment describes an item that, while important, is of lesser priority. This distinction lies at the heart of agility, but simply asking people to list what''s valuable doesn''t flesh out essential differences. Roy Singham, CEO of ThoughtWorks, put it well when he said that it''s the edge cases, the hard choices, that interest him. "Yes, we value planning, comprehensive documentation, processes, and tools. That''s easy to say. The hard thing is to ask, 'What do you value more?''" When push comes to shove--and it usually does--something must give, and we need to be clear about what stays and what gives. The first value statement recognizes the importance of processes and tools but stresses that the interaction of talented individuals is of far more importance. Rigorous methodologies and their business process reengineering brethren place more emphasis on process than people. Agile development reverses this trend. If individuals are unique, and we believe they are, then processes should be melded to individuals and teams, not the other way around. Similarly, while comprehensive documentation is not necessarily harmful, the primary focus must remain on the final product--working software. This means that every project team needs to determine, for itself, what documentation is absolutely essential to delivering working software. Working software tells the developers and sponsors what they really have in front of them--as opposed to promises of what they mighthave in front of them. Working software can be shipped, modified, or scrapped, but it is always real. Contract negotiation, whether through an internal project charter or an external legal contract, isn''t a bad practice, just a seriously insufficient one. Customers want a product that conforms to their needs--at the time of delivery. "Contract negotiation encourages the addition of buffers contingency," says colleague Ron Holliday. "This makes projects take even longer, drives up costs, and reduces responsiveness to change. A collaborative arrangement is a team effort between customer and supplier to deliver the best possible solution." Contracts and project charters provide boundary conditions within which the parties can work, but only through ongoing collaboration can a development team hope to understand and deliver what the client wants. No one can argue that following a plan is a good idea--right? Well, yes and no. In a world of business and technology turbulence, scrupulously following a plan can have dire consequences, even if it''s executed faithfully. However carefully a plan is crafted, it becomes dangerous if it blinds you to change. As you will see in several of the case studies presented in this book, few, if any, of the projects delivered what was planned for in the beginning. And yet they were successful because the development team was Agile enough to respond again and again to external changes. In the Information Age, planning is important, but accepting that deviations from any plan are "normal" is even more important. The meeting at Snowbird was incubated at a spring 2000 gathering of Extreme Programming leaders organized by Kent Beck. At that meeting in Oregon, a few "outsiders" but "sympathizers," such as myself, were invited, and attendees voiced support for a variety of "light" methodologies. During 2000, a number of articles referenced the category of "light" or "lightweight" practices. In conversation, the soon to be "Agile" authors didn''t like the moniker "light," but it stuck at that time. In September 2000, "Uncle Bob" Martin of Object Mentor in Chicago started what was to become the Agile ball rolling with an email: "I''d like to convene a short (two-day) conference in the January to February 2001 time frame here in Chicago. The purpose of this conference is to get all the lightweight method leaders in one room. All of you are invited, and I''d be interested to know who else I should approach." Bob set up an online group site, and the discussions raged. Early on, Alistair Cockburn weighed in with an epistle that identified the general disgruntlement with the word "light": "I don''t mind the methodology being called light in weight, but I''m not sure I want to be referred to as a lightweight attending a lightweight methodologists meeting. It somehow sounds like a bunch of skinny, feeble-minded lightweight people trying to remember what day it is." The fiercest debate was over location! There was serious concern about Chicago in wintertime--cold and nothing fun to do. Someone suggested Snowbird, Utah--cold, but fun things to do, at least for those who ski on their heads, as Martin Fowler tried on the first day. Someone else mentioned Anguilla in the Caribbean--warm and fun, but time consuming to get to. In the end, Snowbird and skiing won out. The Agile Manifesto value statements represent a deeper theme that drives many, but not all, of the Manifesto''s authors. At the close of the two-day meeting, Bob Martin joked that he was about to make a "mushy" statement. Although tinged with humor, no one disagreed with Bob''s sentiments--that we all felt privileged to work with a group of people who held a set of compatible values, based on trust and respect for each other, promotion of organizational models based on people, and the desire to build collaborative communities in which to work. At the core, I believe Agile developers are really about mushy stuff--about delivering products to customers while operating in a vibrant, sustaining workplace. So in the final analysis, the meteoric rise of interest in--and criticism of--Agile Software

Rewards Program