This is not the event year you are looking for. For details of our next event, please visit

To view the latest event website please visit

For the latest event:

7 - 8 May 2015

Museum of Science and Industry, Manchester, UK

Red, Green, ... what now?!

Kevin Rutherford XP Surgery
James Jeffries 

Session type: Hands-On
Session duration: 90 minutes

About this Hands-On

The "refactor" step in TDD is deceptively simple: you just have to improve the code without changing what it does, right? The experts make it look so easy: "Look", they say, "here's some duplication, which I will remove by <insert magic incantation here>".

But how do you know which refactoring move is best? How should you decide which "duplication" to remove first? What happens if you fix the "wrong" smell? And how do you even see that duplication in the first place?

In this hands-on session, two programmers will pair on a well-known problem, using TDD and focusing on the Refactor step. We will explore how Connascence lets us evaluate what problems our code has and what to refactor first. We will discuss whether the TDD community has provided us with adequate techniques for removing "duplication" and we will demonstrate effective use of many of those techniques we do have.

This session will be a live coding event, liberally sprinkled with participation, wrong turns and diagrams with boxes and arrows.

About the Speakers

Kevin Rutherford

Dr Kevin Rutherford is a software development coach, trainer and extreme programmer. He is the creator of the vastly under-rated Reek code smell detector and the vastly over-rated book ‘Refactoring in Ruby’.

If you have ever used Unix System V or transferred money between bank accounts, you’ve unwittingly used his code. He was using vi before you were born.


James Jeffries

I'm a polyglot programmer who has worked on everything from robotics and network automation to insurance quotes and data analytics. I'm interested in how we can build better, more maintainable code in more effective ways.


Session Types

Need help planning which sessions to attend? We've provided a breakdown of our various session types below.

Case Study/Experience Report

A presentation and discussion of real-life (not theoretical) experiences of the application (or mis-application) of Agile and Lean practices. Case studies and experience reports include some discussion of lessons learned and an indication of how novel the work is.


Participants learn a new approach, tool or technology through using it to solve one or more practical exercises. Any software/hardware requirements are disclosed in the session description.


A session focused around some specific tool, technique or issue. Primarily led by the speaker, tutorials usually include some elements of interactivity or individual / group exercise.


An in-depth working session on a specific topic. May include paper presentations.