Pawel Duda github twitter

Facilitating a Global Day of Code Retreat

15 November 2015

On 14/11/2015 I had an honour to co-facilitate, together with @keyvanakbary, a Global Day of Code Retreat at TransferWise. This blog post is my retrospective.

Before the day

I met @keyvanakbary a few days before and we discussed organisational matters as well as the ideas for the session.

On top of that, we prepared a presentation for participants and a simple script for facilitators - a step-by-step of what we want to talk about, useful links, etc. I didn’t memorise all of it but the fact of having it written down helped to clarify how to structure the day (mainly the introduction) and when to show sponsor decks, explain the Conway’s Game of Life rules, etc.

I also posted a few comments on the Meetup page to remind the participants about the event and attach a video by @alexboly in which he explains how to get the most out of it.

On the day

We started the day at 7:30 with @keyvanakbary, which gave us 1.5h to prepare the event including:

We chose the following constraints:

  1. Keep methods no longer than 4 lines
  2. Ping-pong TDD
  3. No conditionals
  4. Silent pair programming
  5. Baby steps (3 minutes to check in or revert, after 30 min we switched it to 2 minutes)
  6. No tests (+ asking participants to switch to somebody else’s machine after 35min)

Essentially all the constraints were chosen on the day. That is, we decided the first one just short before 9:00 and then we were selecting the following one while people were pairing, responding to what we observed.

Keep methods no longer than 4 lines was more of a warm-up. We just wanted to make sure people can run tests and learn about the Conway’s Game of Life.

Ping-pong TDD came second. We knew TDD will be used throughout the day so we wanted to remind participants of the steps and also even out on-the-keyboard time within pairs.

No conditionals took away one of the most common tools for programmers in order to get them out of their comfort zone.

Silent pair programming opened the, what I like to call “memorable” afternoon sessions, taking away something as essential as verbal communication and forcing people to maximise the expressiveness of their code.

Baby steps followed as the 5th one. It’s not uncommon for programmers to write a simple test that requires to implement everything at once or that gets us stuck. This session was aimed at working on smaller chunks and continuously integrating our code in VCS.

No tests closed the day by using the power of contrast built on the 5 TDD-based sessions before. The effect was intensified when people were asked to move to another machine.

Just after the 6th session we had a video chat with the group from Valtech in London. We structured it to have 3 people from each group answer a question “what was your favourite session and why?”. Being our neighbours, they also invited us to a pub afterwards. As we were about to finish it a group from Santiago in Chile joined our chat, which was a pleasant surprise.

The first mini-retrospective was just a simple conversation between all of us. From the second one on we switched to use a baseball ball where the person that has finished descibing their experiences throws it to somebody else inviting them to talk. The goal here was to keep retros more fun and also to give more people a chance to express their thoughts. For the final retrospective we upgraded to a bigger ball - to symbolically make it stand out ;-)

On the day - afterthoughts

Things that I have gone well:

If I was to change something now, I would have:

I would have considered changing:

After the event

There were a few tasks I brought home such us:

Summary

The Global Day of Code Retreat 2015 was a great learning experience for me. Thank you:

I would be happy to read your feedback below in the comments.