You are previewing Agile Software Development Ecosystems.
O'Reilly logo
Agile Software Development Ecosystems

Book Description

In a highly volatile software development environment, developers must be nimble, responsive, and able to hit a moving target--in short, they must be agile. Agile software development is designed to address this need for speed and flexibility. Agility describes a holistic, collaborative environment in which you can both create and respond to change by focusing on adaptability over predictability, people over process. Agile software development incorporates proven software engineering techniques, but without the overhead and restrictions of traditional development methodologies. Above all, it fulfills its promise of delivering software that serves the client's business needs.

Written by one of the leaders of the Agile movement, and including interviews with Agile gurus Kent Beck, Robert Charette, Alistair Cockburn, Martin Fowler, Ken Schwaber, and Ward Cunningham, Agile Software Development Ecosystems crystallizes the current understanding of this flexible and highly successful approach to software development. It presents the key practices of all Agile development approaches, offers overviews of specific techniques, and shows how you can choose the approach that best suits your organization.

This book describes--in depth--the most important principles of Agile development: delivering value to the customer, focusing on individual developers and their skills, collaboration, an emphasis on producing working software, the critical contribution of technical excellence, and a willingness to change course when demands shift. All major Agile methods are presented:

  • Scrum

  • Dynamic Systems Development Method

  • Crystal Methods

  • Feature-Driven Development

  • Lean Development

  • Extreme Programming

  • Adaptive Software Development

  • Throughout the book, case stories are used to illustrate how Agile practices empower success around the world in today's chaotic software development industry. Agile Software Development Ecosystems also examines how to determine your organization's Agile readiness, how to design a custom Agile methodology, and how to transform your company into a truly Agile organization.



    0201760436B03042002

    Table of Contents

    1. Copyright
      1. Dedication
    2. Foreword
    3. Preface
      1. Finding a Balance
      2. Fundamental Questions
        1. What Kinds of Problems Does Agility Solve Best?
        2. What Is Agility?
        3. What Are Agile Software Development Ecosystems?
      3. A Chaordic Perspective
      4. Collaborative Values and Principles
      5. A Barely Sufficient Methodology
      6. Changing Perspectives
    4. Introduction
      1. Book Organization and Conventions
      2. The Major Agile Ecosystems and Leaders
        1. Scrum
        2. Dynamic Systems Development Method (DSDM)
        3. Crystal Methods
        4. Feature-Driven Development (FDD)
        5. Lean Development (LD)
        6. Extreme Programming (XP)
        7. Adaptive Software Development (ASD)
      3. Acknowledgments
      4. The Agile Software Development Series
    5. I. Problems and Solutions
      1. 1. The Change-Driven Economy
        1. Turbulence: Bubbles versus Trends
        2. Exploration versus Optimization
        3. Exploratory Projects
        4. Command-Control versus Leadership-Collaboration Cultures
        5. Thriving at the Edge
      2. 2. IDX Systems Corporation
        1. The IDX Story
        2. An Agile Group in Action
      3. 3. Agility
        1. Agility
          1. Creating and Responding to Change
          2. Nimbleness and Improvisation
          3. Conformance to Actual
          4. Balancing Flexibility and Structure
        2. “Agile” Studies
          1. Product Development in Internet Time
          2. “Heavy” Agile Projects
        3. Agile Software Development Ecosystems
    6. II. Principles and People
      1. 4. Kent Beck
        1. Reflections
      2. 5. Deliver Something Useful
        1. HAHT Commerce, Inc.
        2. Customer Delivery Principles
          1. Delivering Customer Value
          2. Voice of the Customer
          3. Working Software
          4. Frequent Delivery
          5. Work Together Daily
        3. Practices That Deliver Useful Features
          1. The Customer-Developer Interface
          2. Proxy Users
          3. Domain-Knowledgeable Developers
          4. Contracts: Shaping Customer Relationships
        4. Obviously It's Not Obvious
      3. 6. Alistair Cockburn
        1. Reflections
      4. 7. Rely on People
        1. ThoughtWorks
        2. Who Are You Calling Average?
        3. Trust, Mistrust, and Communications
        4. Talent, Skill, and Process
          1. Process versus Skill
          2. Artifacts and Information Flow
          3. Innovation and Creativity
        5. The Fall and Resurrection of Programming
        6. Software through People
      5. 8. Ken Schwaber
        1. Reflections
      6. 9. Encourage Collaboration
        1. The Modern Transport Team at ITL
        2. A Cooperative Game of Invention and Communication
        3. Practice versus Process
        4. Documentation Is Not Understanding
        5. The Dimensions of Collaboration
        6. Real Teams
      7. 10. Martin Fowler
        1. Reflections
      8. 11. Technical Excellence
        1. The PDFS Team at Generali Group
        2. Agile Is Not Ad Hoc
        3. Removal of Defects
        4. Focus on Code
        5. Simple Design
        6. Big Bang versus Incremental
        7. Modeling and Abstraction
        8. Domain Recognition
        9. Documentation versus Conversation
        10. Specialists versus Generalists
        11. Quality versus Speed
        12. Establishment versus Anti-establishment
        13. Values and Principles
        14. Reflections
      9. 12. Ward Cunningham
        1. Reflections
      10. 13. Do the Simplest Thing Possible
        1. The Survey Controller Team at Trimble Navigation
        2. Musashi
        3. The Three Faces of Simplicity
          1. Simplicity as Minimalism
          2. Simplicity as Good Design
          3. Simplicity as Generative Rules
          4. Adapting Simple Rules
        4. A Final Note on Simplicity
      11. 14. Jim Highsmith
      12. 15. Be Adaptable
        1. The Mustang Team at Cellular, Inc.
        2. The Great Divide: Predictability or Adaptability
        3. Our Changing Business Ecosystem
        4. Embracing Change
          1. Facilitate Change
          2. View Rework as a Virtue
          3. Control Final Components
          4. Constant Feedback at Multiple Levels
          5. Multiple Process Levels
        5. Balancing Adaptation with Anticipation
        6. Putting Lipstick on a Bulldog
        7. The Cost of Change
        8. Conform to Actual: Measuring Success
        9. Adaptability Is a Mindset
      13. 16. Bob Charette
        1. Reflections
    7. III. Agile Software Development Ecosystems
      1. 17. Scrum
        1. The Scrum Process
          1. Pre-Sprint Planning
          2. Sprint
          3. Post-Sprint Meeting
          4. Monitoring Progress
        2. Scrum's Contributions
      2. 18. Dynamic Systems Development Method
        1. Arie van Bennekum
        2. DSDM Principles
        3. The DSDM Process
        4. DSDM's Contributions
      3. 19. Crystal Methods
        1. Methodology Design Principles
        2. The Crystal Framework
        3. Crystal Method Example: Crystal Clear
        4. Crystal's Contributions
      4. 20. Feature-Driven Development
        1. The Singapore Project
        2. The FDD Process Model
          1. Process 1: Develop an Overall Model
          2. Process 2: Build a Features List
          3. Process 3: Plan by Feature
          4. Process 4: Design by Feature
          5. Process 5: Build by Feature
        3. Beyond the FDD Process Description
        4. Conceptual Similarities and Differences
        5. FDD's Contributions
      5. 21. Lean Development
        1. EuroTel
        2. The Strategic Foundation of Lean Development
        3. Lean Development's Origins
        4. What Is Lean Development?
        5. The Lean Development Environment
        6. Lean Development's Contributions
      6. 22. Extreme Programming
        1. XP: The Basics
          1. XP Practices
        2. Values and Principles
        3. XP's Contributions
      7. 23. Adaptive Software Development
        1. A Change-Oriented Life Cycle
        2. The Basic ASD Life Cycle
          1. Speculate: Initiation and Planning
          2. Collaborate: Concurrent Feature Development
          3. Learn: Quality Review
        3. Leadership-Collaboration Management
        4. ASD's Contributions
    8. IV. Developing an ASDE
      1. 24. Articulating Your Ecosystem
        1. Opportunity and Problem Domains
        2. Cultural Domain
          1. The Competence Culture
          2. The Control Culture
          3. The Collaboration Culture
          4. The Cultivation Culture
          5. Cultural Relativism
        3. Matching Methodology to Opportunity and Culture
        4. Methodology Selection
        5. Articulate Values and Principles
      2. 25. Designing Your Agile Methodology
        1. Methodology Expectations
        2. Methodology Elements and the System of Practices
          1. Keep It Simple
          2. Practices and Principles
        3. Methodology Design Principles
        4. Frameworks, Templates, and Scenarios
          1. Phase and Gate Life Cycle Frameworks
          2. Problem Domain Templates
          3. Scenarios
        5. Collaborative Methodology Design Steps
          1. Evaluate Project Objectives and Characteristics
          2. Design a Methodology Framework, Templates, and Scenarios
        6. Customize Templates to the Team
          1. A Customizing Approach
          2. Adapt the Template to Use
        7. Scaling
          1. Methodology Scaling: Balancing Optimizing and Adapting Elements
          2. Collaboration Scaling
          3. Architecture and Integration Scaling
        8. Agile Methodologies for the Enterprise
      3. 26. The Agile Metamorphosis
        1. Chaordic Perspective
        2. Collaborative Values and Principles
        3. Barely Sufficient Methodology
        4. The Agility Ratings
        5. Final Thoughts
      4. Bibliography