Technorati Profile Blog Flux Local IT Transformation with SOA
>

Friday, June 26, 2009

The Architecture Process

The progression of the architecture definition process begins at stratospheric heights, moving all the way down to the ground in what is hopefully a smooth-landing implementation rather than an uncontrolled crash. All architecture definition processes should follow a top-down progression. As discussed earlier, this progression is grouped into levels: Level I representing the most abstract steps, and Level III dealing with the detailed design and engineering.

The objective of the Level I process is to develop a conceptual architecture model that properly mirrors the business process it is meant to solve. In order to be meaningful, this model must offer an end-to-end view of the defined scope; so the first Level I task is to define the scope of the architecture.

At this point in the process it is fine if the model is suitably high-level, otherwise you could trade-off coverage for specificity (to abuse the cliché: you could fail to see the forest for the trees). At this early stage you should resist the impulse to over-define the solution. I say this fully aware that a common criticism of architecture is that, due to its abstract nature, it is can become too ethereal and impossible to implement. The alternative, however, is to fail to develop the most flexible solution in an attempt to tackle detailed implementation concerns such as performance or operability. Remember, God was allegedly able to create the universe in six days and then be so satisfied with the results that he could rest on the seventh day (I still contend He missed out on quality assurance). You on the other hand, have to take the more humble view that, in all likelihood, the solution you define will not be perfect initially. Your focus should be one of flexibility. Architectures defined under the pressure of parochial concerns often end up being the opposite: stilted and monolithic.

A composer represents a symphony in a musical score and a building architect conveys her vision through the use of a mock-up. Likewise, a good IT architecture model should be fashioned in a manner that business people can relate to. As a high level construct, the architecture model does not need to depict all the elements needed for a proper technology solution, but it should serve as the basis from which the detailed technology components emanate. The visual representation of the architecture model is known as the Architecture Reference Framework. Creation of a powerful framework as a communications tool is a key ingredient to the success of the architectural process.

Last in Level I list, you will need to provide the bridge between the abstractness of the architecture model and the reality of the technology design. This bridge is provided by the definition of tenets and standards.

For example, the United States of America was formed as a federated republic with three independent powers to ensure checks-and-balances. This arrangement represents the architecture model created by America’s founding fathers. The Constitution describes the standards that define the workings of this model, and the Bill of Rights represents the tenets.

Like the Constitution, which can be amended according to Article V, the standards can be further refined into a more detailed form as the architecture development steps are followed. Standards should not be seen as an inflexible mantra never to be deviated from, but they do provide a foundation against which to measure technology decisions.

Now, like the Constitution, which seems like a nuisance at times to politicians, architectures are sometimes seen as an expensive burden in terms of performance and practicality. The reason for this is that oftentimes, people attempt to reify[1] the architecture as opposed to instantiating it[2]. Attempts to reify the architecture by trying to implement architectures in a too-literal a fashion will usually result in contrived, inflexible systems. Instead, the architecture model, tenets, and standards should be seen as a kind of Rosetta stone for the purpose of translating the more ethereal architecture concepts into more concrete, practical implementations.

I present the view that architecture processes should be driven from a Top-Down perspective. There is, amazingly, a school of thought out there that proposes the idea that a successful implementation can serve as a baseline pattern for a new architecture. This bottom-up view is most commonly espoused by some extreme proponents of Agile methodologies who have forgotten that methodology’s forte is in applying quick development and implementation processes; not in the creation of comprehensive, repeatable frameworks. A detailed implementation, no matter how well executed, cannot constitute a true architecture because it is an implementation; one that intrinsically lacks an appropriate level of abstraction. In the end, “architecture solutions” derived by trying to generalize a successful implementation end up being so narrowly defined that the best one can hope for is to use them as the proverbial hammer, turning everything into a nail.

Moving downwards from the Space Shuttle-height Level I, the Commercial Jet Level II architecture deals with the current and target architecture models that map to specific business functions.

A drum-roll here!

We have finally arrived at the technology level that ultimately corresponds to the domain of Service Oriented Architecture! In Level II we deal with the various methodologies and processes needed to define the services’ ontology and the enterprise design for the entire SOA fabric. Later on, I will expand on this level (after all, we are dealing with IT Transformation with SOA!).

There’s no arguing the fact that the architecture should ultimately deal with practical details, it’s just that the mapping to reality is more of an engineering exercise; not an architectural one. Call it semantics, but Level III is actually a stage dealing with the engineering and detail designs in which the architecture principles are correlated with specific technology elements and pragmatic tenets; not to wash-out the principles, but to apply them. Practical trade-offs can be made here to ensure the system will perform under real-life situations. Engineering in Level III is when and where you can and should address all questions of performance, practical scalability, and operability; not before. Hopefully, your great work at defining flexible architecture principles during the Level I and II steps will make this engineering effort easier.

