![]() |
Articles Feed |
Categories
Archives
- November 2008 (5)
- October 2008 (4)
- September 2008 (6)
- August 2008 (4)
- July 2008 (5)
- June 2008 (5)
- May 2008 (4)
- April 2008 (2)
- February 2008 (4)
- January 2008 (2)
- December 2007 (2)
- November 2007 (2)
- October 2007 (2)
- September 2007 (1)
- August 2007 (3)
- July 2007 (1)
- June 2007 (4)
- May 2007 (7)
- April 2007 (2)
- February 2007 (3)
- January 2007 (3)
- November 2006 (3)
- October 2006 (3)
- September 2006 (17)
- November 2004 (1)
Definition of Software Craftsman
by: micah | September 22nd, 2008 |
Craftsman Clarification
There has been some discrepancy in the use of the term “software craftsman”. Rather than going into details about various uses of the term, I’ll just clarify what I believe it means.
software craftsman n. A man who practices the software craft.
There are a few points to make about this definition.
1. “software craft”
A craftsman believes that software is a craft. This is important because not everyone believes this. A craftsman takes pride in his work an strives to do the best job he can. He believes that writing good software requires skill and careful attention. That software is not something that can be manufactured nor can it be delivered faster by merely adding more bodies.
2. “practices”
A craftsman practices his craft, always striving to become more skillful, to produce better software.
There are traditionally 3 stages of craftsmanship:
- Apprentice
- Journeyman
- Master
No matter which stage one may be in, as long as he practices software as a craft, he is a craftsman.
3. “A man”
Technically the term “craftsman” is gender specific. Women are just as capable of software craftsmanship. Indeed, I’d like to see more software craftswomen out there. In an effort not to alienate anyone we should use the term “software craftsperson” more liberally.
Update: There’s a movement afoot to make the term “software craftsman” gender neutral. Feel free to comment below.
I’ve checked with the book “Software Craftsmanship” by Pete McBreen to see if it conflicts with my definition. Although, he uses the term “software craftsman” ambiguously at times, he is careful to use the term “master craftsman” when referring to craftsmen at the height of his craft. This is in line with my definition.
I hope this serves as a reference for my use of the term. People should not think me presumptuous when I call myself or my colleagues craftsmen. I mean only what I describe above.

October 18th, 2008 at 11:32 PM Well said Micah. I'm glad you took the time to define this. And I'm glad that it's simple. Regarding the gender-specific "craftsman", I still prefer it over the awkward "craftsperson". I've checked with several female software developers as I've researched craftsmanship for my writing on apprenticeship and none of them preferred "craftsperson" or "craftswoman" over "craftsman". To take an example from another gender-specific title, my wife just completed an ironman triathlon, and every male and female finisher is announced as an "ironman". My wife would actually correct people when they called her an ironwoman. I'll check with our female apprentice today and let you know what she prefers.
October 18th, 2008 at 11:32 PM I spoke with [Leah](http://twitter.com/JasonLeahRun) and she responded almost identically to the other women I've polled: "I don't have a problem with the word craftsman... I am not one to be offended by that type of thing."
October 18th, 2008 at 11:32 PM Thanks Dave. I agree that the terms "craftswoman" and "craftsperson" are awkward. Let's propose that the term "software craftsman" have no gender and be applicable to both women and men. I we all agree, it will be so.
October 18th, 2008 at 11:32 PM Micah, Thanks for striving for greater Craftsmanship. I suggest that we underscore that Craftsmanship should include Customer Value: 3 stone-cutters, working at a construction site, were asked about their work... "what is it that you do?" * 1st worker: "I am a stone-cutter by profession; I cut stone, take my pay and go home." * 2nd worker: "I am the best toolsman of the group and am proud of my ability to cut stone in the finest shapes." * 3rd worker: "I build Cathedrals." IE while the 2nd worker's pride in being a toolsman is necessary - it is not as sufficient as the 3rd Worker.
October 18th, 2008 at 11:32 PM What I don't want to see is what happened with the term "Architect". See [Fowler's article](http://www.martinfowler.com/ieeeSoftware/whoNeedsArchitect.pdf). So I guess I'm just re-iterating that the definition should be simple and unambiguous. So I like that a master craftsman is at the height of their craft. It's clear (at least to me) that not only do they still do the work, but they're one of the best at doing it. Whereas Architect has generally lead to a belief that they only design and manage, and in many cases can't or are not allowed to do the work. While there are many other skills that contribute to writing good software, you can't even consider yourself on the journey to becoming a master software craftsman unless you write software. It's something that seems to be the first thing that our current IT industry is willing to allow as one goes up the ladder.