Tuesday 14th November. London St Pancras.
I’m about to hop on the Eurostar with two members of the Cucumber team and travel to Wavre, Belgium for a couple of days. I will be guesting at their regular Dev Camp and am hugely grateful to Matt Wynne for setting this up.
Revising
I have been revising. It’s not every day you get to go and work with a whole team of extremely experienced developers. My imposter syndrome is off the scale. I’ve done a couple of JavaScript tutorials, revised Cucumber with the latest version of The Cucumber Book when I could catch a spare minute (including in the car while my kids were at their piano lessons), have had a couple of Skype sessions with the wonderful Julien Biezemans talking me through some of the world of Cucumber Pro, and have even joined the remote mob a couple of times to get a feel for how they work together and take a look at their code and tools.
Revising
Even this has been fascinating. It’s amazing the extent of what I don’t know. For example:
“Ok, so log on to GitHub”
“Umm, I don’t have a GitHub account”
“Oh, sorry….OK, well let’s create a GitHub account”
A few lessons straight from the off: First, humility – I really can’t go into this thinking I can pick up where I left off 10+ years ago, I need to shelve the ego and just go in with complete beginner’s mind. Second (and I noticed this last time too), it still takes a long time to set everything up – some things haven’t changed so much. Third, I feel a kind of romantic nostalgia for things like Unix, and it’s a revelation when this VIM everyone keeps talking about ends up just being a new, improved version of vi. Fourth, I’m astonished at how comfortable remote mobbing is. Perhaps it is because these are people who are very, very experienced at working remotely, but it honestly is almost seamless. The only couple of issues are: that is hard is drawing while we talk to illustrate understanding, so we serialise that and I go and create a picture to between sessions and send it off to the team; And that I don’t know the little unwritten protocols for the mob – for example, what happens with bathroom breaks? Do I need to let them know I’m not there for a minute? Do I turn off my screen? Next time I’m in the same situation with a team I will have a whole set of questions to ask in advance.
Day 1
During the train journey, I ask Aslak and Tooky for their version of what event sourcing is. A few people have explained it to me now, and I’m interested in their take. We spend most of the train journey to Brussels sketching out designs and having conversations about it – Matt wasn’t lying when he promised me would geek out from the moment we got on the train. I forget to even look up and see whether you really can see any fish in the tunnel and before I realize, it’s time to disembark.
A taxi-ride later we arrive in Wavre, warmly welcomed by Julien and Romain. We grab some lunch and then jump quickly onto an in-person mobbing session. We set a 10-minute timer for driver rotation between the six of us and off we go. Gulp.
Mobbing
One thing I struggle with almost immediately is conceptualizing the whole architectural stack and using all the shiny new tools. There are just so many different pieces and layers to put together when everything is new. Trying to get my head around not one, but two new editors and their shortcuts (depending on whose machine we are using), running different sets of tests (both from the Terminal command line and from the editor), remembering some unix commands, learning Git commands, understanding event sourcing and dealing with the whole meta-dom of Cucumber Pro. All of which is in addition to the cognitive load of actually working on the code. Even though everyone is so kind and utterly patient with my many questions the first time it comes round to my turn to drive I find myself breaking out in a terrified cold sweat. I distinctly remember thinking “this is NOT for the faint hearted”. Everyone is very patient and encouraging, but it’s still terrifying. Luckily, it passes.
We capture our hopes and concerns for the camp and come up with some working agreements. Everyone seems pretty insistent that they don’t mind my incessant questions – in fact that it makes them question their assumptions. I start to feel the high of each little win – a test passes, we fix a couple of bugs. My nervousness begins to calm a little. I’m not confident, but I definitely start to feel better.
Day 2
We decide that Day 2 will be a long day of hacking, so we create a schedule that involves regular short ‘check-ins’ of how we are feeling – about pace, priorities (are we working on the right things) and play (are we having fun), alongside longer breaks including lunch, a late afternoon walk, and an evening pizza break.
We spend some time mobbing as a larger group (using a pizza wheel to track who has been the driver – adding a ‘topping’ for each time we drove), some time working on a new concept away from the screen, some time coding in smaller groups (solo, pairs or triplets). My big wins for the day are getting everything set up on my own machine and having a code commit with my name against it!
Pizza, beer and a list of editor short-cuts
We finish up the evening with a show and tell of different cool stuff from each team – I’m not disclosing the new things the team have invented or experimented with but there was plenty of ooh-ing and aaah-ing despite the late hour.
Day 3
We revisit our working practices and create another rough schedule for the day. We create a Lego prototype for our check-ins (still using the 3 P’s – a hare and tortoise signifying pace, a kid with a clipboard for priority and a puppy for play).
We mob for an hour, we work on some Example Mapping for an hour and then we split into smaller groups. I finally feel a bit more like I am contributing towards the coding. Some things start to slot into place. Something that I find often helps me, but sometimes hinders is relating concepts back to something I have done before or am familiar with. I come to learn that sometimes my brain is too ready to jump to an analogy and I need to be able to quickly and easily detach from them as they are outgrown and move from being helpful to being an obstacle.
I also feel that for a beginner or returner, being in a pair or triple is definitely less intimidating than joining a mob of six, no matter how kind and patient they are.
Time catches up with us many times of these few days. We make plans of what we hope to achieve and then reality reminds us of what is actually achievable. Before we know it, it’s time to say goodbye to this office that has begun to feel quite homely to me. Of particular mention on this front are Julien, Romain and Xavier. They quietly ensured that we had Earl Grey, snacks, a great lunch venue, vegetarian food options, beers and one morning St Nicholas even came (in the guise of Xavier) and left a sprinkling of speculoos and chokotoff for us to enjoy during the day.
As the train whistled its way back to London, Matt and Tooky did a major refactoring based on watching me struggle with the architectural stack and Aslak and I sketched out a rough User Interface for a little side project. All just in time for a quick final show and tell before we headed off. We really did hack from the minute I got on the train on Tuesday morning until the moment I got off on Thursday night.
My biggest win? Quite apart from simply having had a wonderful couple of days and so much fun and learning? The team have invited me to mob again another day – I’m wondering if next week is too soon ☺