CITCON Paris 2009
This weekend I attended CITCON Paris 2009 with my friend and business partner Andy Palmer. It was a fantastic event, although next time I think I'll volunteer fewer sessions. Andy and I found ourselves playing a major role in most of the sessions we attended which was absolutely exhausting!
CITCON is a free-to-attend, open-space event where the conference delegates propose the sessions. The brainchild of Jeffrey Fredrick and Paul Julius
Andy and I talked about many things, including something Andy dubbed "Instant Replay" in the Improving your TDD skills session. This is idea comes from our experiences recording PairWithUs. If you don't already know, we record all our coding sessions on a particular open-source project and upload them for all to see. What we've noticed is that when we watch our own recordings - we spot ways in which we need to improve for ourselves. Jason Gorman has taken this one step further - getting pairs of developers to record a coding session then pass that to a colleague for feedback.
During this session one of the key things that came out of it was a short phrase to help understand the different roles that different types of tests play. Between me and Douglas Squirrel, we came up with this:
- Having acceptance tests and no unit tests builds the right thing slower.
- Having unit tests and no acceptance tests builds the wrong thing faster.
Now, this isn't a 'law' or rule but is a guide to a probable outcome in either case.
There was a huge amount of interest in acceptance test driven development (or 'acceptance testing' as some were calling it). We shared a number ideas around this. In particular some common patterns we've found when writing Acceptance Tests, such as:
- given <someone> was able to <do something>
- when <someone> attempts to <do something>
- then <something> for <someone> was able to <do something>
Someone asked how people go about creating or extending acceptance test frameworks. We shared our approach - help the customers find the way they want to express what they want then work out how to represent it. Make the tools work for you - and don't feel forced to use a tools default approach to things. Some more radical approaches highlighted included Brian Marick's Graphical Workflow Tests and the Ward Cunningham's swim lanes.
Great event... one I'm looking forward to attending again.
