Header image by Christina @ wocintechchat.com on Unsplash
At the beginning of this year, a few developers at Crema were chatting about development related books that we had read or wanted to read. As we talked more, we thought “why not include others in the fun!” so we came up with some structure and kicked off our book club. We’re currently on our third book and we thought we’d share with you some of the tips and tricks that can help you along the way if you’re interested in doing something similar.
Choosing a book to read
With there being so many great options out there, it can be difficult to choose where to start. Here are three categories that we found helpful in the decision-making process: content, availability, and length.
Content
There is no shortage of development-related books out there. Topics vary from specific technologies or languages to broader discussions of guiding principles for software development. Some will get you into the nitty-gritty of coding with lots of concrete examples, others will be more abstract and theoretical. Some may be long-standing classics in the field, others might be relatively new and specific to the tech your team is working with.
The first book we read was Clean Code by Robert Martin. It was published in 2008 and is well-known in the industry. All of the code examples are in Java which isn’t used in our team’s day-to-day work. However, we chose the book because of its tried and true principles which can be applied to any language, in our case - JavaScript. (Pro tip: you don’t have to read the whole book either. We scanned ahead and saw that some of the later chapters were specific to Java and wouldn’t be relevant so we skipped those.)
Based on feedback, the next book we chose to read - Effective TypeScript by Dan Vanderkam, published in 2019 - swayed toward more technical (less architectural) content. We’re currently reading a book that has no code in it at all - Shape Up by Ryan Singer. This book outlines the methods and processes used by Basecamp to shape, build, and ship meaningful work on a product team.
Know your team and what areas they want or need to grow in. Also, know that there’s always the next book. You can rotate between different topics and types of books.
Availability
It’s ideal to find a book that everyone on your team can access for free. If your local library offers access via a free library card, Safari Technical Books Online is an excellent resource. Some authors also offer their books for free on their sites or GitHub.
Length
Keep in mind the length of the book, including the length of the chapters themselves. For example, if a book is 10 chapters long, it doesn’t necessarily mean you’ll finish it in 10 meetings. If the book takes half a year to get through, people may lose interest or be hesitant to commit from the start. Which brings us to our next topic…
Planning your book meetings
Once you’ve decided on a book, it’s time to plan what structures you want to put in place regarding when you'll meet and how your conversations will be guided.
Frequency & duration
When making this decision, we considered either meeting every week or every other week. We went with weekly because we wanted to keep the momentum going.
Guiding questions & facilitation
To make Book Club more interactive and increase participation, we made a shared sign-up sheet where people can volunteer to facilitate a meeting. Along with that, we lowered the barrier to entry for facilitation by providing a set of questions that could be used for any chapter:
- What stood out to you?
- What did you disagree with?
- What do you want to start doing?
- What do you want to stop doing?
Last but not least, iterate and refine as you go along! You don’t have to get it right from the start, just get it started and get feedback as you go! Find what works for your team. Maybe it’s hard to get a conversation going, especially with a big group on Zoom - try using breakout rooms of smaller groups where each group can discuss a few questions and then share with the larger group.
Pro-tip! We’ve also found screen sharing on Zoom to be helpful. Even if someone just has the chapter pulled up, it gets everyone on the same page (pun intended) as to what’s being discussed. This is especially helpful when looking at code examples.
Wrap up
Not sure where to get started? Here are a few other books we’ve considered reading:
Pragmatic Programmer by Andrew Hunt and David Thomas
Functional-Light JavaScript by Kyle Simpson
99 Bottles of OOP by Sandi Metz, Katrina Owen, and T. J. Stankus
Test-Driven Development: By Example by Kent Beck