# Notes on Notes on the Synthesis of Form

![Notes on the Synthesis of Form - cover.jpg](https://upload.wikimedia.org/wikipedia/en/thumb/1/18/Notes_on_the_Synthesis_of_Form_-_cover.jpg/220px-Notes_on_the_Synthesis_of_Form_-_cover.jpg)

Christopher Alexander was an architect and designer; I've written about some of his later works in [another post](https://www.lesswrong.com/posts/eJcYxpwESvMRYGiyo/a-pattern-language-for-rationality). This, one of his earliest books, focuses on design as a formal process. What is design, and how does it work? I'll split things up slightly differently than he does, and talk about the model of design, followed by the context of the model.

I think this review is an ok substitute for the book (80% of the value, 5% of the length).

The Model
=========

Design is trying to join together two things: the 'form' and the 'context', which together make the ensemble. Most of Alexander's examples are physical--you might be designing a kettle (the form) so that people can heat water at home on demand (the context), but you only really know if they work when you see the two together. \[This is in part because the context is huge, and it's impractical to specify all of its details without knowing the details of the form.\]

The important question is "fit". Do the form and the context fit together? There are many dimensions to consider, and the question could be 'yes' or 'no' for each. The design problem is solved if all of those questions come back 'yes'. He conceptualizes this as a set of functions.

For small problems, the designer can probably fit it all into their head and solve the problem at once. For large problems, this doesn't work, and so the designer needs to subdivide (or factorize) the problem. But think of the problem of exploring this nonconvex function space, where as you tweak the design, some of the functions stop complaining and others start (he imagines it as a row of lightbulbs with switches and dials in front, where you want all of the bulbs to be off at once).

The best subdivision of the problem will focus on the relationship between the functions of fitness, in order to find subcomponents that can be designed together. You might have to go back and redo the design of a whole subsection due to constraints elsewhere, but if you've minimized the connections between subsections, this should happen infrequently; if you haven't minimized them, then this might happen often. (Finding the right factorization is a graph theory problem!)

Thus there are two phases to design: the analytical phase, where you figure out the right program for the problem (dimensions of fitness and how they relate to each other which determines the downward-splitting subdivision of the design space), and the synthetic phase, where you figure out the right form given the program (the upwards-fusion solution of subproblems which get combined together to solve larger problems). Fusion is harder the more conflicts there are, and so you want to push that difficulty as far out to the leaves of the tree as you can.

The Model's Context
===================

Christopher Alexander is writing in the 60s using cutting edge mathematics to an audience with a tremendous respect for intuition. He's 28 when the book is published, and has just become a professor of architecture at UC Berkeley.

He sees a world undergoing rapid change, meaning that traditions are out of place. People are making lots of choices about how things should be, and making many of those choices poorly. He wants to come up with the equivalent of 'arithmetic' for design, so that people can do things that work instead of just remembering past things that worked, or guessing blindly. The important thing about arithmetic is factorization: you can do functions on arbitrarily large numbers because you know how to break those numbers into smaller pieces and apply the right functions to those smaller pieces.

He gives an example of designers giving up machine tools and returning to handmade objects, until Bauhaus figured out how to cope with them. He thinks designers have given up on using logic and systematic design, and he's figured out how to cope with systematic design.

Consciousness
-------------

One historical model he presents in the book that I find fascinating is a split between unselfconscious and selfconscious design. Traditional cultures built houses a particular way and didn't think much about *why* that particular way; that's just how it's done. But modern culture has a specialized science and body of practice about building buildings, and architects who primarily identify as architects.

> I shall call a culture unselfconscious if its form-making is learned informally, through imitation and correction. And I shall call a culture selfconscious if its form-making is taught academically, according to explicit rules.

He's not a partisan of either camp--he notes that the traditional cultures were solving simpler problems, and it's not obvious they could handle our problems any better than we do--but thinks understanding why they are the way they are is important.

### Unselfconscious

The unselfconscious culture is produced by implicit learning. There's lots of trial-and-error with clear signalling (either from reality or the older person showing you how to do it). It's like learning to ride a bike where you fall whenever you do it wrong. Building is done frequently enough to be almost entirely the product of habits, and maintenance of the structure is entirely habitual. (His main examples are mud huts and igloos.) Any words that people say associated with the behaviors are useful primarily to the extent they reinforce the right habits instead of the wrong habits, rather than pointing at the true causes of the habits or underlying dynamics of the system.

The system has to have time to equilibrate before the next change, or it won't be stable. Tradition, by preventing all non-urgent changes, keeps the rest of the system unchanging. This prevents cascading misfit, and means the habits are more likely to be appropriate. Tradition makes the system more viscous.

