Wednesday 4th July, 2012
9:30am to 12:15pm
One-line description: Do the starting conditions affect design in TDD?
Session format: Workshop (150 mins)
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.
Sign in to add slides, notes or videos to this session