At the beginning of the apprenticeship, I started reading Sandro Mancuso’s The Software Craftsman, which I finished about 2 weeks ago. Here’s my personal take on the book.
Almost anyone even remotely interested in the Software Craftsmanship movement will feel identified with the book, at one point or another through self validation. This happens because the author is a clear advocate of the movement, vouching for all that it stands for. So if you’re expecting some controversial opinions, search elsewhere.
The way the author approaches the topic is very broad, never really going into lots of details. I personally found this approach amazing, since it helped me develop an overview of the movement and left me hungry for more. It’s the perfect feeling for an introductory book. And that’s what I think the book really is. Nevertheless, I can imagine someone very familiar with the topic finding the book useless, since there’s little content that will be new to them. It’s mostly a list of confirmations for people who believe in the movement’s values. The only bits and pieces of really original content are the author’s stories, which are used to drive points across in what should be a warmer, closer manner.
Personal stories are hard
The problem with any personal story is that people will either see themselves in it or reject it based on their own experience. In my case it was kind of a mix between the 2 feelings, since I could see myself in the author’s position in the early stories, but couldn’t relate at all with the ones that took place in the later years of his career. Some of them also felt really forced and with cartoonish characters that are hard to picture in real life. Another problem I had with the stories was that they had little to no relation between one another. They were isolated episodes with little context that don’t show any sort of progression, just a snapshot of a moment in time.
Even though the stories weren’t the highest point of the book, I still felt that they were used quite effectively as a change of pace and made its rhythm much more interesting.
The book has different effects on different readers. Depending on the moment in your career and level of involvement in the Craftsmanship movement, it will either be an amazing resource, or a repetition of everything you already believe in (or hate of course). I think that’s the author’s intention, and this book serves as sort of a gateway into the concept of Software Craftsmanship. It’s that last step that people tilting at the edge need to take to fully fall into the deep end. And it accomplishes this in a magnificent way. It’s true that there are a lot of articles online that can fulfil the same premise, but to have it all presented in an articulate, cohesive manner is quite valuable.
I highly recommend the book to anyone who’s heard about Software Craftsmanship but isn’t fully committed to the ideology yet. This book will probably convince you that the practices the movement advocates for are the right ones. And if it doesn’t, then it’ll at least give you an informed opinion on the subject, which isn’t such a bad thing.