Engineering in this sense is the art of translating the architecture patterns into real world solutions that take into account well-known practical implementation constraints. As such, the definition of the Level III architecture is more about the practice of engineering .

Remember this key dictum:

Architect for Flexibility, Engineer for Performance.

The engineering and implementation processes are responsible for instantiating the abstract architecture into a concrete form. Level I and Level II Architecture may have defined the need for a glass ceiling in the structure, but the engineering process will decide the thickness and brand of that glass ceiling. The strategic engineering role will seek further reuse of common solutions (e.g. use same glass manufacturer for all glass ceilings), without infringing on the overall architecture guidelines. Architecture is all about doing your best; engineering is all about doing what’s best.

Next week, we'll go on how to define the Architecture Scope. The very first Level I activity.



[1] The Webster’s Collegiate dictionary defines reification as, "to regard (something abstract) as a material thing." People who assume a flag “is” the country are reifying the abstract symbol of a flag. An Architecture that depicts a logical system as being completely modular should not be reified as an implementation that demands each module be run in its own computer.

[2]To represent (an abstraction) by a concrete instance”. Merrian-Webster.Online.

Labels: , , , , , , , , ,

Friday, June 19, 2009

The Architecture as Foundation for the Technology Solution

While your executives should be able to understand the “What” and the “When” as defined by the technology strategy, it is in the “How” that the magic occurs. So, “How” do we do things?

Defining the “How” is an art; not a science—an art expressed around the creation of the architecture. Still, you should always ensure that, if the architecture is to meet its goals, you keep an eye on the way the architecture supports the strategy. Think of how a building is constructed . . . If the business plan is “Promote Religion”, your strategy could be “Build a Temple”; if your business is to “Enable Commerce”, your strategy might be “Build a Mall”. The architecture should match the strategy just as the strategy should match the business. How you architect a Catholic Church would be different from how you architect a Synagogue. There are in fact a set of patterns and principles that drive the design styles for each of these buildings.

Still, the fundamental question from the technology perspective remains: How do you design the temple or church to build? “How” do you build these structures?

What’s the best architecture?

Well, 99% of the time the answer to that any given question (architecture or otherwise) is that “It depends”. Neither will you arrive at the correct architecture by blindly following a set methodology. If it were that easy to dissect and replicate an expert’s judgment, most “thinking” jobs would have been taken over by computers long ago (do you remember all the hype about expert systems supposedly being able to capture and replicate domain-specific expertise?) No, defining and executing the “How” is what justifies your paycheck. Creating the architecture requires inner judgment, a judgment that’s the inherent product of many years of experience combined with a very high dose of common-sense.

This is how the federal government defines architecture.[1]

An enterprise architecture is a strategic information asset base which defines the business, the information necessary to operate the business, the technologies necessary to support the business operations, and the transitional processes necessary for implementing new technologies in response to the changing needs of business. Stated differently, the enterprise architecture is a strategic asset repository, which consists of models that define the current and target architecture environments, and the transitional processes for evolving from the current to the target.

A bit of a mouthful, but what did you expect? Remember, this is a definition from the government. So, to put it more simply, a modern architecture must meet the following conditions:

1. Provide a unified, end-to-end systems approach to technical architecture and design. In other words, it should provide a Unified Architecture Reference Framework. This framework should converge, consolidate, and functionally align the various technology elements in a coherent manner with the business.

2. Define the architecture patterns the company will live and die by. At its apex, the architecture must follow what I call a broad theme. Here I suggest that if the architecture is to have the required flexibility to properly meet the business objectives, the broad theme ought to be the use of the service oriented paradigm (SOA).

3. Incorporate principle-based evolution to move your company from its current state toward a target state. This includes a roadmap of development initiatives that incorporate the adopted strategic tenets and standards.

As shown in the diagram above, the process of architecture is ultimately a process of abstraction. Unfortunately this is often confused with the idea that architectures are just a bunch of un-implementable constructs.

It is your mission to ensure that the architecture is viewed as a stepping stone to a process that will ultimately lead to concrete solutions. This process should have a top-down approach that progressively moves the architecture from a high level definition down through levels of finer detail:

· Level I, the highest conceptual level, contains standards, current architecture, architecture segments, sub architecture models, target architecture, strategic direction, transitional processes, and external architecture drivers.

· Level II breaks down the current and target architecture models to cover specific business functions and technology.

· Level III further breaks down the technology architecture into data, systems, and infrastructure.

Next week I will cover the specifics for each level in this process.

Enjoy!


[1] http://cio.gov. Note that I chose to use this government framework, but I could have just as easily chosen other well-know architecture frameworks such as the Zachman framework. I believe that no one framework is superior to another as long as you stick to the chosen model.

Labels: , , , , , , , , ,