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.
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.
A craftsman practices his craft, always striving to become more skillful, to produce better software.
There are traditionally 3 stages of craftsmanship:
No matter which stage one may be in, as long as he practices software as a craft, he is a craftsman.
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.