Over the course of the past week, I have been made aware about the perception what Software Craftsmanship is about. I asked two persons about their perception on Software Craftsmanship, and I got similar responses: The public perception seems to be that Craftsmanship is all about code, katas, and Coding Dojos. Unfortunately this is quite not all that is to Software Craftsmanship, and here is what I think anyone talking about Software Craftsmanship should be aware about.
Apprentices
One key point in Pete McBreen’s book is that Software Engineering did not mention a single word on how to teach new engineers about the thing we call Software Development. McBreen’s answer on this is the master-apprentice model to teach people. Micah Martin, having been an apprentice with his father Robert C. Martin himself, taught several apprentices. I remember that I followed Colin’s blog on his journey to become a journey in Software Development. The same goes for Micah’s brother Justin during this year. But there is more to it. Companies like 8thLight, Obtiva, or Eden Development offer apprenticeship programs. And there are more who do this. Teaching younger people about our craft is a way to hone and grow it at the same time. Dave Hoover just wrote a blog post about apprenticeship programs being on the rise. So we can expect more to come over the next years.
Journeymen
Once an apprentice, now a journeyman, Corey Haines published his tour in software programming on his blog. Uncle Bob Martin blogged about Corey’s return, the knowledge he had acquired, and what the old master could learn from him, about a year ago. Recently the Software Craftsmanship mailing list even collected The Software Craftsman Guide to the World, a map on google maps consisting of places where Software Craftsman on their journey can jump in and help program for a bed.
The Craftsman Swap
Initiated in 2009, 8thLight and Obtiva swapped two of their craftsmen. Yes, they had one of each company working for a dedicated time for the other company. There was an article in the local Chicago Tribune on this, if you don’t believe me. Or maybe you want to read about it from Obtiva’s founder Dave Hoover here.
But not enough with that, I saw a repeat with some Scandinavian companies during 2010 on twitter. Colin Jones did a write-up of his experiences on the 8thLight blog here.
Doesn’t that sound risky? Sure, but it also shows the amount of trust between two companies exchanging their craftsmen. And just start to think about the possibilities about spread knowledge this gains for each company. One of the key things we put into the Ethics of Software Craftsmanship was that we share our knowledge, with our colleagues, but even across companies.
The Wandering Book
Enrique Comba-Riepenhausen created The Wandering Book to catch the Zeitgeist of Software Craftsmanship. Unfortunately this masterpiece seems to be lost, but the concept was simple. The book is sent to you. Then you have four weeks to write down an entry into it, scan your writings, send it to Enrique, and send the book to the next person. The scanned pages are available online, so in case you want to take a look into the entries that had been made until it got lost, go ahead, and see what you can learn about the Zeitgeist of Software Craftsmanship.
That’s the essence of our journey beyond challenges and katas. I would really love to see these ideas finding more ground. Of course, we had many more of these ideas. But I know that you can find customer collaboration and productive partnerships in the mentioned blogs. You can find lots of practice, lots of caring about our craft, and among everything else sharing of what constitutes Software Craftsmanship.
Software craftsmanship is not about any of these things, really. There are plenty of passionate, committed programmers who care about quality and are always working to improve and share ideas who have never attended a dojo, performed a kata, been an apprentice (or mastered an apprentice) or have heard of the wandering book or craftsman swaps. These are a means to an end, and definitely not the only means to the same end.
Having answered to your tweet about this topic the other day (Improve yourself by helping others improve, care about your craft, see the big picture & act on the details., I agree to Jason.
Im my opinion (and I might be wrong) craftsmanship — and the striving & craving to actually achieve it — is more than a collection of concrete ways for improvement.
There’s more than one way to do it. :-)