SPA Conference session: The Butterfly flaps its wings. Is TDD complex or simple?

One-line description:Do the starting conditions affect design in TDD?
 
Session format: Workshop (150 mins) [read about the different session types]
 
Abstract:Inspired by a long discussion with Jamie Dobson at XpDay and a couple of false starts, this session is an experiment to see how forcing different constraints might affect the result of Test Driven Development.

The idea is to have each pair program up a common example, an Engima machine, but with different starting conditions. Some will be environmental, such as functional vs. OO languages, others will be more about approach, for example:
- introduce domain types immediately
- extract domain types from strings and integers
- model the physical machine (rotors, etc)
- don't model the physical machine
- "TDD as if you meant it" style

We can also force the initial test choices, for example:
- a one rotor machine completely implemented
- a minimal machine with 3 rotors

We will ask people to checkpoint the code at intervals during the session to see how the design is evolving. We could try gathering some arbitrary statistics, such as number of lines, classes, methods, etc.

 
Audience background:Programmers experienced in Test Driven Development.
 
Benefits of participating:Increase the world's sum of knowledge and perhaps understand more about how we make our design choices. We don't really have objectives clearer than that, but we expect the SPA audience to find us some.
 
Materials provided:Description of the Enigma machine (various generations), a collection of constraints to follow. We will use some training material Romilly has been developing around the Enigma machine example.
 
Process:Explain the intention and the design of the Enigma machine.

Pair programming for most of the time, periodically collecting versions and statistics. We can set up a VCS instance somewhere that people can commit to.

Review
 
Detailed timetable: 0 - 20 Explanations and choosing pairs
20 - 120 Programming (including tea break)
120 - 150 Review and discussion

The timing is short, but our experience at XpDay was that people got enough done to give us some initial feedback. If it gets scheduled early and people are interested, they might want to carry on through the rest of the conference.
 
Outputs:Write up code comparison in relation to constraints and discussion
Maybe post solutions
 
History:Jamie ran this session in beta at XPDays in London, 2011. In December, Jamie ran it again for the Federation of Agile Testers, in Holland.

Romilly will have used the Enigma example for some training sessions.
 
Presenters
1. Steve Freeman
HIgher Order Logic
2. James Dobson
Ugly Duckling
3.