February 28, 2011

...Learn TDD with Codemanship

Session Idea For SC2011 - Run An Experiment

First the good/bad news (depending on your point of view) - Software Craftsmanship 2011 is sold out. Again. We increased the number of spaces by 30, and sold out in less than 2 weeks again. Sorry if you didn't manage to get a ticket. We'll try and make more places available in 2012.

The list of attendees is looking pretty impressive, and between us I reckon there'll be some truly dandy sessions to get stuck into.

The deadline for session proposals is still a couple of months away (April 29th), and now's the time to get your thinking caps on about what kind of session you might like to run.

There's our old friend the coding dojo, of course. Or maybe a coding game or challenge? This year, I'd love to see some live experiments, too.

For example, does TDD really slow us down in the short term? I have an idea for a session that someone might like to try.

Take a relatively simple code kata - but not too simple (there needs to be a few tongue-twisters in there to make it more realistic). E.g., a program to convert integers into roman numerals.

Split the room into four groups: one half will apply strict TDD while they do the exercise, the other half can write unit tests after they've written the code, the third group is only allowed to do manual testing after they've written the code, and the final group is not allowed to do any of their own testing at all.

You will provide a standard interface that their converters must implement, and a suite of acceptance tests their code has to pass. They are not done until they have passed all your tests, which can only be run by you after they have delivered their code. (You'll need to rig up a simple depolyment mechanism to allow this.)

On average, which group gets done fastest? Will it be the group that does no testing, or the group that tests manually, or the group that writes after-the-fact unit tests? Or could it be the group that does TDD?

I don't know the answer, but I'd be very interested to find out. Very interested indeed. With a sample group large enough (say 10-15 in each group), the results could be quite enlightening. Maybe we'll see no difference at all.

Anyway, that's just another kind of session you might like to think about. One which could answer a question for the community, or at least get us all thinking.

Submitting session proposals is easy. Just record a little screencast illustrating the practical elements of your session - or an example of them, if it's going to be a very open and loose kind of affair - and post a link to your video with a session outline here.

And don't hesitate to get in touch if you want to bounce some ideas around, or need a bit of advice on screencasting.

Posted 3 weeks, 2 days ago on February 28, 2011