It seems everyone these days works on solutions. Thinking
about one solution or another, solving problems, discussing or arguing with
others on which is the right solution or not. People tend to concentrate on
solutions because a solution to a problem is the end goal. There is also a
psychological aspect to it - whoever’s solution is adopted proves their
solution was superior (supposedly - in my experience that’s not always the case!).
It is human nature to answer questions - to create
Of course The Architecture Paradigm™ is also about providing
solutions and dealing with their complexity, but the approach focusses much
more on understanding the problem - for when you truly understand a problem,
solutions tend to be:
much easier to see and
much more effective and efficient.
However The Architecture Paradigm™ also recognises that the
approach must integrate with work that is to come later, namely Engineering.
An important distinction is that we should aim to Architect
horizontally and Engineer vertically. This distinction allows us to explain a
fundamental confusion that people have when people are trying to explain or
advocate the architecture of something, namely, that just because an Architect
is talking about the fundamentals of the whole, it does not mean they are advocating building
the whole, immediately. By definition, fundamentals
are high level, and by definition, the whole is big.
Comments such as “yes that’s all very good but it’s all high level, and it’s just too
big, we can’t do it all (in a short space of time), so we won’t do
anything at all” illustrates that confusion.
Architecture, by definition, is high
level and is big. So the next time
someone says that something Architectural is “high
level and big” you should say, “Yes, It
is! If it were not high level and big, it wouldn’t be Architecture!”
Think (and plan) strategically (Architecture), act
When we say Architect horizontally, it means that
Architecture tends to (should) consider the fundamental structure of something
large and complex (If it were not large or complex there is little need for
Architecture) and for that you have to (should) consider the whole. We also say
horizontally because Architecture tends to (should) layer things and is
concerned with systemic qualities and capabilities. Because Architecture tends
to (should) consider things from a Contextual and/or Conceptual and/Logical
perspectives this allows us to consider the whole.
This is in contrast to Engineering where the whole tends not
to be engineered at the same time. For this reason we say that we Engineer
vertically, that is, we utilise horizontal Architectural Structures but build
in an end to end fashion.
Architecting is more concerned with WHY we need a solution
which largely involves asking questions and understanding things. Engineering
is more concerned with HOW the solution will be made real which largely
involves creating solutions and talking.
It could be said that Architecting and Engineering are two
sides of the same coin…