GDCR 2014

First Facilitation

“I thought you worked in HR when you walked in” is the comment I remember the most about the global day of code retreat 2014… Ok guys, a piece of advice. If you think this when a lady walks into a hands on coding session (before she has even spoken), then do that - think it - don’t say it!

Despite that, facilitating the GDCR14 was a really great experience. It was the first LSCC event I had hosted, and together with my co-host we had spent several evenings trying to synch up on Skype to get the relevant slides, information and sessions together.

We decided on the following agenda, starting with easier more approachable constraints and gearing up to more challenging sessions.

Session 1: Simple Design

  • Express every idea you need to express
  • No duplication
  • Minimise the number of classes

Session 2: Outside-In TDD

  • Test drive the code from the outmost layer
  • Start with a failing acceptance test
  • Postpone low level design until really necessary

Session 3: Ping Pong

  • One person writes a failing test
  • The second makes it pass and writes the next test
  • The first person makes it pass and writes the next test

Session 3: Ping Pong

  • One person writes a failing test
  • The second makes it pass and writes the next test
  • The first person makes it pass and writes the next test

Session 4: Baby Steps

  • Setup a source code repository
  • Set a timer for 3 mintue interval
  • Refactor code or write test
  • If the time rings and the refactoring/test is not complete then revert in source control and start over
  • Restart the timer (no discussions in between timers)

Session 5: Object Calesthenics

  • One level of indentation per method.
  • Don’t use ELSE keyword.
  • Wrap all primitives.
  • First class collections.
  • One dot per line.
  • Don’t abbreviate.
  • Keep classes small.
  • No classes with more than two instance variables.
  • No getters/setters.

Session 6: No Tests

  • Sssssssh Naughty faciliator makes you rotate to a different pair’s work half way through

The first session was designed to allow us to gauge what TDD experience the attendees had. Looking back I think we should have spent more time explaining the concepts of TDD, perhaps even showing a simple example, as a couple of pairs did struggle to grasp the concept as they had not used TDD before. We mixed the pairs up after each session so that participants could learn from each other and network. Hosting at Pivoltal Labs was also a bonus, as they had a great ‘gong’ that would signal the end of each session and tell the pairs to delete their code. Afterall “what goes on a code retreat, stays at a code retreat!”

Towards the end of the day, we spent a few minutes with the group brainstorming ideas for other sessions. They came up with some very interesting suggestinons including

  • Calling your partner dave ?! …well whatever rocks your boat!
  • No IDE
  • One driver, many navigators
  • No Classes
  • Blindfolded… the list goes on..!

We used the six thinking hats to reflect. Each session had a retrospective with a different coloured ‘hat’ which kept comments to a given theme. I was unsure how this would work, concerned that participants might have something to share but not be able to as it didn’t fit that hat’s theme. However at the end, talking with various people, they seemed to enjoy the variety or retrospectives.

To conclude, being on the other side of the projector was really enjoyable. The day was well organised and a chance to meet many great people and be inspired by their enthusiasm.