Saturday, 22 December 2012

Spaceship Earth


There is the (correct or not) story Steve Jobs choosing the personalities to appear in the „Think Different“ campaign. One of the “crazy ones” to appear is Richard Buckminster Fuller, a person Steve Jobs was particularly fond of. Both, with Buckminster Fuller’s Operating Manual For Spaceship Earth being published at the same time, admired the “Whole Earth Catalog”, a book Jobs’ took his famous quote “Stay hungy, stay foolish” from. Their admiration came from the trust in self-regulating systems, more specifically the belief that a better society could be built on the foundations of technology. This view was shared not only by them but similarly in economics and urbanism, which had at the same time discovered cybernetics and were busy weaving everything into Gaia theory.


via Andrew Reynolds


Emergence touches some aspects of self-organization and maybe even Gaia theory. The difference is, though, that emergence does not assume a stable state but rather “Black Swans” – Disruptions, it embraces change.

You can illustrate the difference if you look at the iOS and Android (or Windows) ecosystems. iOS is like “intelligent design”, it creates a sophisticated, stable state by aristocracy. An invisible hand shapes the ecosystem. But Adam Curtis uses the picture of Buckminster Fuller and Hippie communes to show that obedience to this stability in favour of egalitarianism is not always best. Actually, making everything the same is industrializing it and thus, maximizing differences. Even real world architecture accepts that it cannot be eternal without authority. Android is the other way round. It’s chaotic, nudged by an evil force, Google. While this force is always tempted to control the system, it realized that innovation can only happen from within. While the system is less robust, more fragile, it is also quicker to adapt. 7-inch tablets, wrist watches and Lego Mindstorms can only happen with Android.

IT Systems Architecture is quite similar. Of course it’s stupid to start from scratch every time you build a new system. But it’s as limiting to have an architecture department dictate every change. Focault showed us that individuals which are exposed to a system will always try to use their power, turning the system into a machine. Hence, industrializing it and stopping innovation. Allowing to stay on the edge by managing properties at the same time is what systems architecture is about. Looking at nature and embracing emergence in order to achieve resilience is a virtue. But narrowing down natural organizations to a randomly chosen system, calling it perfect just to be able to cut everything else down is a tragic. Regardless whether you call it Mechanisazion, Singularity, Ephemeralization or Machines of Loving Grace.


As Jez Humble writes in his review of Nassim Taleb’s Antifragile: “The problem with robust organizations is that they resist change. They aren’t quickly killed by changes to their environment, but they don’t adapt to them either – they die slowly”. Or, as Adam Curtis would say “they are stopping people who want to change the world. They’re actually even stopping people from having the framework to think that they could change the world”.

Sunday, 9 December 2012

RfC: Decoupled Client Architectures

Preparing a talk about decoupled client architectures (coming from Multi-Screen/Responsive Design et.al.) I am trying to work out the different trends.

The currently most trending client architectures could be:
1) SOFEA (as in Flex, GWT, AngularJS, Backbone.js for instance)
2) ROCA (as in Play for instance)
3) CQRS (might be orthogonal, not sure, maybe Calatrava and Cocktails could be an example)

If I try to categorize them, ROCA stands out because it relies on "Unobtrusive JavaScript". So obviously it could be considered "Static" rather than "Dynamic" (i.e. the representation is fixed, might only be augmented for usability reasons). SOFEA and CQRS differ in how they handle parallel events. SOFEA stems from a more traditional GUI heritage, abstracting client/server away from the client, while CQRS makes the client very aware of parallel events by forcing it to react to events. That's why I would consider SOFEA close to ROCA, but have an independent representation which can only work locally without the server because they quite heavily rely on something coming back. I am not yet convinced the distinction is rock-solid as one could also argue ROCA is asynchronous because it allows for more versatility by enforcing hypertext.

Hence, a possible matrix could be:



Now, the lower right corner is native Android (not web-based so it does not really count) because Activites (Screens) themselves are usually rather static but rely on messaging and have almost no control about the task flow.

Glad about comments.