Feedback is appreciated!
Advice On Running an Engineering Reading Group
1. Thank you!
First, leading a reading group provides value to you, your colleagues and your company. It's more work than just showing up, and comes with frustration, particularly when attendance is low or someone dominates the conversation. So, thank you.
2. Selecting the book
As the leader, you get to choose the book. If anyone challenges you, ask them to talk to me. It's hard for anyone else to be enthusiastic about the material if you aren't either. Your own self-interest is the best way to generate excitement, ensure you will complete the book and provide ideas. Also, your interests are a fine gauge for other people's interests.
If this is your first reading group, start with an easier book (such as Head First Design Patterns), or one with a reading group guide (such as Joshua Kerievsky's Design Patterns reading group guide.) The harder a book is to understand, the larger number of people will read less, and eventually fall behind and drop out of the group. If anyone complains that the book is too simple, invite them to champion the next book.
By the way, you don't have to be the topic master. Personally, I select books that require the social pressure of leadership for me to finish. When I realized I forgot most design patterns, I led a group in design patterns. Months later, I got stuck half-way through Java Concurrency in Practice, so it became the next reading group book. Both led to successful and engaging reading groups.
3. Do not let the community choose the book.
This was a hard-earned lesson. When you let the community choose the book, you run the risk of the book's most ardent supports disappearing. Leader gets to choose, no question.
4. Purchasing books
Any approval for buying books is probably something you need to discuss with your manager or director. If you have a director willing to take the cost, or perhaps company approval to purchase en masse, great. But while buying individual books can be a logistic hassle, it brings up an important issue:
5. Participants should purchase the books themselves.
After leading several of these groups, I've learned that people who express interest but wait for someone else to get them a book are the ones who tend to be passive participants, or show up for no more than two sessions. Putting participants through a purchasing a hurdle has the benefit of self-selecting the most interested participants.
You might ignore this advice and provide material for attendees. If you want to start with a larger group, or if the reading group is new, then perhaps it's more appropriate to set a welcoming tone. And to be fair, some people for whom I purchased books became the best participants. But take note who sticks around.
6. Set and communicate your expectations.
Make sure you know what kind of reading group you want, and communicate your expectations up-front. Three areas where expectation management can matter:
- Reading requirements: If people are required to complete reading assignments, those that have not will have difficulty following the conversation. This is okay if you can accept a smaller number of dedicated participants. Or, you can spend the meeting time reviewing the material as if it was not read by the majority. You may wind up with more passive participants, but you may also get more questions.
- Computers during the meeting: I've never enforced a no-computer policy, but sometimes wished I had. People will keep their focus on a laptop or mobile phone for the entire session. Are they paying attention? Are they encouraging other participants to disconnect? This is a tricky one which comes with existing social pressure. (Update: See the addendum below about actually implementing this.)
- Tardiness: When you've only got 60 minutes a week to discuss a book and most people show up ten minutes late, you're group's value drops 15%. Communicate the expectation up front, and consider demonstrating it by starting the conversation with whomever is in the room.
7. Be Prepared
My wife taught me a lesson from her law school days : you can't always be the smartest person in the room, but you can always be the most prepared. This applies to leaders in particular. Read and understand the content. Come to sessions with conversation openers. The most engaged Java Concurrency in Practice session we had was one where I brought in sample code; a broken task pipeline, and fixed it in front of everyone.
There's another reason to be prepared: to master the material! Isn't that why you chose to lead a reading group, instead of waiting to participate?
8. Set the tone, and then share the leadership role.
Being a book's champion or the reading group leader does not make you responsible for generating interesting content from week to week, and in fact it's better to ask other participants to take the role of leading the group for single sessions. This is most valuable after a reliable leader spends two to three weeks setting the group's tone.
9. Encourage quiet people to participate or even lead for a week.
Part of the leader's job is to draw all participants into the discussion. Keep a few loud people from dominating the conversation. Draw out quieter people, preferably with open-ended solicitations of opinions or observations. Avoid pop-quiz challenges; the goal is to expose a broad range of views, not intimidate shy people.
When you can get a quiet person to lead the discussion for one meeting, now that's a win.
10. Manage how far you drift off-topic.
Drifting off-topic can distract the group from more relevant material, but it can also provide the most interesting content. Conversations about concurrency can lead to conversations about testing which eventually take you to complaints about the build system. That's okay. Keep your eye on the clock, use your judgment, and don't be afraid to cut conversations off after a while. Remember to do it with kindness.
11. Always ask for feedback.
Ask the other participants how you're doing. Ask why they aren't speaking up. Ask how improve the sessions. Mostly you'll hear what a great job you're doing. Thanks! Now ask someone else. You're about to spend several weeks with everyone: keep an active two-way conversation channel.
That reminds me: ask drop-outs why they left. People tend to feel bad about leaving. I've had drop-outs hide from me after they leave. Go find out what happened. They might have useful feedback, they might even return for the next book.
12. Mistakes are good!
People already respect you for dedicating your time to take charge. Don't worry when you make mistakes your first time. You'll learn so much that leading the second book will be a cinch in comparison.
Addenda September 25, 2012:
Addendum regarding the no-laptop policy
My most recent group had a no-laptop policy. We set it up before the first meeting by general consensus, and it worked really well. It allowed us to stay focused, and also, to have the authority to ask new visitors to close theirs, as well as their phones, by association.
Here's a useful tip: a good opening question is to find out how well people comprehended a chapter. (This also applies to individual sections within a chapter.) The way to gauge interest is to ask everyone to demonstrate their comprehension as a range, not unlike a volume meter. If the participant understands the content fully, the arm and hand point straight up. If the participant didn't understand it at all, the arm is parallel to the floor. From there, people can use the range in between 0 and 90 degrees to demonstrate comprehension. Then as the leader you can get a quick sense of the room, not just from the positions of their hands, but of the looks on their faces. Find someone whose hand is in the middle and ask the person to go into detail about their experience.