Tuesday 23 September 2008

Architecture as red noise


"I call architecture frozen music."
Johann Wolfgang von Goethe (1749-1832)


The thing is, quite often the architecture we create. or see in already existing system, is more like red noise, than music. Just to mention infamous Big Ball of Mud - it looks really funny - when it is not about *your* system).

We all know, there is no silver bullet out there. Never will. Never mind, we want and need to deal with out job with the tools we have... But! Why, nevertheless, we see the same problems with architecture, from project to project, from customer to customer, from year to year?.. Yes, there is no single solution, but the patterns of the problems at least are quite similar.

I think, we are not able to solve problems in effective way. Yes, the people, who have the rights skills (know, how to manage creation of complex system), who have the right tooling, who have even experience (good and bad, and no silver bullet in the pocket till now) - we are not do the essential part of our job, the part, which supports the whole building of the system. We do not solve problems in effective ways.

Let's take an example - meeting on discussion of architectural decisions. It is quite common kind of workshop, arranged by architect for the rest of the team (as well for customer). During that workshop, architect presents the set of decisions regarding system architecture, after conducted needs analysis, alternative analysis and trade-off analysis. That deliverable - some kind of document, usually - represents the architect's argumentation, *why* he took such decision about specific point of the system.

Here the problem comes: such deliverable is a result of extensive analysis. We, human beings, really bad at doing analysis, and, therefore, taking right decisions *by the results* of analysis, without pre-defined, favorable result. In case of architectural decisions, the common mind path of architect, related to alternative solution approaches, usually based totally on assumptions, previous experience (which may be quite subjective), and inner gut. Here it goes, again.

The human being is similar by its nature to other human beings, and, therefore, produces the same patterns of errors (read, incorrect decisions, related to system architecture). Without proper knowledge of analytical tools, their appropriate application we just cannot be better with our system problems, I think.

Let's try that from tomorrow. Just take any analytical tool you would like to use/haven't used before - anything, related to task estimation, to decision making, to trade-off analysis. And - apply them. Really, that is just so simple - apply them right away. It sounds simple - but, we have a great power of analysis, and we just keep living with the problems in our job, which can, and should be solved. Just take the tool and force yourself to use it right. As for me, I started with two of them: Pros-Cons-Fixes analysis, and Problem Restatement (both taken from Thinker's Toolkit).

Several sources I could recommend:
Using Problem Restatement to Overcome Obstacles
Think you know how to think? Think again

As one of the most fundamental must-have skills of architect I see the inner analyst. Each architect, first of all, is analyst. Then - lead, guide, engineer, whoever. But - without analytical point of view, without positioning yourself as the "point of understanding" between different involved parts in the project, without application of real, working, and time-tested tools - we are just leads without eyes, guides with no knowledge of territory, engineers without arms and experience.
Let's start applying the essential tooling we have - our mind, to its, if not full, at least to some potential.

Quote of the day
I have been impressed with the urgency of doing. Knowing is not enough; we must apply. Being willing is not enough; we must do.
(Leonardo da Vinci)

No comments: