you could not find a better setting for a code retreat than Bletchley Park, the home of one of the worlds first computers and the code breakers of world war 2, or a better guide for the day than Corey Haines.
The idea behind the code retreat is to give space for developers to hone their programming skills, in an environment away from the pressures of actually having to produce. Using a simple problem, pair programming and test driven development. The day is split into sessions of about 45 minutes, after each session the code is deleted, and people swap pairs. The idea is not to solve the problem, but during each session to explore different ways of coding, or aspects of the problem domain.
We worked on Conway’s Game of Life the first time out I tried to build the domain, starting with an array representing the universe, Corey pointed out that we didn’t strictly need an array, with the guidance in subsequent sessions I concentrated on the rules and cells themselves, until in the final session of the day we looked at the game board, and how the infinite area defined by the rules could be modelled.
During the second session I was introduced to the technique of "TDD as if you meant It", which was a revelation to me, , having never really heard of it before. Simply put a single test is written as normal but the code to make the test pass is also written within the test, as each test is added to the test fixture code, merciless refactoring pulls out the final production code, which can then eventually be pushed into its own classes.
The upshot of this technique is that only the code actually required is written, and because the final production code methods are created by extract method refactoring, the developer never actually writes a method!
The joy of the code retreat is that not only do you get to pair with many different people, but you also get the chance to use different languages and development environments, seeing ruby used in anger for the first time, displayed why the language has become so popular, the readability and simplify of the code mad my own c# code seam quite clunky in compassion. Another feature of the code retreat was the way Corey manages to compress time, so that each 45 minute session, seamed to only last a most 10 minutes. The amount I learnt on this single day, will take many days to digest.
The lunchtime guided tour of The National Museum of Computing was a geeks paradise, with the history of our trade laid out, and the working example of the “Colossus” being the highlight, although it does show how young our profession really is, as it was somewhat strange to see the machine I learnt programming on displayed in a museum! Or maybe its just my age.
The day ended much to quickly, but it was one of the best days I have experienced, if you get the chance then I can I can’t recommend enough attending one of these events, regardless of your experience level, you are guaranteed to lean something new, and have a great programming experience.
Thanks to everyone who arranged and attended for making such a great day, and to the staff of the National Museum of Computing and Bletchley Park for there welcome and help, and the wealth of information we received throughout the day.
I look forward to the next time.