The Language of Software Craftsmanship

The software craftsmanship list had a little flurry of activity today. Jason Gorman posted about David Harvey’s session at next years QCon London. The talk - Danger: Software Craftsmen at Work - unsurprisingly caused some discussion on the list!

Linked in the thread is an interesting article by David that gives a little bit more context to his position.

I have a problem with the language of software craftsmanship. The notion that somehow we’ll solve our nascent profession’s problems by calling ourselves, or regarding ourselves, as “apprentices”, “journeymen”, “masters” and so on is more than faintly absurd.

I have recently joined the formal apprenticeship scheme at Eden Development, and I wanted to give some perspective of what being an apprentice means to me.

Using terms like “apprentice”, “journeymen” and “master” is probably a bit absurd. But its absurd in a good way. Metaphor is one of the core practices of XP, developing a system metaphor gives a team a shared vision for project. Its not meant to define what the software does, but the language of the metaphor gives the team a way to discuss the system.

The software craftsmanship metaphor gives us shared vision for improving the state of software development. Its not supposed to be new ideas, its just a new way of framing new ideas to give people a common language to use. Calling myself an apprentice allows me to say that I have a lot to learn, that I want to be part of company that is willing to invest in me, if I’m willing to invest in myself.

If I sound absurd when I tell people that, then so be it. It certainly starts the conversation.