Sunday, February 27, 2011

Extreme Programming Installed, Chapters 19-21

Reference Information
Extreme Programming Installed
Jeffries, et al
Addison-Wesley Professional, 2000



Summary
Chapters 19-21 of Extreme Programming Installed focus on steering the project. The critical concept is that estimates are wrong, and extreme programming projects need a way to quickly and easily adapt to delays and problems. This is accomplished by steering the project so that changes in estimates and priorities can be made seamlessly during development. Both the customer and the programming team will learn over time to better estimate how long each type of story is likely to take. In some cases this is a good thing: many teams actually begin accelerating as the ground work is finished which makes subsequent tasks much easier. The authors believe that steering will generate a more successful project than one which tries to accomplish everything as it was originally imagined.


Steering requires some measurements that can help with the decision-making process. The most basic measurement available is the number of stories being completed per iteration. Stories should always be completed fully by the end of the iteration - it is better to have nine completed stories than ten stories 90% complete. To avoid the situations, programmers must learn from past stories so that they can more accurately predict the cost of each new story. To make this work even better, a tracker should be chosen to follow each task and to personally check with the programmer to make sure that everything is on target. If the tracker discovers a problem, these steps should be followed:

  1. Present the problem to the entire team; maybe someone can help
  2. Solve the problem within the team if possible
  3. Give the problem special attention - possibly change partners or replace the pair altogether
  4. Get the customer involved as soon as it is determined that the team cannot handle the problem
Tracking is critical to help overcome any unexpected problems and helps build team confidence that the project is moving along as planned.

Release-level steering focuses on when the release is, and what needs to be done at that time. To gauge how a release is proceeding, simply check the number of stories completed (where they pass the acceptance tests) out of the total number planned for that release. The most valuable stories should be the first added to each iteration so that the software has the highest value each and every day.

Opinion
These three chapters offered very little new material. They appear to be a re-hash of what was already discussed earlier in the book. The only remotely interesting parts were how to choose a tracker and that the customer should be told of any problems as soon as possible.


No comments:

Post a Comment