October 8, 2010

SC2010 Report

I attended the Software Craftmanship 2010 conference in Bletchley Park and had a great time. A craftsmanship based conference is a collective exercise in clean programming using a lot of different techniques: katas, koans and maybe less esoteric exercises in refactoring and test driven development. This was exactly what I expected and the reason for me to attend. I coded the whole time and concentrated on my craft, tooling and techniques. Here are the sessions I attended.

Refuctoring with Jason Gorman

I briefly looked at the screencast of the presentation the day before and thought refuctoring must be fun and it was. The technique is simple: grab a very simple line of code, like “Hello World” which is fully covered with tests and try to make it a mess! Not easy at all! There are so many ways you can be a bad programmer and we are so used to try hard for maintainability that writing crappy code is excruciatingly difficult :)

But refuctoring is not just fun. It is a real exercise with good overall effects. Since you’re not concerned with maintainability of the code or how to better structure business rules, the focus is just purely on refactoring with all the benefits of recognizing quickly how to clean up the mess you just created. Kudos to Jason Gorman for the whole conference and for his very entertaining session. I know now how to recognize code “smiles” and replacing them with code “smells”.

Designer Code by Chris Parsons

This was the natural continuations of the previous session. After a brief introduction to code smells and related refactoring moves, Chris Parsons of Eden Development fame showed us a completely cryptic piece of code to refactor, probably the work of a Master Refuctor. Code coverage was already in place for the exercise, we just had to solve the puzzle of defining meaningful name and clean up the code. Another very good exercise I couldn’t complete but hopefully is all available here.

Make Mine A Mocker by Neill Pearman

Another interesting way of exercising. This time, Neill created for us a koan based on a cucumber feature set on the path of building a mocking library for Ruby. Following the steps and the tips given, we were required to write enough code to make the scenario pass and move to the next failing ones. I couldn’t get through the end (as almost all the other exercise) but it’s easy to “doggy bag” the content of the conference thanks to GitHub and bring back the koan with you for later enlightenment.

Code Breaker History

After lunch we got the tour of Bletchley Park and of course learn about the important piece of cryptography history that tool place here during world war 2. Alan Touring was head of the first team who architected the Bomb, an electromechanical calculator to exploit the settings of the Enigma machine. What a nice way to spend some time outside and relax before the afternoon sessions!

Robot Tournament by Matt Wynne

I really enjoyed the development challenge organized for us by Matt Wynne. Very simple: create a small program able to play tic tac toe in a tournament with 6 “battle” and hopefully win. I preferred Ruby for my robot but I wasn’t that good :( I managed to win 50% of the battles until the 4th round, then trying to add the new feature I ran out of time. Another useful exercise: adding the time constraint to the mix forces you to think about the best possible solution in the least amount of time. Of course the solution cannot be the best and the focus is exactly this. Release quickly release often is the key to survive in such an environment and developing this kind of challenge you’re forced to think about compromise. Kudos to Matt for his tournament platform available here. I will certainly suggest the game at the next craftsmen meetup.

Comments (View)
blog comments powered by Disqus