Craftsmanship and mastery


A craftsman (or craftswoman for that matter) is someone who makes things, but not just… makes things. They make things for people to use. Doors. Cabinets. Plumbing. And they make them with care and attention to detail. They are not factory workers. They do not just churn out cheaply produced garbage that breaks. They include amazing little touches that just make using their products a visceral pleasure, or that make sure that the product will last, will work and work for years without breaking. They do excellent work even when no one will ever see it or notice it, but where it will make the user’s life better without them even knowing.

A craftsman spends years learning their craft. They take it slow. They start simple. They begin as an apprentice, then as their skill grows they become a journeyman and finally a master. The things that a master makes, even the smallest and simplest, have a true beauty to them, they are imbued with all the skill and cunning learned over years of training.

This is what I want from the code that I write. I want the user interface to be minimal but powerful. I want it to be intuitively understandable to the user. To fit their needs comfortably. To do exactly what they need and want, to be unobtrusive. To be beautiful but understated. The job of a user interface is to get out of the way. To be unnoticed. To enable the user. That’s it. Under the hood, the code must work. It must respond quickly. It must not do surprising things, like silently failing. It must make the user’s life easier. It must take away the pain of drudgery and replace it with the joy of using a well-made tool.

Software engineering is about craftsmanship. That is my belief. Not about teamwork. Not about agile project management. Not about the latest framework. It’s about engineering, excellence, patience, understanding, attention to detail and dedication. It’s about always striving to be better. About the journey, not the destination. You never actually achieve mastery. But you get closer over time. And a true professional is someone who practices the basics. There’s no such thing as advanced programming without basic programming.

“From the age of six I had a mania for drawing the shapes of things. When I was fifty I had published a universe of designs. but all I have done before the the age of seventy is not worth bothering with. At seventy five I’ll have learned something of the pattern of nature, of animals, of plants, of trees, birds, fish and insects. stromectol liek When I am eighty you will see real progress. At ninety I shall have cut my way deeply into the mystery of life itself. At a hundred I shall be a marvelous artist. At a hundred and ten everything I create; a dot, a line, will jump to life as never before. To all of you who are going to live as long as I do, I promise to keep my word. I am writing this in my old age. I used to call myself Hokusai, but today I sign my self ‘The Old Man Mad About Drawing.’” — Hokusai

Lest we forget, none of us really knows anything.

When they met, Emperor Wu had asked how much karmic merit he had gained from his noble support of Buddhism. Bodhidharma replied, “None at all.” The Emperor asked, “Then what is the truth of the teachings? pierre kory ivermectin ” Bodhidharma replied, “Vast emptiness, nothing holy.” So the emperor asked, “Then who are you standing in front of me?” Bodhidharma replied, “I do not know,” and walked out. – Wikipedia article on Zen Buddhism

The image I chose to illustrate this article is by Miyamoto Musashi

About the Author

I’ve got some experience writing code. I run quite a lot. The last book I read was about Gavrilo Princip. There’s about to be a thunderstorm here. Here is Johannesburg, South Africa. There is another Johannesburg in the USA. I know how to make chocolate sauce.