Sunday, August 25, 2013

Reuse is the essence of building blocks in Enterprise Architecture


Would you want to buy a new hammer every time you need to drive a nail? You would soon end up with hundreds of hammers of all colors and sizes, when all you need is one!

Similarly, when creating architecture (or solution) building blocks, a clear headed focus is needed to develop and promote its reuse. It is important to agree upfront that the reason for creating a building block is to promote reuse, and not just solve the problem at hand.

For example - Lets assume that you have created a building block that brokers messages between applications and allows for easy application integration, while maintaining loose coupling. You (and your team) went all the way and evaluated various message brokers in the market, deciding to use RMB - Rajeev Message Broker! :-) It supports publish-subscribe, request-reply and a lot of other message patterns. The project team loves it as it makes their life easy. You are a hero and they throw you a party!

If you are an Enterprise Architect, the fun has barely just started. You are already thinking of proliferating the adoption of this reusable asset, this solution building block that has been created. Any other project needing similar capability does not need to buy its own hammer, err.. application integration tool. Reusing an established building block will result in faster time-to-market, lower implementation cost, lower implementation risk and higher reliability.

Remember, don't just USE.... REUSE! 

2 comments:

  1. Hi Rejeev, I love your blog.

    I just wonder, where are the buildingblocks?

    I am really interested in example TOGAF Building Blocks in any of the architecture domains. Ideally both the Architecture and Solution Building Block complemented with the complementary design principles.

    I would expect to see them perhaps part of an open reference architecture? I only found the Infra-repository.org so far but this is from The Open Group themselves.

    This makes me wonder, is the concept of Building Blocks altogher embrased by the Public Domain? Examples highly appricated.

    Your's,

    Marcel van Eijkel
    www.eawiki.org

    ReplyDelete
  2. Hi Marcel,

    Thank you for your kind comments!

    I agree that concept of building blocks (in its purist form) is not well understood or embraced in public domain. Overall, everybody aligns with the building blocks concept, just because it makes sense. But when it comes to Architecture vs. Solution Building Blocks, things start to become too dry and "geeky" for most stakeholders.

    I think a high dose of practicality is needed when we articulate building blocks to business and other IT stakeholders. Let me take an example in the technology domain:

    As applications in an enterprise move off-premise to cloud computing models (like SaaS), the Enterprise Architect might introduce the architecture building block of "Federated Identity Management". Basically, it will allow identities (user names, passwords etc. ) to be managed centrally so that business users do not have a million username/passwords and that identities can be managed and governed effectively. Please note that there is no technology or solution related aspects here, only the higher level generic expectations and benefits of "Federated Identity Management" building block.

    A "Solution Building Block" can take this further into an implementable, real solution such as ADFS (Active Directory Federation Services), PingIdentity, Okta, or a custom developed federated identity solution.

    I can take similar examples from other domains too. How about I try to do a post using one example from each domain? That will help all of us get to a tangible common understanding and take this discussion forward.

    Apologies for delay in responding, I was travelling last week...

    Cheers!
    Rajeev Bhardwaj

    ReplyDelete

Blog Archive