Steve Burbeck: In biology, the four principles stand together. So should they in multicellular computing
I found the last paragraph jarring. Why are “architecture” and “design” in quotes?
Steve Burbeck: In biology, the four principles stand together. So should they in multicellular computing
I found the last paragraph jarring. Why are “architecture” and “design” in quotes?
Upon further reflection, I think that Steve (perhaps without realizing it) is starting to explore an entirely new perspective.
Take the four principles as a given. Intertwined-ness then becomes a meta-principle. One of the contributors to the success of wikis is the syntax people use. Similarly, HTTP without HTML (or vice versa) wouldn’t have taken hold. Abstractions leak, deal with it.
A related meta-principles is emergence. Wikis emerged from HTTP and HTML.
Another meta-somethingorother is symbiosis. Google rank is an emergent property — it attracts parasites. Stigmergy only works if it is to the benefit of each ant. Capitalism only works if it is in the benefit of each person with cash in their pocket — and if there are laws to limit the affects of the most egregious parasites.
Perhaps another is autonomic.
Perhaps the next step is to flesh out some of these types of ideas, leading up to a “so... you are an "architect”. How do these principles apply to you?"
Crucial to the success of wikis is the RecentChanges page (shades of autonomic?), and the revert button (die parasite die!). This could be fleshed out into a case study, along with other subjects like Hailstorm, Amazon, UDDI, and iPods.
“so... you are an “architect”. How do these principles apply to you?”
No-one calls it genetic architecture.
Very few people see evolution as a design activity.
On your main point, yes intertwined-ness is a meta principle. It happens most often when architectural principles evolve together — hence inevitably co-evolve. And, yes, it has something to do with Joel’s abstraction leakage principle (although I hadn’t seen Joel’s piece on that idea — nice stuff). As Joel points out, some leakage is inevitable because elements (web pages, wiki pages, cells, ants, ...) participate in more than one at a time. So the leaks tend to travel through elements that happen to be at a nexus of several principles hence their behavior affects them all. (I hope that makes some sense...)
The quotes around “architecture” reflect the fact that we don’t usually think of an architecture of messages themselves, i.e., that they should be multi part to deal with multiple architectural features of the system at once. Such multi-purpose messages, in effect, provide the underlying mechanism of the abstraction leakage! Kinda subtle. Perhaps I should remove the quotes and say that explicitly.
The quotes around “design” were intended to put a little doubt into the notion that we can “design” something so complicated. We try, but then we watch helplessly as unexpected emergent properties pop up.