I attended Software Craftsmanship 2009 at the BBC last week. It was a one day event with three streams. Below are some of my thoughts on the sessions I attended.

Pitfalls in Test Authoring
John Daniels & Dave Cleal
John and Dave presented some examples of testing practices (good and bad) with the intention we would discuss them in small groups and then come up with our own examples. A very enjoyable session with some interesting results (a lot of people felt it was OK to hit the DB in a unit test and there was clearly a lot different interpretations of what constituted poorly-defined tests). Most amusingly everyone disagreed with one practice Dave presented where he was testing a sequence of events (multiple assertions) in one test which was rather the opposite of his intention! I had put forward a session on “Test Smells” which got shamefully rejected so with Gojko were able to come up with a crap load of our own examples (see xUnit Test Patterns for some examples) .

Keith Braithwaite ran two sessions:

Three Paradigms: Taking An Extreme Position on Code Style in a Safe Environment
e.g. “remove all setters and getters”, “remove all conditional statements, and then remove them from where you’ve hidden them”. This would have been better if he’d handed out the code examples pre-conf as most people spent the first 15-20 minutes getting the fekker working, but a fun and worthwhile exercise nonetheless. Keith is clearly a man of high standards (“any language with curly braces makes you stupid”) and whilst I admire this I have much bigger issues than “pointless DTO objects” to refactor…

TDD As If You Meant It

Thankfully this was a little less challenging then the previous session, but a fantastic exercise in TDD discipline. We were given the task of identifying whether a “Go” piece was “captureable” (surrounded on more than 2 sides by opposing pieces) TDD style following rigorous rules. There were some really interesting results and a lot of people really struggled not to try and solve the problem that was in their heads rather than doing the simplest thing possible to get the test to pass. Most people found that being really disciplined resulted in the creation of a lot less objects holding state and instead more functional style. Gojko has done a brilliant write up on his experiences here.

Open Spaces
The first session, instigated by Matt Wynne was to address a particular issue he’s having where the problem domain has outgrown the current architecture and how he could enable it to evolve. It seemed the real problem (as is often the case) was communication channels and standards within the team. There were some interesting discussions on how team dynamics and the history of the context are significant in the solution. There was agreement that, if all else, pair programming was essential to spread best practices.

The second open space proposed by David Laing was the ever topical subject of how to deal with technical debt. Essentially it felt there were two approaches:

  1. Raise it with the business and explain it in a way they will understand (use analogies, act it out as a soap opera, cover the wall in technical debt cards until they sit up and notice).
  2. Just get on and do it (you wouldn’t tell a guy building your house to only dig half the foundations as it would be cheaper/quicker and he wouldn’t do it so why should we?). Follow the mantras of don’t live with broken windows and the Boy Scout rule

There are of course many other issues in play and again, pair programming was highlighted as invaluable in spreading good practice. David has written about his thoughts here

Overall it was a fantastic day and really refreshing to focus on the development skills rather than the infinitely more floaty process-oriented “Agile” practices. I look forward to next year. Well done Jason Gorman and all the guys involved in the organisation.

2 Responses to “Software Craftsmanship 2009 Round Up”

  1. Keith Braithwaite Says:

    Yeah, the three paradigms session could have been better organised. Sessions at programming conferences that involve programming are always a nightmare.

  2. Software Craftsmanship: Feedback From The Blogosphere Says:

    [...] BBC Worldwide’s Rob Bowley blogs about SC2009 and posts a great pic that illustrates how busy lunch was! http://blog.robbowley.net/2009/02/28/software-craftsmanship-2009-round-up/ [...]

Leave a Reply