Monday, February 7, 2011

Extreme Programming Installed Ch 7-9

Reference Information
Title: Extreme Programming Installed
Author: Ron Jeffries, Ann Anderson, Chet Hendrickson
Editor: Addison-Wesley Professional, October 2000

Summary
Chapter 7 discussed the idea of having small releases in Extreme Programming. They provide early benefits to the customer with early feedback to the programmer. Early releases allow direction to be changed throughout the project, and provides an actual, working version of the product to the customer.

Chapter 8 discussed the customer's role in product releases. It is up to the customer to control the scope of each release, and to decide what needs to be done and what should be deferred. This should be decided based on the amount of business value, difficulty of implementation, and the team's implementation velocity. The exploration phase of planning release consists of writing user stories, and letting the programmers experiment with ways of building the system. This informs them how costly the stories and features will be. From this, the project velocity can be determined, which is how many points the programmers can complete within a given period of time. Based on this velocity, stories can be selected for the first release.

Chapter 9 discussed iteration planning, where the development team plans a few weeks at a time with clear objectives and solid estimates. The customer selects work that will maximize business value and programmers agree to work on stories defined by the customer in the order requested by the customer. Planning is done in short iterations, so that tight estimations of work effort can be created. The process of iteration planning is: Customer considers business value of each story and programmers assign difficulty points with an estimated velocity, the customer prepares for the iteration planning meeting by selecting stories whose points add up to the project velocity, then the customer presents and describes stories while the programmers sign up for work and estimate tasks. This allows for discussion and understanding to take place.
An example of iteration planning, whereby tasks are associated with points and programmers sign up for tasks.
Summary
I agree that small, working releases are a good idea when programming, so that the program will always work in some way and the customer can see what's being done to make sure that the programmers have the right idea. Also, I like how in iteration planning, programmers are encouraged to sign up for stories or tasks, estimating how long they will take. When the programmers have the ability to choose what parts of a program that they work on, it encourages interest in the topic, which in turn increases the programmer's productivity.

No comments:

Post a Comment