Extreme Programming Explained (2nd edition) Readers Guide

This post exists because I was taking part in a reading club and we were unable to find a suitable readers’ guide. The questions are intended to tempt readers to consider their current environment and think of ways to try improvements.

The post will be updated with further chapters as we complete them.

Table of Contents

Overview

Kent Beck’s Extreme Programming Explained (2nd edition) was published in 2002 and is a foundational text for understanding the principles, values, and practices of Extreme Programming (XP), an agile software development methodology. The book emphasises the importance of human factors, flexibility, communication, and continuous improvement, encouraging developers and teams to embrace change in a dynamic work environment.

- 📖[**Extreme Programming Explained**,
  2nd Ed, Kent Beck](https://www.amazon.co.uk/Extreme-Programming-Explained-Embrace-Change/dp/0321278658)
  - **1 What is XP?**
    A disciplined approach to software
    development that promotes responding
    to changing customer needs.
  - **2 Learning to Drive?**
    Adopting XP is a gradual process
    that requires practice, feedback,
    and continuous improvement.
  - **3 Values, Principles and Practices**
    __Values__ are the large-scale criteria
    we use to judge what we see, think, and do.
    __Principles__ are domain-specific
    guidelines for life that guide decisions.
    __Practices__ are things you do day-to-day.
    - **4 Values**
      Communication
      Simplicity
      Feedback
      Courage
      Respect
    - **5 Principles**
      Humanity
      Economics
      Mutual benefit
      Self-similarity
      Improvement
      Diversity
      Reflection
      Flow
    - **6 Practices**
      Concrete actions derived from values and principles.
      - **7 Primary Practices**
        Sit together
        Whole team
        Informative workspace
        Energised work
        Pair programming
        Stories
        Weekly & quarterly cycles
        Slack
        Ten minute build
        Continuous integration
        Test-first programming
        Incremental design
      - **8 Getting Started**
        Start small and incrementally improve.
        The practices compound when used together.
      - **9 Corollary Practices**
        Real customer involvement
        Incremental deployment
        Team continuity
        Shrinking teams
        Root-cause analysis
        Shared code
        Single code base
        Daily deployment
        Negotiated scope contracts
  - **10 The Whole XP Team**
    Testers
    Interaction Designers
    Architects
    Project Managers
    Product Managers
    Executives
    Technical Writers
    Users
    Programmers
    Human Resources
  - **11 The Theory of Constraints**
    Use to improve flow, progress and continuous improvement.

Chapter 1: What is XP?

This chapter introduces the concept of Extreme Programming (XP), explaining it as a disciplined approach to software development that promotes responsiveness to changing customer needs. XP emphasises short development cycles, constant feedback, and the adoption of best practices to deliver high-quality software.

Discussion Questions

  • In what ways does your team currently embrace or resist change?
  • How could XP help your team become more adaptable?
  • What do you think are the most challenging aspects of adopting XP in your organisation?

Chapter 2: Learning to Drive

This chapter uses the metaphor of learning to drive to illustrate how adopting XP is a gradual process that requires continuous practice, feedback, and adjustment. Just as with driving, becoming proficient in XP involves making small, consistent improvements over time.

Discussion Questions

  • What new skills or practices have you recently learned in your role?
  • How did the process of learning these skills compare to the metaphor of learning to drive?
  • How can your team apply the “learning to drive” approach to adopting new practices or methodologies in your current work environment?
  • What feedback mechanisms are in place in your team to help guide improvements?

Chapter 3: Values, Principles, and Practices

This chapter establishes the foundation of XP by distinguishing between values, principles, and practices. Values such as communication, simplicity, and feedback are the bedrock, while principles guide decision-making, and practices are the tangible actions teams take.

Discussion Questions

  • What values does your team currently prioritise?
    • How do these align or conflict with the values of XP?
  • Can you identify any principles your team uses that are not explicitly stated but influence your work?
    • How do they compare with XP principles?
  • Reflect on a practice your team follows. How is it shaped by your values and principles?

Chapter 4: Values

This chapter delves deeper into the five core XP values: communication, simplicity, feedback, courage and respect. Beck explains how these values drive the behaviors and decisions in XP, promoting a highly collaborative and responsive environment.

He also notes that there are other possible values:

… safety, security, predictability, and quality-of-life. Holding these values as a team would shape your practices in different ways than the XP values do.

Discussion Questions

  • Which XP value resonates most with you personally? Why?
  • How does your team facilitate communication, and where might there be gaps?
  • Discuss a recent project where simplicity was sacrificed. What were the consequences, and how could embracing simplicity have improved the outcome?

Chapter 5: Principles

This chapter expands on the XP values by introducing guiding principles such as humanity, economics, mutual benefit, self-similarity, improvement, diversity, reflection, and flow. These principles help teams interpret the values and apply them in their context to guide actions.

Discussion Questions

  • Which XP principle do you find most challenging to implement in your current work environment and why?
  • Can you think of a time when following a principle led to a better decision in a project?
  • How does the principle of “mutual benefit” manifest in your interactions with stakeholders?

Chapter 6: Practices

This chapter introduces the specific practices that operationalise XP’s values and principles. The book emphasises that these practices are interdependent and collectively enhance a team’s effectiveness.

Discussion Questions

  • Which XP practices does your team currently use?
  • Are there any practices you would like to adopt, and what obstacles might you face in doing so?
  • How do you ensure that your practices align with your team’s values and principles?

Chapter 7: Primary Practices

Beck details the “primary practices” of XP, including practices like sit together, whole team, informative workspace, energised work, pair programming, stories, weekly & quarterly cycles, slack, ten minute build, continuous integration, test-first programming and incremental design. He states that these are the foundational practices that every XP team should adopt.

Which one you should use first depends completely on your environment and what you perceive as your biggest opportunity for improvement.

Discussion Questions

  • Which primary practice do you think would have the most significant impact if implemented in your team?
  • How do these practices align with your team’s current workflow?
  • What benefits or challenges have you experienced with these practices?

Chapter 8: Getting Started

This chapter provides practical advice on how to begin implementing XP in a development team. Beck emphasises starting small, with a focus on collaboration, incremental improvement and a highest value first approach.

Discussion Questions

  • What first steps can your team take to begin implementing XP?
  • What challenges do you anticipate in adopting XP practices, and how can you overcome them?
  • How can you involve your team in the decision to adopt XP?

Chapter 9: Corollary Practices

The chapter introduces additional practices, that build on the primary practices, offering further improvements after the primary practices are in place. These corollary practices are beneficial but not as critical as the primary practices.

Beck begins with a caution:

The practices in this chapter seem to me to be difficult or dangerous to implement before completing the preliminary work of the primary practices.

The additional practices are real customer (end user) involvement, incremental deployment, team continuity, (improving then) shrinking teams, root-cause analysis, shared code, single code base, daily deployment and negotiated scope contracts.

Discussion Questions

  • Which corollary practices might be relevant to your current project?
  • How do these practices complement the primary practices your team uses?
  • Are there any corollary practices that you think could become primary practices in your work environment?

Chapter 10: The Whole XP Team

This chapter discusses the importance of involving the entire team in the XP process, from developers to customers. The chapter details a number of, potential, roles:

  • Testers
  • Interaction Designers
  • Architects
  • Project Managers
  • Product Managers
  • Executives
  • Technical Writers
  • Users
  • Programmers
  • Human Resources

Beck argues that a successful XP team is one where everyone is engaged, collaborative and (as the team matures) take on tasks that aren’t “traditionally” in their role.

At first, fixed roles can help in learning new habits, like having technical people make technical decisions and business people make business decisions. After new, mutually respectful relationships are established among the team members, fixed roles interfere with the goal of having everyone do his best.

Discussion Questions

  • How is your team structured, and how does it compare to the XP team model?
  • What steps can you take to ensure that all team members are engaged in the development process?
  • How can you better involve customers or end-users in your project?

Chapter 11: The Theory of Constraints

Beck explores how the Theory of Constraints applies to software development, emphasising the need to identify and address bottlenecks that impede flow and progress. The chapter ties this concept to XP’s focus on continuous improvement.

Discussion Questions

  • What are the current bottlenecks in your development process?
  • How can your team apply the Theory of Constraints to improve efficiency?
  • Have you successfully eliminated a bottleneck in the past? How did it impact the project?

To be continued …

Neil Kidd
Neil Kidd
Head of Academy

My interests include Software systems development, flow and what enables organisations and people succeed.