»
S
I
D
E
B
A
R
«
The importance of Architecture Principles
Mar 12th, 2010 by Awel Dico

I came across a blog by Richard Veryard on architectural principles. He argues against the importance of SOA/EA principles by stating that “they may have some limited use, but they are not strong enough to bear the weight that is commonly put on them”. This is only true if the architect misunderstand what the architectural principles are or the architect is unable to link the principles with the reality and measure them. How can you measure the applicability or usefulness of architectural principles? I will share with you my 2 cents thought on this.
Enterprise Architecture, SOA or any other architecture, for that matter, needs to be guided by certain architectural principles. Where do these principles come from? Well, in the first place, the architectural principles must support the Enterprise architecture objectives/goals (which in turn must be driven by business objectives or strategies). That means the principles you put together or use to guide your architecture is not just from no where. They have linkages to the business objectives. For example, the business objective may be to be the best in customer service/satisfaction – customer centric. So, the Enterprise Architecture objectives must support that business objective. The principles must be developed to guide to achieving that business objective (customer first). Your architecture will then be guided by those specific principles.
There is a challnge though. Let’s say you have an architecture that is in compliance with the priniples. But, how do you know the architecture get implemented without losing the core priniples? How do you measure the effectiviness of your priniples? Unless you make sure that they are implemented and you are able to measure the effectiveness, those priniples may be disconnected from the reality (i.e. deployed business solution); in which case Richard’s argument may hold. Here is how you may measure:

  1. Develop specific guidelines based on those principles. These guidelines are NOT abstract – rather they are concrete guidelines that the solution architects, developers, etc use. The developers may not understand the “abstract” principles. You need to translate the principles into concrete guidelines that they understand. To make sure that a single principle is properly followed, you may have to develop many clear and concrete guidelines that the developers use. By doing so, you are saying that “if those guidelines are followed and implemented accordingly, the principles are followed”.
  2. Put together the metrics based on the compliance with those guidelines. Here is where you make sure that your principles are followed through compliance with those concrete guidelines. Here you need a governance process to assess such compliance. How do you measure the effectiveness of the principles? Well, your metrics need to include business related metrics in addition to low level metrics. If the business is happy – you know -:). Your principles are not effective if there are many “exceptions or problems” in complying with your guidelines. In which case you may have to review your principles (or the guidelines that represent them).

If the right principles are developed based on EA objectives (which support business objectives) and the implementation of those principles are followed down to the solution deployment through concrete guidelines (which are meausrable), then priniples are very important for any architecture initiative.

Awel Dico

Using EA Frameworks
Jan 19th, 2010 by Awel Dico

Because of my involvement in SOA/TOGAF practical guide project at The Open Group, I am getting many questions related to the use of EA frameworks in general. I just want to share some of my discussions with people on this topic here. Many enterprises have been (and are being) challenged, for example, on use of TOGAF for their real EA initiatives. The challenge is the misconception that EA framework, such as TOGAF, can be used “as is” for supporting Enterprise Architecture work. EA frameworks are “frameworks” and they are not meant to directly apply to all situations and solve all enterprise architecture challenges the same way. This means such EA frameworks must be viewed as a “guide” and needs to be customized to address the individual enterprise needs. EA framework, such as TOGAF, needs to be customized by taking into account at least two factors:

  1. Enterprise or Organization needs: What is that the enterprise trying to achieve (business drivers) and what is the maturity level of the EA in that enterprise? Is the enterprise ready to undertake complete or partial business architecture to drive Information, services/applications, data, and technology architectures? Or is the focus on information, applications and technology aspects with limited business architecture effort? What level of governance is needed? How good is the existing EA processes to accommodate the applications/services development (in other words, how integrated is the EA process with the common SDLC processes)? Many more such questions need to be asked to properly customize the EA frameworks in such away that the newly customized EA framework can effectively support moving the enterprise from current state to the target state (or achieving the target business objectives). What this means is that newly customized EA framework should help in addressing current and future enterprise challenges. One important thing to note here is that the customized EA framework is not “final or static” by itself – it needs to be positioned to evolve with the enterprise needs.
  2. Architectural style adopted or in use in the enterprise: For example, if the enterprise is adopting SOA style, then the EA framework must accommodate such an architecture style to be of value to the enterprise. Failure to recognize this aspect of customization to the framework leads to disconnected EA work and SOA projects. This is real and you may have experienced such a challenge – i.e. SOA and EA viewed as separate streams of work and a communication gap between the two teams created.

    In addition to the above points, one should also pay attention to the link between EA deliverables and the actual solution implementation projects. Whatever you do in EA, its value is realized only when the artefacts are deployed and show value to business (e.g. customer satisfaction, business agility, etc). The EA metrics (to measure the success of EA effort) are collected based on such values to the business. EA deliverables must guide and support the solution implementation projects. Thus, EA framework customization should include such a linkage to the solution implementation projects.

