Saturday, July 27, 2024
Google search engine
HomeUncategorizedI run a software book club

I run a software book club

I’ve been running software book clubs almost continuously since last
summer, about 12 months ago. We read through Designing Data-Intensive
Applications
, Database
Internals
,
Systems
Performance
, and
we just started Understanding Software
Dynamics
.

The DDIA discussions were in-person in NYC with about 5-8 consistent
attendees. The rest have been over email with 300, 500, and 600
attendees.

This post is for folks who are interested in running their own book
club. None of these ideas are novel. I co-opted the best parts I saw
from other people running similar things. And hopefully you’ll improve
on my experience too, should you try.

Despite the length of this post running a book club takes almost no
noticeable effort, other than when I need to select and confirm
discussion leaders. It is the limited-effort-required to thank that
I’ve kept up the book clubs so consistently.

Google Groups

I run the virtual book clubs over email. I create a Google Group and
tell people to send me their email for an invite. I use a Google Form
to collect emails since I get many. If you’re doing a small group
book club you can just collect member emails directly.

In the Google Form I ask people to volunteer to lead discussion for a
chapter (or chapters). And I ask for a Twitter/GitHub/LinkedIn
account.

When I’ve gotten enough responses I go through the list and check
Twitter/GitHub/LinkedIn info to find people who might have a
particularly interesting perspective to lead a discussion.

“Lead a discussion” sounds formal but I mean anything but. All I am
looking for is someone to start a new Google Group thread each week
and for them to share their thoughts.

For example a discussion leader might share:

  • What they liked about the chapter
  • Something new they learned from the chapter
  • A story about their work that the chapter reminded them of
  • A little project they hacked on, inspired by reading the chapter
  • A paper or YouTube video this chapter reminded them of
  • Something from the chapter that was confusing
  • Etc.

The “discussion leader” has no responsibility for remaining in the
discussion after posting the thread. There just isn’t an easy way to
say “person who kicks off discussion” than to call them a “discussion
leader”.

By the way, I didn’t do discussion leaders for the first book club,
reading DDIA. And that book club took noticeably more effort. Because
I organized it, I was effectively the discussion leader every
time. Having discussion leaders disperses the effort of the book
club. And I think it makes the club much more interesting.

SparkNotes-ification

One thing I noticed happening often was that the discussion leader
might do a large summary of the chapter. I greatly appreciate and
respect that effort, but I think this is not the ideal thing to
happen. Of course you can’t control what people do and maybe they
really wanted to write a summary. But since noticing this happen I now
try to discourage the discussion leader from summarizing since 1) it
must be quite time-consuming and 2) it isn’t as interesting as some of
the above bullet points.

Confirming with leaders

When I have picked out folks who seem like they’d be fun discussion
leaders, I bcc email them all asking them to confirm. At the same time
I explain what being a discussion leader means. As I just explained it
here above.

Each week’s discussion gets a new Google Group thread. Discussion
happens in responses to the thread.

I ask the discussion leaders to create the new discussion thread
between Friday and Saturday their local time.

For folks who don’t confirm, I email them one last time and then if
they still haven’t confirmed I find someone new.

I always lead the first week’s discussion so that the discussion
leaders can see what I do and so that I can establish the pattern.

Managing leaders

It takes a while to read a book. Sometimes the leaders forget to do
their part. If it gets to be Sunday and the discussion leader for the
week hasn’t started discussion, I email them to gently ask if they are
still available to kick off discussion. And if they are not, no
worries, I can step in.

I have had to step in a few times to start discussion and it’s no
problem.

Managing non-leaders

Just as you need to clarify and set expectations for discussion
leaders, you need to clarify and set expectations for everyone else.

When I invite people to the Google Group I typically also create an
Intro thread where I explain the discussion format.

An annoying aspect of Google Groups is that I cannot limit who can
create a thread without limiting who can respond to a thread.

It would simplify things for me if I could limit thread creation to
discussion leaders. But since I cannot, I try to repeatedly and
explicitly mention in the Intro thread that no one should start a new
discussion thread unless they are a discussion leader. And that new
threads will come out each weekend to discuss the previous chapter.

Setting the tone

One of the most important things to do in the Intro email is to set
the tone. I try to clarify this is a friendly and encouraging group
focused on learning and improving ourselves. We have experts in the
group and we have noobs in the group and they are all welcome and will
all come away with different things.

Why email?

Email seems to be the most time-friendly and demographic-friendly
medium. Doing live discussion sounds stressful and difficult to
schedule, although I believe Alex Petrov runs live
discussions
. Email
forces you to slow down and think things through. And email is
built around an inbox. If you didn’t get to read some discussion,
you can mark it unread. You can’t do that in Discord or Slack.

Avoiding long-term commitments

When I pick a book, aside from picking books I think are likely to be
exceptionally well-written, I try to avoid books that we could not
finish within 3 months. It concerns me to try to get people to commit
to something longer than that.

This has led to some distortion though. Systems Performance has only
16 chapters. One chapter a week means about 3 months in total. But
each chapter is 100 pages long.

I was hesitant to do a reading of Understanding Software Dynamics
because it has 28 chapters. But each chapter is only 10-15 pages
long. So when I decided to go with it, I decided we’d read 2 chapters a
week. Each discussion leader is responsible for 2 chapters at a
time. That means we can finish within 3 months. And each week we read
only 20-30 pages, which is still much more doable than 100 pages of
Systems Performance.

On the other hand, we did make it through Systems Performance! Which
gives me confidence to pick other books that are physically daunting,
should they otherwise seem like a good idea.

A book ends

Many public book clubs go through a book a month and have no
ending. That is totally fair. But what I love about the way I organize
book clubs is that each reading is unrelated to the next. It’s an
entirely new signup for each book. You need only “commit” (I mean, you
can drop off whenever and definitely people do) to a 3-month reading
and then you can justly feel good about yourself and join again in the
future or not.

In contrast a paper reading club has no obvious ending, unless you
pick all the papers in advance and organize them around a school year
or something. This has made running a paper reading club feel more
concerning to me. Though I greatly appreciate folks like Aleksey
Charapko and Murat Demirbas who
do
.

Most people don’t actively contribute, but they still value it

In a group of 500 people, maybe 1-2% of those people actively
contribute to discussion. 5-10 people. But I often hear from people
who didn’t participate that they still highly valued the group. And
this high percentage of non-active-participants is part of why I keep
allowing the group size to grow. There’s little work I have to do and
a bunch of people benefit.

Doing it at your company likely won’t go well

I wrote about this
before. For
some reason it’s hard to get people who would otherwise join an
external reading club to join a company-internal reading club.

Though perhaps I’m just doing it wrong because I hear of others like
Elizabeth Garrett
Christensen

who run an internal software book club successfully.

Good luck, have fun!

That’s all I’ve got. Send me questions if you’ve got any. But mostly,
just give it a shot if you want to and you’ll learn!

And if you still don’t get it, you can of course just join one of my
book clubs. 🙂

— Phil Eaton (@eatonphil) May 30, 2024

Read More

RELATED ARTICLES

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -
Google search engine

Most Popular

Recent Comments