Using Enterprise Architecture to achieve competitive advantage through IT. Are you successful or aggravated?

« Business Architecture Pitfalls | Main | On the intricacies of composing the word “Architecture” »

Creating Practical Standard Architectures

A colleague posed this problem statement recently:

“Identify 10-12 [application] ‘architectures’ that are standard.  The challenge is to build a decision tree to drive the ideal architecture.

Q1: Are there any defined set of enterprise architectures?
Q2: Are there any decision analysis mechanism (like that for determining architecturally significant requirements in ATAM) already available?”

I’ve seen a few companies attempt to do similar although not quite this ambitiously.  Most organizations have started by identifying common architects that are already in use within the organization and generalizing them.  This has the decided benefit that the architects represent technology components already known to the organization and have proven implementations against use cases relevant to the organization.  I fear any effort to define a standard set of architectures outside the context of a well define problem domain (i.e. the environment of a given enterprise) would be too abstract to be practically applied within any given IT organization.

The second challenge is describing the architects in standard ways that are well understood by everyone using the architectures.  Here there are some good works to start with:

The last part of the problem is even more challenging:  Given a problem how does one pick the appropriate architecture? 

Methods like ATAM are designed to evaluate a given architecture against a given set of requirements.  So using ATAM would require evaluating each standard architecture against the given requirement set and picking the one that fits the best; this would be impractical in the real world for more than two or three architecture.  I’m not sure that inverting the function is possible in a generalized way.  However, if as said before, one narrows the problem domain to a single enterprise and a sufficiently small set of architectures one may be able to define such a function.

The other challenge for picking an architecture based on any given problem is ensuring that the problem has been broken down appropriately first.  Most large enterprises have complex problems, but the successful solution is not an equally complex solution but rather a collection of simple solutions.  Each one of these solution components may map to a different standard architecture.  This componentizing of the solution also simplifies the process of matching problems to architectures since it means both simpler problems and simpler architectures.  Complexity is the enemy.

Another technique for managing the complexity is to divide the standard architectures into layers.  If one limit the problem domain to defining standard physical architects (disk, memory, CPU, networks, I/O, etc.) then this starts to sound a lot more doable.  This may not be the ultimate goal, but it's the start the first step in a layered approach that starts with defining standard physical architects, then standard application architectures, data architects, process architectures, security architecture, etc.  Thus the process of mapping a problem to a standard architecture would actually involve picking an appropriate architecture from each layer.  One may find that each layer has a relatively small set of standard architectures, but in combination the layered architectures represent dozens of complete architectures.  The FEA Reference Models sort of takes this approach.

So whereas the goal of defining standard architectures within an organization has many advantages not the least of which are: reduced technology complexity within the organization, increase reuse of both components and skill sets throughout the organization, decrease risk, and decrease cost.  Unless you happen to be the Federal government of the United States of America don’t look for general solution, focus on the problems in your organization and the tools already at your disposal to develop more specialized solutions that give more immediate benefit.  Where there is some effort, there is some success.

TrackBack

TrackBack URL for this entry:
http://www.infosysblogs.com/ea-mt/mt-tb.fcgi/40

Comments

Great points Jerry
There is hardly a ‘one size fits all’ approach when it comes to defining Enterprise or even Application Architectures. The challenge many organizations face is in customizing standard frameworks to their needs. Contextualizing requires a good understanding of the domain in question and a solid grounding in architectural principles; skills that are hard to come by!

Is EA not all about minimizing the TCO by "standardizing" and "controlling" the different IT components and associated architectures being introduced in the environment?

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Please key in the two words you see in the box to validate your identity as an authentic user and reduce spam.

Subscribe to this blog's feed

Infosys on Twitter