Bye for now -:)

Awel Dico

Strategic Architecture is very important part of SOEA – Part 4
Jul 21st, 2009 by Awel Dico

Strategic architecture is a part of the Service Oriented Enterprise Architecture Framework (SOEAF) I discussed earlier. In this post I want to share my thoughts on why Strategic Architecture is a very important part of Enterprise Architecture (EA). Many EA discussions I heard this week at The Open Group Architecture Practitioners conference in Toronto indicates that majority of current EA work lack the business architecture component and it is more focused on Information Technology aspect of an enterprise. Because of this it is extremely hard for majority of current EA team to show value to the business in a reasonable amount of time. EA must turn its focus on the Strategic Architecture if it hast to deliver value to the business. If strategic architecture is done in alignment with a business strategy, then the other down stream architectural works (Information systems architecture and technology architecture) will be driven by the business need enabling business and information technology alignment. That is why the strategic architecture is part of SOEAF. If enterprise architecture lacks the strategic aspect driven by the business strategy, then it is highly unlikely that the EA team will deliver much value to the business – rather produce the usual siloed solutions within a segment/domain of the enterprise and as a result reuse across the enterprise cannot be achieved. It is thus very important that each domain/segment architecture is driven by the strategic architecture (which by itself is driven by the business strategy).  The usual solution architectures are part of domain (or segment) – which means collectively they contribute to the overall enterprise solution with the cross-segment reuse potential facilitated by enterprise architecture governance.

If strategic level business architecture is not done as a part of enterprise architecture, then the following could be some of the risks:

  • The segment/domain architectures will be disconnected with no sharable business or IT services.
  • It costs more when cross-segment integration is required. How much it costs the business if the enterprise maintains, for example, four billing systems – which is the case in some telecommunication organizations.
  • Business may make wrong technology decisions because of the disconnection between EA and business.  A good example is the case with the cloud services where the business directly buys services in a cloud (e.g. Salesforce.com services) and fall in to vendor lock-in situation. The vendor lock-in is highly likely if there is no strategic alignment between business and IT facilitated by Enterprise Architecture. That is why SOEAF includes strategic architecture that deals with strategic aspects of business and Information Technology. With the power of the strategic work, the enterprise can benefit from cloud service providers without risking the vendor lock-in situation.  
  • Enterprise cannot see one common view of its customers – For example, I am a customer of one service provider where I have two services (i.e. wireless and landline phone services). My profile is maintained in two places as if I am two customer because the two business lines (business segments) are architected in siloed fashion with no enterprise strategic architecture. One business segment have no idea that I am a loyal customer of the other segment of the same enterprise. Does this ring a bell to you? – “One moment, I will transfer you to the wireless department” says the landline department of the same company; due to the lack of cross-selling capability of the enterprise. You are put on hold with music waiting for the other customer service (wireless) to serve you. You have no time to wait and you hang-up the phone. What a loss – the enterprise just lost one customer!

Yes, it takes a lot of work and re-organization to incorporate such a strategic architecture in an organization with more than one business segments. It may also cost more initially for the transformation. But all the effort and cost invested in strategic architecture pays off overtime with much more stability  and competitive advantage for the business of the enterprise.

Awel Dico

SOA Service Anatomy – When we say “Service” in SOA, what it means?
Jul 18th, 2009 by Awel Dico

It seems there is still some confusion out there as to what a “Service” means in the context of Service Oriented Architecture. Just recently I came across a discussion where “service” is being communicated as just a simple web services interface. That is why I thought of sharing here the definition I used in a presentation about SOA over a year ago. I used some concepts from OASIS SOA Reference Model and added other aspects of service that I think are important. The diagram below shows the anatomy of SOA service – what it really means when we say “Service” in the context of SOA. The usual common picture people use to communicate SOA based service is by using the triangle that shows service provider, service consumer and service broker or registry. What is more important and most of the time not clearly explained is the other view of the same triangle I overlay in the diagram below. That is, service has a description, service has implementation and service is governed. 

Service Anatomy - What Service means in SOA

Service Anatomy - What Service means in SOA

 

