Home > Uncategorized > No, I’m not a mason

No, I’m not a mason

“Danger! Software Craftsmen at Work”

Now that’s a great title! I wish I could have used that for this post. Instead, that’s the title of the QCon 2010 David Harvey presentation that is the foundation of this blog entry.

In his talk Mr Harvey places the “Software Craftsman” ideas and practices somewhere between distracting and dangerous, and claims these ideas builds a wall between developers, organisations and customers.

I claim he exaggerates the dangers, but I welcome the stirring in the pot and I do agree in parts of what he says, mainly regarding the emotional associations of the metaphors used by the Software Craftsmanship movement.

I agree with Uncle Bob‘s views on “The Empty Manifesto“, “Engineering vs. Craftsmanship” as well as “The Craftsman Connotation“, the last one being the one I’m expanding upon here. Plus, he sums the whole thing up nicely, so if you haven’t yet, please read that one first. (Yes, you may read Gael Fraiteur’s post too if you must, but please then leave a trail of breadcrumbs so you find your way back here.)

A masonry brick wall

So, on to David’s talk:

My first issue is with his first analogy; why would wearing a white T-shirt with printed instructions make it any worse walking into the lion’s cage? …ok sorry, that’s not the point. And, to give hime some credit, the print was in fresh blood and lions tend to like that, so fair enough, I’ll let it slide. After all, he was standing inside the lion’s cage saying it.

And thanks for putting yourself in that cage, David. It was refreshing to see an alternate slash controversial view presented on this subject.

My biggest issue

My biggest issue, however, is that he picks on a great movement with the noble goals of achieving a larger recognition of software development as a profession and to “raise the bar of professional software development”. Why would anyone want to do that? That’s just mean.

Or, is it? He is, after all, a developer himself…

Please, let me shine some light on an important point he makes, one that I’ve brought up before: We should be careful with our wording! We are already perceived as loners, nerds, Storm Troopers sleeping in line for Star Wars premiers. We don’t need to enforce that perception.

For me the timing of watching this presentation was great. It aligned perfectly with a conversation I had the other day:

The conversation

I was sitting out on the lawn, (re)reading a book* about apprenticeship and craftsmen, when my neighbour approached me.

-Are you working?
-Yep, reading up on some important professional elements.
He shot a quick look at the cover.
-But aren’t you in IT?

