Thursday, March 21, 2013

Four Architectural Tenets


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.

No comments: