I started the apprenticeship with 3 books. One of them I already reviewed. The second one is a work in progress. And the third one was Apprenticeship Patterns, by Dave Hoover and Adele Oshineye, which I very recently finished reading. Here are my thoughts on this one.
Guidance for the Aspiring Software Craftsman
That’s the book’s subtitle, and it’s quite accurate. The patterns in this book feel like recipes. There’s a problematic situation, then the proposed solution and finally actions to get there. There were multiple moments in which I went “😲, if only I’ve known this sooner”. Because it’s true, if I had had some specific patterns in my mind, I would’ve reacted to problematic situations in different ways, with arguably better results. What I’m trying to say is that the book had a special way of connecting with me on a personal level. I could directly relate to the words written on those pages because I had been in that position. And that makes me believe I will probably find myself in other situations where some of the recipes will be useful.
In the introduction, the authors refer to this book as a special kind of beast. They recommend not reading it cover to cover but explore the different possibilities of jumping between the patterns as if they were entirely independent from one another. I must admit I didn’t follow this advice and went old-school, reading each page in the order it was printed. But afterwards, I understood why the authors recommend embracing some chaos. It’s because the book reads itself like a website. It’s a printed website where each pattern is an article linked around in different places. The categories the authors built around the patterns make a lot of sense. But it also makes sense for each pattern to be entirely independent, just like a self contained cooking recipe.
I keep coming back to the whole metaphor of recipes, but that’s just how it feels to me. It’s easy to think about going back to the book in the future to read about a specific pattern because I’m suddenly in a situation that sounds familiar, just as I would look for that specific pasta recipe I liked so much. The patterns are aimed at people in different stages of their apprenticeship process, and they’re great at giving some order to unknown realities. That doesn’t mean they’re useless for seasoned crafters either. Just like an experienced chef makes subtle changes to recipes, so will the experienced crafter change the patterns, ever so slightly. They’re an incredible starting point.
If it seems I liked the book, it’s because I did. I loved it. My wife is probably tired of me paraphrasing the different patterns when I spot any situation in which they might be useful. I can’t recommend the book enough. Even if the ideas in the patterns seem familiar to you, I can assure you that adding a mnemonic device to the concepts in the form of a sentence is incredibly useful.
Read this book. Regardless of your level of expertise, if you’re interested in Software Craftsmanship at all, read this book. You won’t regret it.