A “notice problems -> react to it” loop allows for evolution / gradient descent even when people aren’t smart enough to invent solutions, just notice the existence of problems. It doesn't have to be an improvement so long as it's a change, and you'll make another change when it's still not fixed!

### Selfconscious

The selfconscious culture is produced by explicit learning. There's lots of principles, and relatively little chance to make mistakes and identify them.

The features of unselfconscious design that caused adaptive stability are missing. Reaction to failure is more indirect, as the architect that designs a thousand homes doesn't live in all of them and see their failures, and the person who lives in them is no longer an architect enabled to make changes. Failures must be larger and more common to be fixed, because of the weaker info channel between residents and builders. Traditions are no longer firm, and so changes in one corner of the space can cause misfit in other corners of the space, and happen too rapidly for errors to be reliably fixed.

The designers now face different incentives, and are more individualistic. They're now competing for customers (which isn't true of people building their own homes), and so prize features that make them distinctive instead of quality. (See this Paul Graham essay[^z12lnv9r6k] about art school.) One person working for a few hours is not enough to match the product of centuries, and so there's pressure for 'fresh' to be the new 'good'.

Designers react to this in an unhelpful way. They do a hierarchical arrangement of constraints thru chunking and select their principles based on explainability/understandability, neither of which are the min-cut chunking that creates independent subsystems. As well, the style of debate and academic history leads to tradition--of conceptual definitions! This makes the concepts hard to modify and fit into any particular problem you're looking at, making it *more* instead of less difficult to discover the independent subsystems for a particular problem. See also [Taboo Your Words.](https://www.lesswrong.com/posts/WBdvyyHLdxZSAMmoz/taboo-your-words)

2022
----

Why read this in 2022? How have things changed in the context since it was written?

On the one hand, this book has been quite influential, and we're living in a world partially built by it. Sometimes it's useful to look back at foundations. Notes on the Synthesis of Form was highly recommended among computer scientists and programmers, who deal with problems of 'pure design', in some deep sense. 

While set theory and graph theory were new then, they're older now and [presumably better known](https://xkcd.com/2501/). The idea of having a set of discrete functions instead of a utility function to optimize is perhaps a somewhat better fit for human experience (and fits well with a [control theory model of psychology](https://www.lesswrong.com/posts/nPs63hpijnQs37jme/behavior-the-control-of-perception)), but doesn't tell us much about decision-making under uncertainty (which utility functions were built for). It's much more like the [iron triangle](https://en.wikipedia.org/wiki/Project_management_triangle) and "pick 2" than a multivariate function. He references Herbert Simon's work on satisficers. 

There's a section that seems somewhat outdated to me where he talks about 'selection problems'. If you can express the possibility space and the desirability criterion in the same language, it's possible to mechanically consider lots of solutions and do the best. Design problems can't be solved this way, because (at least in his time) there was no known way of generating new physical forms symbolically or telling fit symbolically. I think we've generated lots of the former and are moving more slowly (but still with some progress!) on the latter.

I see this book as trying to kick off a revolution--to generate the arithmetic that could sweep the world and then good design could be taught. But Alexander ended up focusing on patterns and being disappointed by lots of people who were very excited about the book. From his 1971 foreward:

> Indeed, since the book was published, a whole academic field has grown up around the idea of "design methods"--and I have been hailed as one of the leading exponents of these so-called design methods. I am very sorry that this has happened, and want to state, publicly, that I reject the whole idea of design methods as a subject of study, since I think it is absurd to separate the study of designing from the practice of design. In fact, people who study design methods without also practicing are almost always frustrated designers who have no sap in them, who have lost, or never had, the urge to shape things. Such a person will never be able to say anything sensible about "how" to shape things either. 
> 
> Poincaré once said: "Sociologists discuss sociological methods; physicists discuss physics." I love this statement. Study of method by itself is always barren, and people who have treated this book as if it were a book about "design method" have almost always missed the point of the diagrams, their great importance, because they have been obsessed with the details of the method I propose for getting at the diagrams.

The diagrams are the '[patterns](https://www.lesswrong.com/posts/eJcYxpwESvMRYGiyo/a-pattern-language-for-rationality)' he wrote of elsewhere. This looks to me like the discovery that if modularity is typically conserved between projects: if you can swap the first-pass conceptual hierarchy of the early selfconscious designers for the second-pass modular hierarchy of the factorizing designers, then you don't need the skill of factorizing to itself become widespread.

[^z12lnv9r6k]: At an art school where I once studied, the students wanted most of all to develop a personal style. But if you just try to make good things, you'll inevitably do it in a distinctive way, just as each person walks in a distinctive way. Michelangelo was not trying to paint like Michelangelo. He was just trying to paint well; he couldn't help painting like Michelangelo.From Taste for Makers