« New kind of comments spam? | Main | Algorithmic Tunes »
March 30, 2004
Structure & Situated Software
Noticing an confluence of articles and posts over the last day or so: Peter Merholz linked to Christopher Alexander's amazing and prescient critique of social spaces structured as trees from 1965. Abstract Dynamics turned in a bleakly evocative post about navigating the rigidly patterned suburbs, and yesterday Clay Shirky sent an essay on Situated Software. Shirky writes "I see my students cheerfully ignoring Web School practices [that valued scalability, generality, and completeness], and yet making interesting work...." In other words, they're making software to be used by a specific social group, and not by an indeterminate"audience" or a demographic. They're making small pieces, loosely joined, benefiting from tools that make group-forming easier. One of Shirky's main points is simple but surprisingly counterintuitive: in most of his students' projects, scalability doesn't matter. It's an idea that most of us almost won't consider, but a designer building software for a group of ten people, or even fifty people, doesn't need to worry about how it will work for tens of thousands of users.
Consider this result of hyperefficient commercial scalability, described in William Blaze's Abstract Dynamics entry yesterday: "What happens to landmarks when every store is a chain? (A)nyone who turns at a Starbucks is going nowhere but in circles... Drive around any populated space, USA and you navigate not by landmark but by pattern." Navigating the suburbs is literally walking the DOM tree, an algorithmic march through a rigid structure, navigating by the neighboring nodes of a tree, the same stores off every highway exit.
And what structure is conspicuously absent from the examples Shirky describes, yet is the catalyst for strip-mall scalability? The hierarchical tree, the technical and experiential structure of most sites on the web. Alexander makes the point clearly (stop and at least scroll through his illustrations on this page if you haven't yet): "...this tree, and the idea of a single hierarchy of urban cores which is its parent, do not illuminate the relations between art and city life. They are merely born of the mania every simple-minded person has for putting things with the same name into the same basket." Real cites, of course, have evolved a certain amount of overlap between functions, spaces, and people; more small pieces loosely joined.
...let us examine the subdivision of the city into isolated communities. As we have seen in the [new] Abercrombie plan for London, this is itself a tree structure. The individual community in a greater city has no reality as a functioning unit. In London, as in any great city, almost no one manages to find work which suits him near his home. People in one community work in a factory which is very likely to be in another community. There are therefore many hundreds of thousands of worker-workplace systems, each consisting of individuals plus the factory they work in, which cut across the boundaries defined by Abercrombie's tree. The existence of these units, and their overlapping nature, indicates that the living systems of London form a semilattice. Only in the planner's mind has it become a tree."
Alexander goes on to point out the particular difficulty of conceptualizing and visualizing semilattice structures. (His example of one, using an abstract painting, is wonderfully subtle.) There are some good reasons that urban planners, just like software designers, are unable to see past issues of scalability, and fall back on tree structures for everything.
(An aside and postscript: it's tempting to put an Information Architecture slant on this; it's one of those rare times when it feels like design is describing semantic structure, not just mechanical structures. But it feels wrong to see in Alexander's "semilattice" information architecture's concept of facets, although there are obviously similarities.)
Posted by Andrew at March 30, 2004 09:34 PM
Trackback Pings
Listed below are links to weblogs that reference Structure & Situated Software:
» Adaptive Knowledge Base Development from Glacial Erratics
At the day job we are finally beginning to make plans for developing the next iteration of IndianaUniversity's KnowledgeBase. To gather my thoughts I wrote a little document that brings together some of the thoughts about [http://www.shirky.com/writing... [Read More]
Tracked on April 6, 2004 01:45 AM
» http://www.abstractdynamics.org/linkage/archives/002374.html from linkage
heyblog: Structure & Situated Software... [Read More]
Tracked on April 6, 2004 08:17 PM