Session Leader Name #1Session Leader Name #2Session TitleSession StyleSession LengthSession DescriptionSession requirements (technical)Video Link #1
Jason Gorman - Refactoring - There's That Word AgainTutorial90 minsThe "R" word gets bandied about a lot in our line of work, but evidence suggests that only a small subset of the people who talk about it actually do it. In this tutorial, I'll remind us of the discpline of refactoring, and lead the participants through refactorings of a handful of the most common code smells.You must be either a Java or a C# programmer, and ideally have automated refactoring tools and JUnit/NUnit installed (e.g., Eclipse, IDEA, Resharper).
Remco MulderGordon BarrsSpace Invaders vs Continuous TestingGame/Challenge90 minsA fun coding challenge to find the fastest way to develop reliable software, between:

* Manual testing
* Continuous testing

Participants will write code to defend earth from alien invasion. Score will be accumulated over 60 minutes depending on how many cities are successfully defended.

Participants will be split into 3 groups, each representing a different testing practice. Scores will be averaged between the groups at the end of the session to determine some interesting statistics.
This session is for .NET developers only.

Participants who wish to operate in the TDD group must have a manual test runner available on their machine that can run NUnit tests.

Participants who wish to try out continuous testing are recommended to first try NCrunch on their machine ( - though there will also be some setup time at the beginning of the session for those unfamiliar with this tool.

Visual Studio 2010 will be used along with .NET v4.0.

A downloadable solution will be made available at the beginning of the session containing the code and instructions needed to get started.
Krzysztof Jelski - How object-oriented are you feeling today?Game/Challenge90 minsJeff Bay in an essay titled "Object Calisthenics" [1] proposes to do an exercise: write a small project why applying nine rules, which will drive your design towards object-orientation.
We'll do a TDD-Kata and try to follow these guidelines. At the end we'll reflect on our exercise to see what have we learned.

The rules are quite simple in their form, but not always as simple to follow. Take a look yourself:

1. Use only one level of indentation per method.
2. Don’t use the else keyword.
3. Wrap all primitives and strings.
4. Use only one dot per line.
5. Don’t abbreviate.
6. Keep all entities small.
7. Don’t use any classes with more than two instance variables.
8. Use first-class collections.
9. Don’t use any getters/setters/properties.

The form of the session will be Kata performed in pairs. So, every pair will solve the same problem while sticking to the nine rules. At the end some pairs will share the resulting design by showing their code on the projector.

[1] Object Calisthenics, Jeff Bay in: The ThoughtWorks Anthology, Pragmatic Bookshelf 2008.
Participants are asked to come with a laptop with their favourite IDE installed.
My language of choice is Java, but participants can use other object-oriented languages.
Rob WestgeestWillem van den EndeDirty JobsTutorial90 minsTry to add a tested feature to a legacy (code without tests) system.
We'll bring a legacy client-server system inspired by code at our clients. Your challenge is to add a feature to the client, and while doing so discover some 'interesting' code smells as well as our fantastic legaci protocol, which is RMI in one way, and 'proprietary' in another way... (inspired by streaming MPEG encoder/decoder).
C# or Java present
Fun-loving attitude!
Jon Jagger - CyberDojoOther90 minsCyberDojo is specifically designed to encourage mastery and collaboration in a team-based technical situation.

Participants work on one or more coding katas using a simple editor inside a browser. They submit their code and tests to the CyberDojo server whenever they like. The CyberDojo server runs their tests and returns the outcome as a traffic-light - red if some failed, green if they all passed, amber if they couldn't be run (eg syntax errors). Periodically the server will send a rotation message to each participating laptop asking the current keyboard driver to move to a new laptop and take a non-driver role. The aim of the session is to get working solutions on all laptops.

A CyberDojo is fun as well as being a great learning experience. Please bring a wifi enabled laptop.

(This is the same as last year when a hiccup meant I couldn't attend.)
Just power sockets for the server and for each participating laptop.
Peter Lind - Cuke4All - Setting up Cucumber to Test Any Web Application
Tutorial30 minsLearn how to use Cucumber and test tools that you'd normally use in a Ruby On Rails project to test any web application, no matter what language it is written in.

Bring you own legacy web app, and hopefully you'll leave the session with some automated integration tests set up.
To save time (and bandwidth), please make sure you have the following before the session:1. A working Ruby installation (1.8.7 or 1.9.2)On linux use rvm http://rvm.beginrescueend.comOn windows use mac you probably already have ruby, if not, use rvm2. Ruby in your path$ ruby --versionruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.4.0]3. Bundler gem installed$ gem install bundler4. Other gem dependencies installed, easiest way is to clone my git repo and install via bundler$ git clone git://$ cd cuke4all/integrationtest$ bundle install5. An existing web app that you want to test, preferably something real (the app you work with at your day job) - If you dont have an existing app, you can clone the github repo which contains the app in the video (A Java Spring app)6. If you don't bring a web app to test and plan to use the petclinic app, best to download all the Java dependencies$ cd location_of_git_repo$ cd petclinic$ mvn install7. To run petclinic you need a mysql instance running locally
Christian Horsdal - Enhancing legacy test suitesOpen/Community60 minsToday many code bases have automated test suites, but many of these suites where written late in development and without clear goals. The result is less than satisfactory:
* Many parts of the code base are not covered by tests
* Standard edge cases like 0, null, "" or MaxInt/MinInt are not tested
* Tests are littered with magic string and magic numbers
* Tests have bland generic names, and do not pin down the behaviour of the SUT.

In this open session I would like to explore techniques we can use to move forward with such test suites towards tests that act better both as regression guards and as specifications.

This is an open and hands-on session where everybody is encouraged to grab the keyboard and show their test enhancement technique.
I will a bring a small code base with some mediocre tests and kick off the session by showing a simple test enhancement via parameterizing a test, and then hand off the keyboard to whoever wants to jump in.
We will need a projector.
Matt Williams - Personal Codes of ConductTutorial30 minsA brief overview of codes of conduct in the medical profession and how these can map to software developers. I will demonstrate how I decided upon my code of conduct and how I get feedback from customers and colleaguesA projector, Whiteboard or a flip chart is always useful.
Justin Mclean - Asynchronous Unit Tests in FlexUnitTutorial60 minsA look at how to test asynchronous code using FlexUnit and how to solve common issues that arise when testing any asynchronous code. I'll cover the Async class in FlexUnit, chaining events, dealing with events arriving in different order and sequence of testing steps to make unit testing asynchronous code a lot easier.For me:
Just need a projector to connect my laptop to.

For participants:
FlexUnit, Flex compiler and Flex SDK installed (all no cost/open source). Can provide installation instructions/links before session.
Jason Gorman - Test-driven Development From HellGame/Challenge60 minsBeing aware of what you actually do is the first step towards doing it better. In this session, participants will take a TDD "driving test", attempting a popular TDD kata whilst fastidiously observing 13 key TDD practices. They will record screen captures while they do it, and a pairing partner will watch them and record any lapses in discipline.Participants will need a laptop running their favourite IDE, and a practical knowledge of unit testing and TDD. It's recommended they watch the video "TDD From Hell" and get some practice in advance of the session.