The goal of this was to create a simple
command-line calculator CodeUnitTestFirst
. We ended up getting a bonus dose of PlanningGame
wrote some UserStory
cards to create a calculator. VincentTence
, Pascal Roy and YoucefBouayad
brought in their laptops so we could write real code. Rodrigue Cloutier, IainLowe
acted as customers on site and sometimes as coaches.
Stories: Any "support" stories imply that the support is backported to previously completed stories
- Add two single-digit positive numbers.
- Subtract two single-digit positive numbers.
- Multiply two single-digit positive numbers.
- Divide (integer division) two single-digit positive numbers.
- Modulo divide two single-digit positive numbers.
- Support negative numbers.
- Support floating point numbers.
- Support scientific notation for large numbers (1.23456e4).
- Support factorials (!n).
- Support roots ("9r2" produces "3").
- Support exponentiation/powers ("2^3" produces "8").
- Support parenthesized sub-expressions.
- Support operator precedence rules (standard).
We were almost 15 people. We created three groups of 3 to 5 people with one laptop for each team. Three clients work with the 3 teams to just do some XP style development.
Each team estimated the stories briefly (15-20 minutes) and was then asked to implement a list of stories in order. We dispensed with the notion of iterations because we didn't have a lot of time.
The teams were able to implement in JavaLanguage
one or two UserStory
cards in 1 hour and a 15 minutes: Add and Sub with a command line interface. Some teams decided (or were asked by the client) to read input from files, others from keyboard.
It was very interesting to see the different questions each team asked during the planning phase. Each had different concerns and plans for how to deal with issues.
Acceptance tests were done manually by the customers.
It was a highly interactive session !
See also ExtremeHourWithActualProgramming
's account of a similar session he ran.