“There is a road from the eye to the heart that does not go through the intellect.”
― G.K. Chesterton

Every organization lives and dies by its culture.  For many years at Chargify we have put a lot of effort into making our engineering organization productive and healthy. This is always a challenge to do, but more so when the engineering team is widely distributed. Distributed teams require extra effort to keep motivation high and keep everyone marching to the same drummer.

How do you build a strong engineering culture? There are many answers to this question, such as code reviews, Pull Requests (PR), coding standards, etc. I’ve found that the more formal something is, the harder it can be to communicate. A great example of this is in the PR process. It’s not uncommon that a thread of conversation in the PR review goes awry somewhere and stops becoming helpful. The quickest path to resolution is simply picking up the phone and having a real conversation. Always. The trick is getting to the real conversation. I believe holding a book club is a culture hack to get you to have real conversations, sooner. That’s why I’ve started them at every job I’ve had in the last decade. Chargify supports this because it’s an effective way to teach all of us to be better than we are.

For the past few years we have had a standing weekly meeting of an hour to discuss a chapter of a book of interest.  Right now we are reading “The Well-Grounded Rubyist“ by David Black.  In the past we have read together “Effective Testing with RSpec 3” by Myron Marston, and “99 Bottles of OOP” by Sandi Metz. In addition, we have also taken a session to view and discuss various freely available screencasts and conference talks. Notice that I said we discuss a single “chapter”. Our group has found that discussing more than one chapter becomes burdensome. The goal is to communicate; not produce technology wonks. I believe its working. We have had a consistent core of individuals participating, with stable growth and interest in the group as a result.

So how do we run our meetings? First of all, it’s on the shared Chargify calendar, so we have all made a commitment to it. In a similar vein, Chargify also makes a commitment and investment by purchasing the books we discuss. As a distributed team, we rely on Zoom so that we can actively all participate in meetings. The added bonus is we get to see each other’s faces on a regular basis. Believe it or not, eyebrows hold a lot of context in face-to-face conversations. We carefully choose our meeting time so that we can include our colleagues that live and work in vastly different time zones (This is the morning for our North American folks). We make every effort to find a time that works for everyone.  For us Thursdays work best because it gives you more time during the week to get your chapter read.

During the meeting, we designate a person to lead the discussion as a facilitator. This consists of pointing out various points in the chapter that they found interesting. Everyone in the group is free to comment on the talking points or share their own. We have also found that it’s more effective to screen share the text that the facilitator is talking about so that people can easily follow along. It’s been enjoyable to rotate the person who leads the discussion from time to time. On occasion, there are weeks where the discussion from the book is quite short. This gives us the opportunity to discuss whatever the group decides. This is a hidden and beneficial aspect of our engineering book club.  After all, the point is to build a team and not get through a book.

Every single session someone will point out something insightful that I missed.  Every time. We all learn from each other.  It’s a beautiful thing.

I have heard the question asked: “How do you sustain a group like this?”.  I don’t know that there is a magic bullet for that challenge. I will concede that even for us there have been slow periods and times where the daily demands of our day jobs have limited our participation.   But I do know this: people like to belong. Make them feel like they are a part of something great -- and they will show up. It’s that simple, and that hard. I have a poster on my office wall that says “Value your colleagues. Because companies are made of people”. Live this.

Another common question I get is, “How do I start an engineering book club?”.  Many of us work on teams which have a daily standup.  I would suggest just throwing it out there during your morning meeting.  Start small, maybe make it a lunch and learn kind of thing.  Taking a small step like that will identify a small set of individuals who are motivated like you are.   Pick a small easy book.  In the beginning, be prepared to discuss the contents of the book the whole time. Make it fun and easy to participate. Don’t demand anything as far as participation. If the book is any good, people will talk. I promise you this.

There are two kinds of things in life: medicine and vitamins. Bosses get paid to think about medicine. Be the vitamin. Take the first step yourself; take action to start a reading group with your peers.  Don't wait for someone to give you the green light to make something like this happen.  I can promise you that your supervisor is already overwhelmed enough, they won’t think of this. An added bonus is that they’ll appreciate your initiative to start a group activity.

I can’t imagine life at Chargify without the engineering book club. Aside from it being a lot of fun, I’ve learned a lot. More importantly, I’ve learned a lot about the individuals on our team. It turns out that asking for help on a pull request is a lot easier when you know that John has a child in Cub Scouts -- or that Simone has horses.

You remember all that stuff about relating to each other in kindergarten?  It turns out it matters. I challenge you to start a book club for your team.  Be the vitamin!