Similar to other IT functions, it can often be difficult to
understand the value of IT architecture and to make the case for strong
architectural practice. When you add
solutions as an additional layer of abstraction, this is even more
difficult. In one sense, you are getting
further away from technology and therefore more theoretical.
However, in the case of solutions orientation, this added
abstraction is done for a very pragmatic reason. Solutions based engineering allows us to be
closer to our end customer. This is true
whether you work in an IT organization or within a product group at a software
company. Our solutions orientation
should make it simpler to show the business case for architecture, rather than
harder. Unfortunately, this is not true
for many traditional Enterprise Architecture disciplines. This is not to say that these disciplines
have no value. Not at all. However, they are abstractions intended to
help the technical team order complexity in a way that allows them to design a
very complex system. To the end user or
customer, these complex systems are only of a passing interest. Thus, like a hammer or a nail gun, they
should be used only when necessary. If
the architecture framework is making your life as an architect better and
allowing you to deliver solutions more quickly, then they’re good. If they’re slowing you down, they’re bad.
If we are to claim that architecture has value, we need to establish the core tenets of what a "good" architecture is. This is something that not all architects
take into consideration when building projects or systems. For example, speed of execution is just one benefit of the
core architecture tenet I call Simplicity.
There are tons of different ways of expressing core tenets, but to me
they all boil down to four basic tenets:
I like to express this as a Venn diagram because I feel that
when I design something, there is a huge attack surface of any project. However, the best design is a relatively
small point where the Venn diagram overlaps.
Sometimes, it feels like the circles are the size of football fields and
the overlap is the size of a postage stamp.
Being the eternal optimist, I insist that there must be an overlap
someplace and that I just need to find it.
Core Architecture Tenets
·
Simplicity. Simplicity of design is something than
transcends IT. By definition, the
simplest solution that meets all the design criteria is the best design. Complexity is the enemy. This is true for many reasons (speed, maintenance,
esthetics, etc.)
·
Alignment.
However, the solution needs to be
aligned to the requirements of the business.
If the technical solution does not solve the stated problem, what’s the
point? You need to hit your requirements
or the design is fundamentally flawed.
·
Quality. Something that is done poorly is best not
done at all. It’s always easier to do
something poorly. However, I don’t think
any of us actually aspire to produce poor results. This is true for architecture just as it’s
true for development or deployments.
·
Future Ready. One thing we can be certain of in our
business is change. Whatever we build
will need to be modified going forward.
Unlike things like cars, our designs will most likely be upgraded
several times over their lifetimes. Good
architectures take this into account and allow for future changes.