The Agile Developer's Handbook
上QQ阅读APP看书,第一时间看更新

Introduction to the mechanics of XP

Here are the basic characteristics and features of Extreme Programming:

  • Planning style: Adaptive
  • Delivery style: Iterative/Incremental, sustainable pace
  • Iteration length: Ranges from 1 to 3 weeks, with a preference for the shortest possible
  • Values: Communication, simplicity, feedback, courage, and respect
  • Roles: Customer, Development Team
  • Team size: small, 2-10
  • Artifacts: Release plan, iteration plan, User Stories, tasks, CRC cards
  • Technical practices: Pair Programming all production code, TDD, metaphor, refactoring, collective code ownership, Continuous Integration, daily builds, Spikes, sustainable pace
  • Events: Release planning/iteration planning, daily standup
  • Special features: Prescribes technical practices, gathers requirements with User Stories, promotes working at a sustainable pace
  • Lacks: Compromise—it's a fully committed, all-or-nothing approach

These are the roles XP recommends for a team:

There doesn't need to be a one-to-one relationship between team members and functions. One person can perform more than one role.

For example, the person who has the Coach role could also have the Tracker role. Some instances of combined roles are Programmer-Tracker, Programmer-Tester, and Coach-Tracker. Some roles shouldn't be mixed; for example, for the Coach to remain objective, they probably shouldn’t combine with anything except Tracker. The same is true for the Customer, where we will also want to avoid conflicts of interest. Plus it's a time-consuming role in its own right.

XP requires that the Customer is part of the team; their involvement throughout the product development life cycle is key to its success. In XP, it's assumed that the customer has the most information about the value of what is being built. At the same time, it's expected that the Development Team has the best idea of how to implement that value and how much it will cost.

While this may be a radical shift from your current way of working, you'll be amazed by the results of having the customer on the team—I've seen this work well many times. We may be the experts at building software, but our customer is the expert in their domain and is the person closest to the real-world problem that we're trying to solve.

XP uses iterations to deliver working software incrementally. The iteration length is anywhere from 1 to 3 weeks. The team should pick an iteration length and fix it, only changing it if it's necessary: