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
You need to make the step forward Throughout a racing season there is constant, relentless pressure on the designer to keep making design improvements. But there is a limit to what can be achieved with any car design, before a jump has to be made to basically a new design, an innovation. As Gordon Murray says, ‘Given the situation and the pressure at any one time, you do get to the brick wall...I mean you're doing all these normal modifications, you know you can't go any quicker, you need to make the step forward.’ In the midst of the pressure, the fervour, the panic, he ‘used to get breakthroughs, I mean I used to get like suddenly a mental block's lifted.’ Gordon Murray, Winning by Design: The Methods of Gordon Murray The Structure of Scientific RevolutionsMediocratopia progress