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
Materials and how to employ them Forming a paper clip presents a common dilemma encountered by engineers and inventors: the very properties of the material that make it possible to be shaped into a useful object also limit its use. If one were to try and make a paper clip out of wire that stayed bent too easily, it would have little spring and not hold papers very tightly. On the other hand, if one were to use wire that did not stay bent, then the clip could not even be formed. Thus, understanding the fundamental behavior of materials and how to employ them to advantage is often a principle reason that something as seemingly simple as a paper clip cannot be developed sooner than it is. Henry Petroski, The Evolution of Useful Things Ideas behind their time material