Sunday, 21 July 2013

Something between Micro Services and ROA

A post from July 2013 on Microservices I never finished but now, in 2014, like to reference. It's unchanged, so take it with care and read Fowler's and Richardson's stuff first.

I've read two interesting articles recently one on Divide and Conquer and another one on Simplicity*. Both advocate a new pattern of maximum decoupled services called Micro Service Architecture (by Fred George).

...

This reminds me of NoFlo and Mathematical Visualizations and Abstractions. The strength of Micro Services is not the Continuous Deployment or Decoupling but enforcing to think about organization and the connections of functionalities, because one cannot simply tangle them.

...

However, Micro Services are still services, which means verbs. If they would be nouns, there would be no need to manage tangling because the complexity would already be in the hypermedia.

Maybe something in between is the future of Software Engineering, where Data is managed in REST but logic as Micro Services can be moved between the tiers, as horizontal view of vertical data.

....

*) The solution to this within Yammer is DropWizard, an approach going in the direction of Cell Architecture, with Autodeploy features added and a noun-based approach. A little bit like the Java answer to the 12 Factor App and Docker but, in my opinion, too much of a data expose layer with some PaaS candy.

Sunday, 26 May 2013

Design Thinking for Ecosystems

Bret Victor’s talk about “Drawing Dynamic Visualizations” (via Stilkov) inspired me to go a little further on design thinking. Not in particular because of his amazing visualizations but rather his quote of Alan Kay referencing Jaques Hadamard, who did a survey amongst great mathematicians what kind of tools they use.  In this study Hadamard found that only a few of them “claimed to use mathematical symbology at all […] they did it mostly in imagery or figurative terms”.

Alan Kay in Bret Victor's Talk

I am sometimes surprised to see hardcode-science-educated colleagues struggle when I apply techniques and methods learnt in design and architecture school. Sometimes even simple brainstorming seems to disqualify me as proper nerd peer. This also applies to systems or enterprise architecture when I draw systems in the size according to the importance of their interfaces on the whiteboard, print out code to show its asymmetries or refuse to include technical layering in early system drafts (in the end it’s all indirection).

Design Thinking is everything but new – d.school has shaping it for a while. But via the organizational implications mobile is putting upon enterprises, it’s entering the world of technology architecture rapidly. Agencies like R/GA, Frog or recently-Accenture-acquired Fjord take giant steps towards the convergence of innovative service and product design with technology. What they call “functional integration” is often coined an ecosystem in the technology world. It gets more interesting though if we ask why this integration has not reached all the platforms we know of. Apple is usually considered one of the best ecosystems – yet, its technical platforms are surprisingly heterogeneous and task-based, you could argue skeuomorphic in the way they act. Android and Windows 8 are much more “flow-based”, trying to support an externally planned long-running activity through multiple channels. In a way, they are more technical – but then again, in the long-term, they might very well bring the benefits of good design: a product that is unobtrusive, long-lasting, essential and pure.

Our architectures must become like good design, like an unobtrusive ecosystem that shaped the components living in it. As Triarchy writes:
“Deleuze and Guattari talking about the structural and genetic aspects of organisations and the need to consider the shape of the formed organisation on the structural plane as well as the evolution of the formed organisation on the genetic plane. This echoes the debate about whether to prioritise structures or processes in management. For D and G, it's necessary to do both.”

Or as Bjarne Stroustrip, again quoted by Bret Victor, said: “A lot of thinking about software development is focused on the group, the team, the company”. Evolution, i.e. predators, are important in emergent, especially in agile, iterative systems. However, systems don’t end in themselves; they need to fulfill a purpose. In a world where all kinds of systems are possible, design thinking can find this purpose.

UPDATE: A good write up on why design thinking is a discipline, not a process: http://www.fastcodesign.com/1663558/design-thinking-is-a-failed-experiment-so-whats-next

Thursday, 25 April 2013

Ätzende Architekturmetaphern

