Daniel Irvine

In defence of software craftsmanship

12 August 2017

It’s quite late in the game to be commenting on the Google Memo, but comment I must. To many of us in the software craftsmanship community, it feels like our world has been turned upside down in the short space of a single week.

Here’s a recap. We were shocked at the outdated sexism emanating from within Google. We were appalled at the sheer number of supporters who came out of the shadows. And we were floored when a vocal minority of our own community joined their side.

Since then our community has faced two separate accusations: first, that we somehow condone James Damore’s behavior, and second, that we are just an outdated bunch of old white men who care about TDD and nothing else.

This has been a hard pill to swallow. So I’d like to set the record straight on both these counts, because neither of these accusations is true.

Enter the crafter

Software crafters tend to be a silent bunch. We don’t like to shout about what we’re doing. That’s not surprising: humility is one of our core values.

We’re quite inward-looking: we spend a lot of time within our own community, teaching each other and reflecting on our practices. That’s because life-long learning is another one of our core values.

After much discussion with other members of our community, I think it’s the right time to speak up.

Let’s start with James Damore. As I see it, the vast majority of the software craftsmanship community is a strong proponent of equality. Many of us believe Google did the right thing in firing Damore, and that discriminatory speech is simply not acceptable. We also don’t think it’s a partisan issue — equality is a fight for both conservatives and liberals alike — and that an attempt to divide us along partisan lines is futile.

It’s true that there is one particularly vocal member of our community, Bob Martin, who disagrees with this. But he’s not our figurehead and he’s certainly not speaking for the majority. Not by a long shot. He’s just one voice among many.

Bob Martin may have helped start our community, but it’s now far bigger than any one person. These days it’s made up of people who are passionate about improving the lives of people around them.

Which brings me to my second point. The craftsmanship community is, at its heart, about making significant progressive change in the software industry. In the beginning this meant adopting practices that created higher quality software, like TDD, pair programming, and systematic refactoring.

But if you read our manifesto, you’ll see that only one of our four values is about software. The three remaining values are about people, and most of us have come into the craftsmanship community because we care more about people than we care about code.

Modern craftsmanship is actively engaged in fixing social issues. If you don’t believe that, just head to anyofthesoftwarecraftsmanshipopenspacesaroundtheworld, where you’ll find mostly millennials and many of them will be discussing diversity & inclusion just as much as the latest test frameworks.

My own employer, a consultancy founded on the ideas of craftsmanship, recently sponsored the inaugural Non-Binary in Tech conference. In our London office we now hire based on anonymised code submissions.

A couple of years ago, we elected to rename our primary job title from ‘software craftsman’ to ‘software crafter’. After much internal discussion, some of my colleagues decided they’d like to keep their original title of craftsman. We accepted their right to choose as a compromise. In the end, over 80% of us made the change, which I think reflects how much of our community cares deeply about this issue.

The challenges we face

No one can deny we have some serious problems that need solving. We have a problematic name and we have some problematic members. Some of our events are attended by almost entirely white men. (I know, because I’ve been one of those attendees.)

Have we done much already to solve these problems? Yes. Are we doing enough? Absolutely not.

The problematic name of craftsmanship is a constant source of discussion for us. It even has an abbreviation to refer to the problem: MITM, the ‘man-in-the-middle’ problem. It’s clearly true that our name is off-putting to many. Perhaps it really is time for a new one.

We need to do more work to include others. If we hope to have an image of an inclusive group then we need to actually be that, in every corner of our community.

Yes, we’ve made some effort already. But we haven’t spoken up about it. We need to put aside our humbleness and our inward-looking nature, just for a moment, and start talking about the hard work we’re doing, about how our community is one of progressives, about how much we value equality.

Above all, let’s work together to ensure our community remains inclusive and supportive of all.

Thank you to everyone who took the time to review a draft of this post.