Journeyman: Transmode

You, Pia said, waving a finger at me as I was sitting next to her waiting for the next lightning talk to begin at Agila Sverige. I want to talk to you.

Less than a month later I found myself in the halls of Transmode, or more specifically, in their dedicated mob programming room. A repurposed conference room where the conference table has been replaced by an adjustable desk and two beamers have been mounted in the roof. For good measure a ping pong table was placed in there too. The previous day I had been in the same room for a few hours, joining a mob working on making heads and tails of Docker Machine. But today I was facilitating a mob of eager Elixir alchemists.

Internally referred to as "knowledge joints", cross-team and cross-discipline gatherings of people interested in a particular topic or technology spend time on learning and sharing. This particular joint was deep into Elixir and I had already met several of its members at the Stockholm Elixir meetups.

Starting off with six participants and me as a combined facilitator and guide, we dove into building a MUD. In preparation of my visit, the joint had brainstormed ideas on what to do and narrowed it down to a few initial goals such as being able to log in, enter a dungeon consisting of a single location, and then talk to other players in that location. I suggested using phoenix as it would give us a lot of the user interface and handling for free. Of course, setting up a websocket-backed user interface is not completely trivial even though the Phoenix team and Lance Halvorsen in particular has made their outmost to make it so through a series of excellent guides.

Mob research

Over the day, the number of participants fluctated as people had to come and go due to other engagements vying for their attention. By lunch we had finished all the goals for the day and started working on stretch goals such as adding various commands and keeping the list of active players synchronised across all the clients and the server. For the latter we turned to the use of Agents as an initial solution. At this point we also started test driving the new feature. Some yak shaving later, caused by a reluctant Postgres installation on the mob computer, we got to a point were the tests were green and the functionality fleshed out. We opted to break for the day and have a short retrospective.

The session had been greatly enjoyed and people were eager to do it again. Stu quizzed if there was any deeper meaning to the practice of noting every finished driver rotation on the whiteboard. Was it perhaps to be used as some sort of metrics to prove the effectiveness of mob programming?

First day's rotations

While the 29 marks represented about five hours of focused attention being paid to the challenge at hand, I had an ulterior motive.

When ending a rotation by setting a mark next to your name, how did that make you feel? I wondered.
It felt great! Stu replied.
There you go. That's what's it for.

Two days later, it was time for another Elixir mob programming session and we picked up from where we left. As Pia went through what we had done the last time, introducing new and returning members of the mob alike, the mob grew to a size of seven - not counting myself. Just like the previous time, the exact number fluctuated over the course of the day, but it seldom dropped below five plus me once again acting as a facilitator and guide. Notwithstanding the almost hour-long recap in the morning we got another five hours of effective, focussed work put into the project before breaking for a retrospective.

Deathstars

As part of the retrospective we held, the mob got to reflect on the sheer number of techniques and technologies they had been exposed to and practiced during the two days. While the knowledge joint has been reading and talking about Elixir a number of times, these past days was the first time the members got together to work on something real. Acting as a catalyst for this to happen proved to be very rewarding and I loved every minute of it.

Learnings

Speaking of catalysts, I'd be remiss to not stress Pia's role in making this entire week happen. She also managed to eke out enough time to lead the mob through a demo rehearsal as well as the actual demo that was held in front of the wider team. It was well received and the amount of fun the mob had had certainly shone through.

Demo time

Thanks for having me Transmode and keep mob programming!