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
Paths, edges, districts, nodes, landmarks The contents of the city's images which are referable to physical forms can conveniently be classified into five types of elements: paths, edges, districts, nodes, and landmarks. Paths are the channels along which the observer customarily, occasionally, or potentially moved. Edges are the linear elements not used or considered as paths by the observer. They are the boundaries. Districts are the medium-to-large sections of the city, conceived of as having two-dimensional extent. Nodes are points, the strategic spots in a city into which an observer can enter, and which are the intensive foci to and from which they are traveling. Landmarks are another type of point-reference, but in this case the observer does not enter within them, they are external. They are usually a rather simply defined physical object: building, sign, store, or mountain. Kevin Lynch, The Image of the City City districtsAs a kind of gateway cities