First Rule: Do
Not Talk About Ruby Fight Club
This post may get me kicked out for talking about the club, but…I was asked to share a few thoughts about something we tried out earlier this year at End Point. We ran an internal meetup dubbed Ruby Fight Club to read and discuss Practical Object-Oriented Design in Ruby (POODR) by Sandi Metz.
In the past we've met together as a company and in smaller team or project focused groups but this was first time we used a book as the guiding, recurring topic with a smaller, committed group who made time for it. Attendance was optional and we did have some folks who opted out even though they loved the subject matter and the idea, because they knew they couldn't make it most of the time. I think this made the group tighter-knit.
Our group of six remote engineers met weekly for one hour to discuss one chapter from the book. We worked through each chapter together which often led to Q & A sessions and deeper discussions about Ruby and CS theory in general. Each week, one member of the team would lead the discussion. It required some preparation in advance and gave us all a chance to work on our presenting and moderating skills. We used Google Hangouts to meet and the presenter would share their screen to show slides and example code.
Honing Our Craft
As consultants we have to balance technical perfection with other considerations — most often budget and timelines/deadlines. This reality does not lend itself well to developing and learning to apply new technical concepts. It's also challenging to apply these new concepts in large, established projects where our role is to maintain and extend existing code. The conventions and architecture are well established and it's hard to push against projects with inertia like this. Setting some time aside each week not tied to client projects gave us the opportunity to focus on our skills and develop them together. Although several in the group had read the POODR book before, they reported that working through each chapter and discussing it in a group setting greatly increased their understanding of the material.
Our company has a large number of full-time remote engineers. At time of this writing close to 90% of us work in a location other than our head office in NYC. Remote work allows us the freedom to live where we want (I'm writing this from my home office in a small town in the interior of British Columbia, Canada) but requires extra effort for us to build team camaraderie and social connections. Ruby Fight Club was great for this. Although Hangouts, Skype and other web-conferencing apps have their challenges, everyone let us know they appreciated being able to spend time with the group each week. We'd often chat with each other for a few minutes before and after our book discussions.
Discussing the book (somewhat) face-to-face over video also increased the fidelity and efficiency of our discussions. When you can see people's faces, expressions and gestures it's much easier to glean information and understand them. It feels silly and obvious to say this after the fact but it's novel when the majority of your workday communication is done over IRC/Slack, email and phone/audio.
During one of our meetings I asked the group if anyone went to meetups local to them. I was surprised to learn that none in the group did so. For every person the response was similar: “I would but there aren't any groups meeting nearby”. I had assumed that I was the odd one out in this way because I live in a small town. The leader of our group lives in Chicago and I thought for sure there would be a meetup for him to attend but there wasn't. The closest group to him required a long trip across town on public transit. Occasionally I do travel 45-60 mins (each way!) from home to attend meetups in larger, nearby towns. People are often surprised I travel so far but it's worth it to me.
What Worked Well
We stuck to the time limit (mostly) which was a good thing. We found we usually had enough time to socialize a bit, discuss the book, have a Q & A time and then get back to our client work. Sharing the presenting / discussion leading role was also nice. Leading a session took a little time to prepare but because we all took turns doing this we shared the load. I'd like to personally thank Phunk (our fearless Ruby Fight Club leader) for having the idea and executing so well on it. We all really appreciate it and look forward to running more meetups like it in future.
What We Might Do Differently Next Time
I think it would be good to allow a little more time for socializing and chat. This happened naturally in Ruby Fight Club but it would be cool to devote a block of time specifically to it. It would also be nice to allow time for people to do a show and tell / lightning talk about something they are interested in. That said, having a book to work through was really great. Every week there is something to discuss and it was often a starting point to further discussions. What are you doing at your companies to stay sharp and connected? Let us know, we'd love to hear from you!