Practice: The Planning Game
  • The Customer: Scope, Priority, Releases (what)

  • Programmers: Estimates, Consequences, Process, Scheduling (how)

  • Stories are simple requirements

  • Programmers don't decide for customer [phone lookup]

  • Example Story Card:

    Member Contributions Report Story Card

  • The Actual Implementation

Notes:

The Customer lays out what needs to be done. She's the only one who should be defining product direction and priorities. This is the what of software development. Programming is a professional service.

Programmers take the what and run with it. They define how they are going about that task. The Customer shouldn't tell programmers what tools to use. This doesn't make sense, because the programmer is the one using the tool.

Stories are simple requirement statements. One or two sentences. A picture may be useful. The programmers will be back to ask the customer about the details when they are implementing. Simple stories are easier to estimate.

[phone lookup] I was on a project where there was a need for a phone lookup. The customer wanted to be able to enter a partial phone number and retrieve a list of matching customers. One of the engineers on the project refused to implement it, because he thought it would be "too slow". He didn't know this. He should have estimated the performance, i.e. defined the consequences, and not decided for the customer.