In short, the following aspects of “service” are implied or need to be considered when one speaks of service in SOA:

  • The usual high level view
    • Service has provider
    • Service has consumer
    • Service has a registry
  • The other view which is more important is:
    • Service has description. This includes tasks that the provider has to worry about to meet the consumer need and how service can be used by the consumer (for the definition of these terms please refer to OASIS model linked above):
      • Contract
      • Interface
      • Reachability
      • Metrics
      • Functionality
    • Service has implementation. This includes tasks that the provider has to worry about to meet the consumer expectation of the capability of the service :
      • Design (you know how this is important too -:))
      • Code (you know … this is where the meat is -:))
      • Test (yeah.. you think this is not important? In most of the cases this is where the money is spent – cost. You must deal with on the strategy on how to test SOA services)
      • Package (yeah… you think this is not important? Think again… this is related to service versioning, migration, change management etc.. issues. You better have a good strategy on how to package the services implementation before they get deployed)
      • Deploy (considerations of performance, scalability, availability, and other operational needs)
      • Secured (this is missing from my previous diagram – but i think it is important aspect that must be considered)
      • Monitor (why? you must capture some metrics to evaluate if the service is of value to the business as expected. This metrics comes from the top level business service design because that is where they identified as important factors to capture for business use (mostly referred to as KPI). There are also operational metrics that are collected to meet operational requirements – e.g. capacity planning, trouble-shooting, etc…)
    • Service is governed. This includes tasks that the Enterprise Architecture has to worry about:
      • Standards (i.e. service may have to be compliant with some industry standards. Those standards are best specified by enterprise architecture)
      • Guidelines (i.e. enterprise architecture should have SOA principles from which some measurable guidelines can be derived. Services need to be compliant with these guidelines, otherwise the principle is considered not applied)
      • Compliance assessments (i.e. services should be assessed against the specified standards, guidelines or principles for compliance by the governance team)
      • Exceptions management (i.e. it is a reality that a given standrd or guideline may not be followed in under some circumstances. For example the cost of implementing the guideline or standard may not be justified at the moment; and as a result a non-standard approach may be used to implement the same capability required by the business. This is about weighing the pros and cons of such a decision and if allowed then the governance team need to manage that exception. The exception is normally temporary. However there are cases where the exceptions reveal a defect in the principles or architecture itself.  This is mostly the case if too many exception is granted as a result of violation of a given standard or guideline. In such situations, the architecture or principle need to be reviewed and the broken guideline need to be updated accordingly.)

 In the above discussion, I did not mention where the service we talked about came from – I mean its granularity, usefulness from business needs perspective, etc. I assumed that a “service” we talk about here is based on top level service architecture as a part of enterprise architecture. See my discussion on Service Oriented Enterprise Architecture Framework which puts the “SOA service” discussed here in a bigger context.

From end-to-end perspective, I think when we say “service” in the context of SOA, we need to understand the above aspects of a SOA service – its complete anatomy.

Awel Dico

Successful SOA is part of overall EA – First Characteristics
May 8th, 2009 by Awel Dico

 I discussed earlier that SOA and EA should not be seen as separate and competing initiatives. In this post I would like to share my thoughts on the characteristics of a successful SOA initiative. I will first discuss a very useful concept introduced in TOGAF 9. Previously I only discussed an overview of TOGAF 9 here without much detail. TOGAF 9 introduced a way of dealing with EA through architecture partitioning. There are three architecture types defined, namely, Strategic Architecture, Segment (or Domain) Architecture and Capability Architecture.  The relationship between these three architecture types is depicted on the following diagram (taken from TOGAF 9 document).

 

 

TOGAF 9 - Architecture levels

Source: The Open Group (TOGAF 9 - Architecture levels)

 

One of the many main tasks of Strategic architecture is to address business objectives, goals, etc. via some strategic work at high level by identifying and categorizing business segments. Typical enterprise has already some strategy (business and technology) group as well as business segments/domains (some may refer to this as business line) in place. What was missing is the approach taken in doing and linking architecture work across these levels.
 
Strategic architecture work should be done to identify segments or business subject areas. A single strategic architecture may identify one or more segments or subject areas providing horizontal and vertical contexts.  Horizontal is across the segments (e.g. leveraging reuse, etc…) and vertical is within the segment. SOA assessment should be done as a part of this strategic architecture work (both business and information technology) to see if applying SOA approach could be of potential benefit to the identified business segments.  It is possible that SOA may be recommended for a whole or part of a given segment or domain.  Of course, this assumes that SOA approach is recognized and accepted at the strategic level. Some organizations communicate this as a statement of direction for the enterprise and get executives support from the start. This is the first characteristics of the successful SOA initiative – i.e. assessment and identification of where SOA can be of benefit at the strategic architecture level from business perspective.
 
It is important to note here that the above mentioned architecture levels incorporate (or are driven by) the business architecture. Any SOA initiative must be guided or based on Service Oriented Business Architecture (SOBA). Not all Business Architectures are Service-orientation-friendly. SOBA addresses business agility through identification of key business subject areas (business capabilities), their relationships (positioning for business service reuse) and group them in business domains/segments. The various domains/segments further breakdown high level business capabilities into lower level capabilities at a right level of granularity that is suitable for the domain/enterprise.
 
The ”right granularity” of capabilities is important in that it affects the ability of change and business service reuse. Granularity is “relative” – the Albert Einstein theory of relativity may apply here too – what you see and get depends on where you are and how you move! What is at the right granularity level for one may be different for others.
 
In contrast to this, the risky SOA initiative is where SOA is left to pure solution implementation at individual projects level – i.e. technology solution project centric SOA.
 
Awel Dico, Ph.D.