In this blog post I go through the differences between conceptual and experiential book clubs. I also share some tips if you’d like to organise an experiential book club for yourself.
A few years ago I coached a team that was making a huge effort to reduce their technical debt. I offered to organise a book club around the book Clean code but I was faced with some skepticism. Several team members had participated in book clubs in the past but those had not been valuable. I explained that this book club probably would be different from previous ones they’d attended because this one was going to be experiential. I elaborated that programming and reviewing the team’s actual code always would be at the center when we met. The team appreciated this and everyone signed up.
Conceptual book clubs uses conversation to (attempt to) create learning
They are easy to spot. There’s a lot of talking going on and there are often several discussions happening at any given time. Some people bring lots of questions, and some think they bring the answers.
Conceptual book clubs often follows some variation of the following format:
- Everyone, or someone, decides which chapters the group should read.
- The group gets together and discuss the chapter/s they’ve read. Often someone facilitates and typical questions for the group to discuss are:
- What did you think?
- What stuck out?
- What did you like?
- What did you dislike?
- How do you think this applies to us?
- What’s your take away?
- Select new chapters to read, and repeat point 2.
The problem with conceptual book clubs is that they don’t provide space for people to practice what they’ve read. When practice is not included as a part of learning people (might) become well read but they do not become wiser.
Experiential book clubs combines abstract thinking with practical exercises
If you walked in on an experiential book club you’d only know it was a book club because everyone there had the same book. In experiential book clubs, people conduct practical exercises so it more resembles collaborative problem solving, than discussing a book. When we met we would follow one of the formats below.
Format a – Review, feedback, reflect
In these sessions we reviewed our actual codebase and peoples commits together using the lens we’d just acquired. We’d discuss alternate ways of writing the committed code, and sometimes rewrite the code, but we wouldn’t commit anything. We ended these meetings with reflection.
We used this format when we thought it was ok to leave the code as it was i.e. when it was important to raise the quality moving forward. For us, chapter 4 and 5 (Comments and formatting) were examples of that.
Format b – Identify, refactor, feedback, reflect
In these sessions we would do actual refactoring of our code base with the goal to push it to production at the end of the session. We turned this into a game by doing the following:
We’d first split into two groups of 4. Each group got 15 minutes to identify a piece of code that the other group should refactor. The constraints were that it should:
- be relevant to what we just read.
- be possible to refactor it in roughly 90 minutes.
Both groups started refactoring the piece of code they were given. Both groups mob programmed when refactoring and after 90 minutes we all got together to demo our code and get feedback.
Chapters 7 and 8 (Error handling and Boundaries) are examples of when we followed format b.
Format b allowed everyone to practice what they’d read on real code. They did so together with their peers i.e. they had a common goal with the book club.
Experiential book clubs need more time
Experiential book clubs require more time than conceptual ones. This is because of the practice element. When we met to practice Error handling and Boundaries we stayed for 3 hours, but during this time everyone got to practice, everyone got feedback, and everyone got the opportunity to offer feedback and teach.
This format works for other types of books as well
You can quite easily make create experiential book clubs for other types of books. Here are a few examples.
Product owner books:
- Read about backlog management – have everyone bring their backlog and reshape them together, one by one.
- Read about any particular prioritisation model – have everyone bring their backlog and prioritise the backlog together using the new model.
- Read about user stories – have everyone bring their backlog and transform it into user stories, together.
- Read about difficult conversations – have everyone prepare a difficult conversation they need to have and role play that conversation with someone in the group.
- Read about feedback – have everyone bring a piece of feedback they need to give someone, and help each other formulate it, then role giving it to someone. You could ask people to take specific roles in these role plays.
- Read about problem solving leadership – film the group conducting a problem solving exercise, then look at it together and go through what’s happening.
- Read about levels of listening – have people role play a coaching session while noting down what level of listening the coach is on.
- Read about powerful questions – have the group coach each other on real topics, and only use powerful questions.
- Read about how to set expectations – have the group role play entering into new coaching relationships.
- Read about A3 thinking – have the group create an A3 report together (or possibly at least define the problem together). ;)
- Read about Kanban – have the group define classes of services.
- and so on.
Tips for making your book club experiential
Here are some tips that you might find helpful if you want to organize an experiential book club,
- Keep your group small. I’ve found that groups of 5-7 people to be optimal.
- Make sure you have enough time. Ideally, your get-togethers should be 2+ hours but if you can only invest 1 hour at a time, read fewer chapters so that everyone gets time to practice.
- Only read chapters that are relevant and interesting. This is especially important if you have a limited amount of time.
- Agree on a common goal (that’s tangible and relevant)
- Don’t force this format. Some chapters are difficult to make experiential. Honor that by not meeting to talk about them. Use the meetups to practice.
- Capture notes from all meetings.
- Make sure you have fun and add fun elements. Add breakfast, lunch, or dinner. Or have some beer while you’re coding. :) Anything that makes it more fun makes it more engaging.
- Mob program. When there is only one keyboard people are either coding or observing and thinking.
- Ban phones and computers for other usages than the book club – and get everyone to agree on this.
And that’s about what I had to say. I’d love to learn from you. How do you conduct book clubs? What’s worked well for you? Please share as a comment or drop me an email. :)
Thanks for reading, and if you’re organizing a book club soon good luck! :)