This book is indeed a very special one. The Wandering Book: Zeitgeist of the Software Craftsmanship movement is not something you can buy in the shops or order from Amazon. It is truly one of a kind in the most literal sense, and it is not even finished yet.
At the moment I believe it has ten authors, although more will hopefully follow. Each person writes a page or two, and then passes on to the next person. It is an interesting concept for me as I have an interest in quality writing instruments, especially fountain pens, and I am aware of the wandering book concept from the fountain pen community, which contains a surprisingly high number of old programmers that seem to embody the same values as those developers in the software craftsmanship community. Most of them thought the idea of the wandering book, and software craftsmanship itself to be wonderful. The reverse also seems to be true. I have noticed at conferences people associated with software craftsmanship also seem to prefer using quality writing instruments and paper, and even in my course we have already remarked on a strong correlation between those associated with software craftsmanship, and those who happen to prefer writing with fountain pens. I know personally I have the same kind of feeling when writing on decent paper with a good fountain pen as I do when adopting a craftsmanship approach to software development, taking care, building up a relationship with my tools, and feeling a strong personal responsibility towards quality work.
For me the wandering book bridges a gap between the published books, and the mailing list. The handwriting is at once a more personal connection to the authors than any printed text or electronic display could deliver.
Corey Haines begins by describing how he sees software craftsmanship following the work of the XP movement in improving quality by focusing on the internalization of craftsmanship values, and building up a community to assist each other.
Jason Gorman then says what Software Craftsmanship isn’t in his opinion, and states that if you care about software quality, then you are a software craftsman.
Dave Hoover talks about the journey to mastery and suggests that more people in industry need to take such a journey.
Eric Smith shares his personal experience becoming a developer and enjoying the opportunity to learn from others.
Michael Norton summarizes that to him, software craftsmanship focuses on three things: Learning, Practicing, and Sharing.
Micah Martin, in beautiful handwriting, reminds us that craftsmanship extends beyond our lives as software developers, and presents the idea that craftsmanship is a skill independent of software and can be built up by engaging in other activities that require the discipline of craftsmanship to master. He demonstrates this directly with his calligraphy.
Doug Bradbury writes about the physicality of software and the necessity for practice to burn the skills of working with software into our muscle memory.
Gustin Prudner writes several pages of how he sees software craftsmanship, as a set of practices, principles and beliefs, and their intrinsic nature that makes them as hard to simply list as they are to learn.
Bobby Wilson writes one of my favorite entries. He talks about craftsmanship being an introspective process based on ideas rather than rules, and mentions that craftsmen shine when faced with difficult legacy projects.
Michael DiBernardo writes my other favorite entry. He encourages more cooperation with universities in helping train and develop the next generation of software craftsmen. He also reminds us that in order to be seen as professionals we have to first present ourselves appropriately which I agree with. I was worried at first this may work against our rich heritage as geeks and hackers, and the relaxed approach to “irrelevancies” such as our external appearances we have built up as part of our culture, but clearly he is right. We can start from there and evolve to become a more professional, mature discipline and show our customers, co-workers, and the rest of the business community the respect the deserve by exhibiting a proper standard of presentation.
If you consider yourself worthy of contributing I would like to encourage you to register to receive the wandering book so you can share your ideas, and of course we should all thank NexWerk for hosting the project.
And to whomever has the book currently, pass it on already, it has been two months since the last entry!
So that concludes my short series of Software Craftsmanship book reviews. I would have liked to have included two more, The Pragmatic Programmer, and Clean Code, as they clearly present themselves as part of the “canon”, but I simply didn’t have time for it this week.