AoAD2 Practice: Whole Team

This is an excerpt from The Art of Agile Development, Second Edition. Visit the Second Edition home page for additional excerpts and more!

This excerpt is copyright 2007, 2021 by James Shore and Shane Warden. Although you are welcome to share this link, do not distribute or republish the content without James Shore’s express written permission.

Whole Team


We have all the skills needed to deliver great results.

Modern software development takes a lot of skills. Not just programming skills; people skills. Artistic skills. Technical skills. And when those skills aren’t part of the team, performance suffers. Rather than focusing on a feature and completing it, team members have to juggle multiple tasks as they send emails, wait for responses, and deal with misunderstandings.


To avoid these sorts of delays and errors, Agile teams are cross-functional whole teams. They’re composed of people with diverse skills and experience who collectively have all the skills the team needs to fulfill its purpose. Broadly speaking, these skills can be grouped into customer skills, development skills, and coaching skills.

Agile teams need skills, not roles.

Note that Agile teams need skills, not roles. Sometimes senior programmers with a lot of company history make the best product managers. Sometimes project managers have great testing skills. Not only that, Agile teams learn and grow over time. Everybody works to broaden their skills, especially customer-related skills.

Throughout this book, when I refer to a “product manager,” “developer,” or other title, I’m referring to someone on the team with those skills, not someone with that literal title or role on the team. Agile teams work best when people contribute based on their skills and experience, not their position in the org chart. continue reading, buy the book!

In this Section

  1. Whole Team
    1. Cargo Cult: The Hole Team
    2. Customer Skills
      1. Product management (aka product ownership)
      2. Domain expertise (aka subject matter expertise)
      3. User experience design (aka interaction design)
    3. Development Skills
      1. Programming, design, and architecture
      2. Testing
      3. Operations
    4. Coaching Skills
      1. Practitioner-coaches
      2. Player-coaches
      3. Facilitator-coaches
    5. Generalizing Specialists
    6. Staffing the Team
      1. Fully dedicated team members
      2. Stable teams
    7. Team Size
      1. Sidebar: Why So Many Customers?
    8. A Team of Peers
      1. Key Idea: Self-Organizing Teams
    9. The Hole Team Revisited
    10. Questions
    11. Prerequisites
    12. Indicators
    13. Alternatives and Experiments
    14. Further Reading

Discuss the book on the AoAD2 mailing list or Discord server. For videos and interviews regarding the book, see the book club archive.

For more excerpts from the book, see the Second Edition home page.

If you liked this entry, check out my best writing and presentations, and consider subscribing to updates by email or RSS.