This thread is a spin-off of all the recent threads that have been boiling
over, largely in response to postings by Jason, with whom I'm mostly in
agreement with.
What I like about the Software Craftsmanship community
------------------------------------------------------
I want to be around people that cherish their craft. But just saying, "I want
to hang out with people that care" is way too open-ended. At least with this
group, I feel a kindred spirit in how we advocate
- light-weight processes of some old-school Agile-ish flavor
- the kinds of recommendations one might find in seminal books by Beck,
Fowler, Hunt, Martin, Thomas, and others
- behavior-driven design where appropriate
- and so forth (I really don't want to get too caught up in the specifics).
I'm not sure who's behind the on-line manifesto [1]. I suspect it's 8th Light,
because "
softwarecraftsmanship.org" is their domain. Over all, I'm completely
in line with the manifesto.
[1]
http://manifesto.softwarecraftsmanship.org/
The Stuff of Controversy
------------------------
But then there's McBreen's book. First off, it's got the title, right there --
"Software Craftsmanship", which makes it seem like a bible of a movement. I
feel some people have adopted it as such.
But McBreen's prose goes much farther than the airy constraints of the
manifesto. There's real assertions, if not a thesis there. First off, there's
his attacks on "engineering," which are tedious and provoke semantic battles
over what "engineering" means, has meant, or should mean.
Then there's The Metaphor. It's cute, and it certainly highlights a problem.
But to stratify all of us into three, count them /three/, categories --
apprentice, journeyman, master -- is destined to be fraught with inadequacy.
I love the journeyman idea. That's a call to action. The craftsman must
journey. That seems clear to me; if you sit in the same place for two long,
you risk limiting growth. And it's important to journey to places where the
benefit to employer and employee is mutual.
But when it comes to "mastery," there's /way/ too many things to master in
software from algorithms, to distributed computing, to language design, to
testing, to infrastructure. People will have different proficiencies in
different areas, and that's that. It's really up to the hiring party to assess
value through an interview process.
As for "masterpieces," we all have code that represents the state of our art.
I guess if I had been the sole architect of some great open-source framework, I
might call it my "masterpiece" but it would be tongue-in-cheek at most. And
even if I had such a body of work, I'd still encourage a hiring company to
interview me aggressively enough to make sure I met their needs appropriately.
Barring some compromises of really bad economic times, I'd certainly be
interviewing them too to make sure they met my needs.
The masterpieces, the time spent learning, the variety of learning
environments. . . it's all just supporting evidence. There's no absolute
proof. So let's just let it go. Anyone whose best argument about their
mastery is because some other guy says so is participating in the same nonsense
that say that a college degree is worth something by name alone.
Where Do We Stand?
------------------
Okay, so we have:
- the manifesto
- the body of discussion in this Google Group
- McBreen's book
- the metaphor
- anything else? What else advises the identity of this group?
The manifesto nicely asserts that a craftsman values community. This Google
Group works well to bind that community.
Do we as a community really need to be so strongly bound by the ideas in
McBreens's book or the metaphor? Is McBreen even on this list? I wonder what
his response would be to all this.
-Sukant