Douglas Livingstone

I'm working for a small software company based in Bristol, using live data in a C# desktop application.

What does software craftsmanship mean to me? It is the claim that software development can be more than software engineering. A well engineered piece of software already works, it does the job it was set out to do. Craftsmanship aims to not just work, but work right.

I have a background in the hard, experimental, sciences. A theory only holds sway when you can sit down and test it. How can you test the difference between a software artefact that works, and one that works right? I keep returning to an image of two wooden chairs. One is actually a stool, hard and sturdy, but if you pick it up the wrong way, you'll likely to get a splinter. The other is a chair, for comfort if has a back, but you can sit in it just as easily. This second chair is different though. When you turn it over, you can run your hand over the wood, it is as smooth as it is solid. When you look at it more closely, you don't run the risk of injury, but instead find dovetail joints. What does that mean for well crafted source code, hidden away from users in an opaque binary?

Ultimately, I think craftsmanship may be recognised by anyone, but truly appreciated only by others who aspire to craftsmanship. In that sense, it is a hidden skill, beauty found only by those who look for it, which threatens to follow fashions. I hope to meet others at this conference with experience of enduring craftsmanship who I can learn from.
