Software Engineering as a Craft An Article by Thomas Wilson thomaswilson.xyz The decreasingly tangible product of code, i.e. that all we have are files on a hard-drive, may make it easy to forget that writing software produces a thing. If you produce a wonky chair or an overly long fork, it’s easy to see the quality of work was not great. By calling for a perception of software as a craft, we fight against that ability to forget or not notice the final quality of the product. You could watch two software engineers with different levels of experience, or in different domains, and it wouldn’t necessarily be so easy to guess which is which, at least from a distance. So maybe there is something to be said for the value of software as a craft, for sometimes focusing on the practice of making better, or at least different, software just for the sake of it. craftsoftware
We feel it in our fingers In System A, there is no architect separate from the contractor. We are builders, simply. As builders, we have a direct feeling about construction. We feel it in our fingers, so it is down to earth. One result of this down-to-earth quality is that everything is somewhat experimental. We make experiments all the time. Sometimes we place a piece of wood this way. Another time, we may like to try it that way. Any time something new comes up in the design of a building, we are very likely to try and invent the best way of building it. This is not a great big invention. Just a simple invention, the way we might invent a way of tying a piece of string, to hold a broken toy together. It is just practical. Christopher Alexander, The Battle for the Life and Beauty of the Earth In Defence of Intuition inventioncreativityproblems