On JAX 2013 I gave a talk "Ätzende Architekturmetaphern". The main thesis was that software architecture has arrived at a point very similar to one in the history of urbanism, where two main streams merged. The one coming from the tradition of society, the "organic" one. The other coming from the machine age and functionalism, the "mechanical one". Via a short detour over emergence, a new kind of theory materialized - what Vidler called "the third typology". It lead to a new approach of "bottom-up" research, cumulating in the analysis of informal architectures, i.e. slums. This new way of critical theory could very well apply to the current state of our profession, where we are looking for a way to include resilience, rhizomatic structures, information flows, evolutionary design and agility into our architecture.



As Prezi does not feature longer transcripts, this is the reading list (received on April 25th 2013):





Sunday, 31 March 2013

Functional architecture


An addition to „Alphabet and Algorithm“: Mario Carpo goes on, telling how Giedion looked at repetitive tasks (and eventually the Japanese tea ceremony) as a precursor for our technology. In “Rethinking technology” I have once read the marvelous story of Oliver Evans and his magic machines. It reminded me a lot of the autocracy in “Walden” or “Just enough architecture”. Giedion was one of the ideologists behind CIAM, postulating separated districts and as means to achieve at a new architecture of “human scale”, a new humanism through the “functional city”. This made me think on Japanese cities and its structures that emerge out of simple rules, almost like A New Kind Of Science. If we could establish as simple rules and boundaries we could govern systems as efficient and elegant. Creating a functional architecture that actually matches organizational systems. If this would be possible we might eventually forget about technology.

Looking forward to read “Architectural Principles in the Age of Cybernetics” which I found researching for some keywords. It connects Giedion’s work to the Cyborg Manifesto – something I have become curious about again after watching “Real Humans”.

Saturday, 23 March 2013

Architecture after art


In his “six memos for the next millennium”, Calvino quotes an introduction to the Chomsky/Piaget debate which lists two metaphors for the emergent development of life forms: The crystal, representing invariance, and the flame, representing stability in motion. The two, he claims, converge in the metaphor of the city: “The invisible cities … a singular symbol concentrating all my reflections, experiences and hypotheses”.

Ersilia, the most cited invisible city, standing for internet relations. (C)   Delavega, Ephemera + Lascarr


I am a huge fan of using urbanism as a model for software systems. The examples of using houses to illustrate relationships between components are just too static, representing at best the crystal. Often, leaky abstractions are drawn (like decorators to ornaments), adding no real value to the discussion.

One could argue that even the metaphor of a city is incorrect and we should rather rely on pure emergence within benevolent dictatorship. In my opinion this would just be the flame* (Not Nero’s hopefully). Viktor uses the Bonsai as a model for software architecture. Small decisions lead to a final picture – what Smolander calls the decision process in his four disciplines of architecture (the others being the blueprint, the literature and the language). I’d like to be free in the decisions, like the flame, but limited in its dimensions, like the crystal. What I like about the Bonsai model though, its reference to Ikebana, in Garr Reynolds words: “Empty space is as important as the positive elements […] Space allows other elements to […] connect”. Japanese cities are built differently from European ones. More central planning is applied, districts are clearly separated, but on the other hand the city is built in harmony with nature. Tatami mats are the traditionally used not only to cover Japanese floors but to actually define the floor plan. Japanese cities are complex patterns, defined by simple rules for spaces and floor plans. Applied to large software systems this would mean we take into consideration environmental qualities and turn them into simple rules, like Haiku poetry. Or, as Calvino says “Poetry is the great enemy of chance”.

Recently at the Prado it was fascinating to see how the style, e.g. of Tizian, of paintings was preceded by renaissance architecture. The other day it struck me in an exhibition on Paul Klee’s influence on Japanese architecture. Buildings like the Sendai Mediatheque reference his paintings in their dynamic structure – both the flame and the crystal. There is no reason why architecture cannot come out of art, it does not always have to be the other way around.

*) Interestingly, the Netherlands are very well known for planning cities top-down. In this context of the blog post it would make perfect sense to discard the metaphor.