[Please do not mail me a copy of your followup]
There's been lots of discussion about TDD on this newsgroup lately. A
reader contacted me offline asking about seeing TDD worked on a
non-trivial real world example.
Is this something of interest to the group?
Here is my thinking:
First, we agree on an example problem. This could be a "greenfield"
project[1], e.g. a brand new code base starting from scratch. Or it
could be a "brownfield" project[2]. Greenfield projects are easier to
demonstrate TDD, but some feel that their lack of integration into a
larger context avoids addressing the difficulties of adopting TDD into
an existing code base.
Once the problem is agreed upon, I'll setup a google hangout, skype
call, youtube stream or whatever, to work the problem for a fixed amount
of time, probably an hour. I might do follow-on sessions if that is
deemed useful.
We can organize the session in one of several ways. First, it could
simply be a tutorial where I give commentary while I work the problem.
Questions from the audience are fine. Second, we could arrange it in
a "mob programming" or "randori" style session where I drive the IDE
and provide commentary, but the decisions of which tests to tackle and
how to guide the implementation are decided by the audience. This
style is more interactive, but tends to go a little slower due to the
distributed decision making and the fact that the group are strangers
to each other, so there isn't an assumed common shared culture about
how to proceed.
[1] <
https://en.wikipedia.org/wiki/Greenfield_project>
[2] <
https://en.wikipedia.org/wiki/Brownfield_(software_development)>
--
"The Direct3D Graphics Pipeline" free book <
http://tinyurl.com/d3d-pipeline>
The Terminals Wiki <
http://terminals-wiki.org>
The Computer Graphics Museum <
http://computergraphicsmuseum.org>
Legalize Adulthood! (my blog) <
http://legalizeadulthood.wordpress.com>