As an engineer who enjoys reading a lot, one of my favorite outlets for information-sharing is our team’s Reading Group. Every few months a group of us passionate Zalando technologists spend some of our free time reading the same book and then having weekly meetups to discuss what we read during the previous week. Since we launched the group in early 2014, it has become one of my favorite methods that our team uses to build community via knowledge exchange--a quality built into Zalando Tech’s DNA.
For our first Reading Group we chose a great book: Clean Code by Robert C. Martin, a.k.a. Uncle Bob. The author doesn’t need any introduction: For many years, his books have helped many of us to become better developers and technical professionals. (And his talks are a pleasure to watch, as they always combine wisdom-sharing with the right amount of humor!) Our group of six Zalando engineers had a lot of fun going through the chapters of the book and discussing the contents. Doing this exercise together helped us to improve our skills as we identified issues in our code and set out to resolve them. We then took what we learned and, via code review, shared it with our whole tech team. After all, what better tool do we software engineers have when it comes to exchanging knowledge?
For our second Reading Group, we expanded our scope to include the QA testers, product managers and other non-engineers among us. We created two groups of six people and chose an accessible book: Extreme Programming Explained by the TDD “inventor” and Agile Manifesto original co-signer Kent Beck. Reading this book together and discussing its concepts helped us to refine our knowledge of Agile practices and share our findings with our teams. It also had the unexpected side effect of getting us to realize just how far and quickly the industry has come: When Beck wrote it, a lot of his ideas were perceived as extreme. Now they’re standard ways of working for most major tech organizations.
Having two reading groups made it difficult to stay on the same page (no pun intended). Any public holiday would throw the groups out of sync and create scheduling conflicts.
For our most recent Reading Group, we are back to the single-session format. Our group is reading Michael Feathers’ Working Effectively with Legacy Code--a book I suggested because of its practical use to Zalando (a six-year-old company of massive size has lots of legacy code to maintain and update). Feathers defines legacy code as “code without tests.” Being able to write tests for specific pieces of code, he argues, makes that piece of code good enough so that you don’t have to call it “legacy” anymore.
We launched this latest group in mid-April with a really nice kick-off event featuring pizza and beer. Every week we meet for an hour to discuss each chapter, share our notes, and highlight the most important ideas. At the end of the meetup we agree on the number of chapters we will read during the following week. To share our thoughts with the rest of the tech team, we’ll give a collaborative presentation after we finish reading the book. So far we are having fun discussing Feathers’ ideas and drinking beer! :)
(I dedicate this blog post to my wife, Adelina--she inspired me to start new Reading Groups by organizing the first one I’ve been part of)