Senior Seminar

Course Index
Return to Dr. Margush's page

The Planning Game - A Better Mousetrap

eXtreme Programming 

Discovery: What does the customer really want?

Estimation: How long will it take to implement that feature?

The cycle

  1. Customer creates ‘stories’
  2. Developers estimate time requirements
  3. Customer chooses stories to be implemented
  4. Developers implement requested stories

Requirements: Groups of 7-9 people. One person serves as moderator, two as the customer, the rest are designers. A stack of index cards for ‘stories’ and implementations.

The task is to build a better mousetrap. The customer specifies mousetrap features, the designers implement those features. The moderator keeps everyone ‘honest’. Customers may only specify, they may not estimate. Designers may only estimate and implement, they may not design. No one may intimidate. The moderator also decides if an implementation (drawing) is sufficient to implement a feature. Implementation, in this exercise means to draw.

Part 1 – Story creation and estimation – 10 minutes

Customers write 1-2 sentence descriptions of desired features, one feature per card. These are called ‘story cards’. Features must be ‘drawable’ and the moderator must enforce this requirement. Moderators may reject story cards if they are too vague.

As each story card is created, it is passed via the moderator to the designers. They must estimate in minutes or seconds, how long it will take to implement (draw) that feature. The estimate is written on the card. Designers may consult with the customer to clarify requirements or to split a complex feature into smaller parts. The designers may tell the customer that a requested feature cannot be implemented and the customer may respecify if desired. The designers may practice drawing to help with time estimates.

Part 2 – Feature Selection – 5 minutes

The implementation cycle will be 10 minutes long, but the designers must keep in mind that they may face delays in integrating features, or providing implementations that satisfy the members of the design team and the moderator. The design team must estimate their effective effort which must be less than or equal to ten minutes. This is the total time they expect to use in implementing features. This number is given to the customer to help them in their planning.

The customers must now choose features to be implemented based on their relative importance and the time estimates. Stories should be sorted into ‘must have’, would really like to have’, and ‘probably not needed’ piles, and then ranked by importance. The customer then selects stories to be implemented. The total of the time estimates on selected stories must be less than the amount of time the designers promised effective effort. The moderator verifies that the total time estimates for selected stories is less than or equal to the effective effort.

Part 3 – Implementation – 10 minutes

The designers work in pairs (or triples) to implement stories. Each design team takes one card and implements that story by sketching the feature on another index card. The time for implementation is then written on the card. As long as time remains, each team may take another story card and repeat the implementation process. Designers may redraw a feature as often as needed to satisfy the team, but the redrawing time must be recorded as part of the overall time spent to implement that feature.

As each feature is implemented, it is integrated into the final product which is sketched on a separate piece of paper. This drawing may be revised or completely redone as needed. The integrated parts must resemble the individual feature drawings they represent. If integration problems occur, re-implementation of a feature may be required; be sure to revise the actual effort time on the feature card if this occurs.

If all story cards are completed early, the designers may request additional stories from the customer and attempt to implement them as well. The customer must also be available to clarify or approve implementations as requested by the designers. The customer is free to develop additional story cards for the next iteration.

The moderator should keep track of the time remaining in the implementation cycle and ensure that the customers do not add requirements during the process. The moderator should also require that the designers work on only one feature at a time.

Part 4 – Assess and Repeat – 5 minutes

Designers total the time spent on feature implementation (from the completed feature cards only) and decide on a new effective effort number for the next ten minute implementation cycle. The customer reviews the completed features and integrated solution and develops additional stories if desired. These new stories are given to the designers for estimates. The customer may also discard story cards and the designers may adjust estimates on previously reviewed stories. At the end of this period, the customer must supply a new set of cards to the designers for implementation during the next round. The total of the times in this set must not exceed the effective effort promised by the designers. The completed feature cards are provided to the designers in case they choose to refactor their design.

Part 5 – Implementation Round 2 – 10 minutes

Designers implement and integrate the new features. This may require redrawing the previously completed product, or may entail only small revisions and enhancements. The final drawing is due at the end of this cycle. Actual time spent on each feature is recorded on the card. Time spent on refactoring previously completed solutions is also recorded.

Part 6 – Review – 5 minutes

Customer reviews the final solution and indicates its approval level. The moderator assesses the solution in light of story cards and judges the degree to which it represents the requested design. The designers total the time spent on developing features that were completed and evaluate their effectiveness.

Discussion

Results:





Return to Dr. Margush's page