I began explaining, but it wasn’t until I started using words like professional instead of craftsman and mentoring instead of apprenticeship and that the book was really about learning and improving that the coin really dropped and the conversation took off. Turns out he, being an ambulance driver (amazingly enough, the very one that drove me and my wife to the hospital six months ago, when our bub #4 decided he wanted out in the middle of the night), knew and practiced many of these patterns. New ambulance drivers work with experienced ones to pick up on the large part of that profession consisting of working in the field, in an often critical atmosphere.

-They have to. Can’t read that in a book.
-So ok, you do that too, he said, I get it. Cool. But what with all the old guild talk? You’re not a mason, are you?

Touché!

So, why do we fight so hard for recognition?

Well, for one, it’s still a fairly young profession, but I also think some of it has to do with our characteristics. Software developers are smart, analytical people, lacking the social and communicative skills required for many other professions. (Generalising. Trying to make a point here. Moving on.)

I don’t care if you’re socially inept, as long as you can code. It’s actually better that way, since you’re going to spend most your waking hours in the basement anyway.

This has changed, greatly and quickly, and we are now in contact with the users, the business, no longer sitting in the basement. But even so, to the outside world that’s still us, the loners.

We see all that – we’re smart and analytical remember – and we’re tired of standing back to the sports jocks from the school yard, now turned corporate leaders. And we just don’t understand why people have such a hard time seeing the complexity, the necessity, the importance of what we do, just because it’s not tangible.

So, maybe we get a little bit too eager to get that recognition and forget there’s a gap that needs bridging first. (…and now, also a brick wall to tear down. See, we’re not making it easy on ourselves.)

Bridging the gap

That gap will be brigded though, sooner or later, through continously working on doing what we should do and doing it well. I agree with David’s advice; developers, stick to what Kent Beck described as the four basic activities of XP:

-Listening
-Testing
-Coding
-Designing

Do them well and stop worrying so much about recognition and acknowledgement. And by all means, use whatever names and metaphors you want for learning and improving, but do it internally. On the outside, make sure our organisations and customers understand what we’re doing too.

And anyone suggesting writing software is not hard, not a real profession, is welcome to come and give it a go…

* Not just “a book”, ladies and gentlemen. The Book! Apprenticeship Patterns – Guidance for the Aspiring Software Craftsman, by Dave Hoover and Adewale Oshineye. Read it. Please do. For your own sake.

(Photo courtesy of Shutterstock)

  1. Lars
    October 28th, 2010 at 02:45 | #1

    Boken verkar intressant, har du den i papper? Jag kanske kan lana den nar jag kommer tillbaka nasta vecka?

  2. November 8th, 2010 at 14:47 | #2

    Pär, between this blog post and David Harvey’s presentation, I’m definitely thinking more about the language we use to describe what it is we do. Your story about the conversation with the ambulance driver is important, and reminds me why this language was helpful to me when I first read it 8 years ago. I can’t relate to the labels “engineer” or “scientist”, but “craftsman felt right. Now, to the ambulance driver, none of those titles mean much of anything other than “works with computers”, which is fine. So I’ll stick with what I’ve always said when asked about craftsmanship and the “apprentice” label: it was (and is) helpful for me. I’ll be thinking more about the language I use to tell non-technical people about what I do at work.

    I couldn’t relate very well to your “fight for recognition” thoughts. I happen to have a different background than a lot of software developers. I was one of those schoolyard jocks myself (albeit an introverted one) who went on to play college football, then became a family therapist, and then taught myself about software development. Yeah, it’s a strange story, and sometimes it makes it hard for me to relate. So, like my helpful self-label “software craftsman”, if thinking about “fighting for recognition” helps you bridge gaps, then stick with it, because we certainly need plenty of bridge builders. :)

  3. November 8th, 2010 at 23:31 | #3

    @Dave Hoover Thanks a bunch for taking the time to read my post as well as for your insightful and valuable thoughts on it.

    Reading about your background as a jock yourself brought a smile to my face, thanks for sharing that :) Actually it’s not really _my_ fight for recognition either. When writing this post I tried to decide: We or They? I even started to write a “disclaimer” on the decision of chosing We. I ended up dropping that disclaimer not to lose focus.

    So, here it is in a comment version instead :)

    Reasons for using We: It’s including; I’m a part of this too. After all, according to my CV, it’s what I’ve been doing for years now.

    Reasons for using They: I’m not smart and analytical enough :) Well ok, I’m smart, but not to the extent that I’ve felt excluded. I’ve never been a loner, and certainly wouldn’t call myself introverted – au contraire. Add to that that I’ve always been fairly good at sports and that I studied philosophy, pedagogy and communication at university and you have another one not quite fitting the traditional developer bill.

    As you might tell from the above, large parts of me leaned towards They, but that wouldn’t have been very loyal, would it? Plus, it really doesn’t matter what side you and me would choose to put ourselves on personally. As long as we’re in the business of creating software we need to be aware of the importance of expressing ourselves in a way that doesn’t enforce an external view of us as nerds and loners.

    That said, go ahead and write an Apprenticeship Patterns sequel. Please (pretty please, with sugar on top) do! I love your book and I learned tons from it. And, I must add, the craftsman/apprentice metaphors worked wonders for me too.

    “Internally”, within our community it’s all fine. It’s up to ourselves to find metaphors that work. And these do. As do “fail fast”, “let it crash” etc. But, again, when we talk to people on the outside…

    Hey, you know what? I just realised we might need to separate the two parts of the goals of this “movement” (in the sense I used it in my post). The part of “raising the bar of professional software development” (SCM), by “improving software developers themselves, through deliberate practice and constant learning” (Fraiteur) is very well served with these metaphors. I think the reception and reactions by our community have proved that. The “goals of achieving a larger recognition of software development as a profession” part however, needs different tools, mainly because that part is highly dependent on how the outside world perceives us.

    Hmm, in retrospect I should have kept those goals apart writing the post. But, what are retrospects for, if not to identify the areas of improvement for the future?! Sounds like another blog post coming up, wohoo. Good times :)

    On a final note; when you said you “couldn’t relate very well to your “fight for recognition” thoughts”, you did mean you as a person, with your background and your characteristics, didn’t you? In that case, we’re cool. I covered that above. However, if you, with your background in psychology, can’t relate professionally to my conjecture of tying the characteristics of software developers to an (over-)eagerness to achieve recognition I’d love to hear some more on your thoughts on that.

    Leaping lizzards, this became a blog post in itself. Thanks again for the inspiration Dave :)

  4. November 9th, 2010 at 00:44 | #4

    Thanks for the follow up. Lots to think about, including the sequel. :) re: your final note, it was the former.

  5. November 9th, 2010 at 11:34 | #5

    @Dave Hoover Phew, thanks. Then we’re cool :) And again, thanks for taking the time. Humbling, really, knowing from your blog you were probably busy packing for your Journeyman Tour. Say hello to Sweden – my dear home country – from me! :)

  1. No trackbacks yet.