User Tools

Site Tools


software_that_has_the_quality_without_a_name

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
software_that_has_the_quality_without_a_name [2014/05/16 07:33]
yann [Comments]
software_that_has_the_quality_without_a_name [2014/05/16 07:47]
yann [Comments]
Line 14: Line 14:
  
 From then on, the author introduces the idea of "​Quality without a name": "[a] thing or place has the quality without a name if it is comfortable,​ has evolved over time in its own terms, is free of inner contradictions,​ doesn'​t try to draw attention to itself, and seems to have archetypal qualities"​. Things that have the quality without a name seem to have 15 properties in common, according to Alexander'​s work. The author summarises these 15 properties: From then on, the author introduces the idea of "​Quality without a name": "[a] thing or place has the quality without a name if it is comfortable,​ has evolved over time in its own terms, is free of inner contradictions,​ doesn'​t try to draw attention to itself, and seems to have archetypal qualities"​. Things that have the quality without a name seem to have 15 properties in common, according to Alexander'​s work. The author summarises these 15 properties:
-  * Level of scale+  * Levels ​of scale: There is a balanced range of sizes. You don't have abrupt changes in the sizes of adjacent things. Elements have fractal scale. 
 +  * Strong centers: You can clearly identify parts of the space or structure. 
 +  * Thick boundaries`:​ Lines delimit things. In living systems, edges are the most productive environments (e.g., all the critters that live at the edge of the water). 
 +  * Alternating repetition: High/low, thick/thin, shape A and shape B. Things oscillate and alternate to create a good balance. 
 +  * Positive space: Space is beautifully shaped, convex, enclosed. It is not leftover space. Think of how a Voronoi diagram has cells that grow outward from a bunch of points, or how a piece of corn has kernels that grow from tiny points until they touch the adjacent kernels. 
 +  * Good shape: The sails of a ship, the shell of a snail, the beak of a bird. They attain the optimal shape for their purpose, which is beautiful. 
 +  * Local symmetries: The world is not symmetrical at large. But small things tend to be symmetrical,​ because it is easier that way. Your house is not symmetrical,​ but each window is. 
 +  * Deep interlock and ambiguity: The crooked streets of old towns. Axons in neurons. It is hard to separate figure and ground, or foreground and background. Two strong centers are made stronger if a third center is placed between them, so that it belongs to both. 
 +  * Contrast: You can distinguish where one thing ends and the next one begins, because they don't fade into each other. 
 +  * Gradients: Things fade into each other where they need to. Concentrations in solutions, snow or earth banks, the wires that support a bridge. The way bandwidth decreases as you move away from the backbone. 
 +  * Roughness: The world is not frictionless and smooth. Irregularities are good because they let each piece adapt perfectly to its surroundings,​ rather than being an exact copy that may not fit as well. 
 +  * Echoes: Things repeat and echo each other. Things are unique in their exact shape, but the general shapes repeat over and over. 
 +  * The void: Sometimes you get a big blank area for quietness of form. A lake, a courtyard, a picture window. 
 +  * Simplicity and inner calm: Things are as simple as possible, but no simpler. 
 +  * Non-separateness:​ Everything depends on everything else. You can't separate a fish from the pond and the aquatic plants. You can't separate a column from the base of the building. 
 + 
 +The author goes on with Alexander'​s idea of transformations,​ which preserve the structure of the things, as refactorings preserve the behaviour of a software program. He then gives an example by Richard Gabriel to transform a ''​PhoneCall''​ class to create two strong centers, then extract the latent center in the middle, and then reach a design where multi-way calls, conference calls, can happen. 
 + 
 +The author summarises the fundamental process to apply structure-preserving transformations:​ 
 +  - Start with what you have - an empty lot, or an already-built building, or a program that looks ugly and is hard to use. 
 +  - Identify the centers that exist in that space. Find the weakest center or the least coherent. 
 +  - See how to apply one or more of the fifteen structure-preserving transformations to strengthen that weak center. Does it need to be delimited? Does it need to be blended with its surroundings?​ Does it need more detail? Does it need to be de-cluttered?​ 
 +  - Find the new centers that are born when you apply the transformation to the old center. Does the new combination make things stronger? Prettier? More functional?​ 
 +  - Ensure that you did the simplest possible thing. 
 +  - Go back to the beginning for the next step. 
 + 
 +The author recalls that Alexander does not like destroying things to build new ones. Similarly, we should refactor code rather than scrap it. Also, Alexander does not like detailed, up-front design because "you cannot predict absolutely everything that will come up during construction or implementation"​. Instead, we must "​continually evaluate what [we create] against real users and real use cases"​. Finally, the author concludes that "​Quality without a name" is really a (mysterious) synonym to "​living structure",​ i.e., things "that are build according to that method"​. 
 + 
 +This article is interesting because it put Alexander'​s consequent work into perspective and summarises Alexander'​s main ideas and finding. It also relates real-world architecture with software design and makes a good case for reading books about refactorings and design patterns.
software_that_has_the_quality_without_a_name.txt · Last modified: 2018/03/04 02:53 (external edit)