Search My Ramblings

Wednesday, June 19, 2013

What does loose coupling really mean?

Specifically with integration, I commonly see references or hear the expression loose coupling.  Often the writer speaks about virtualization or abstracting the implementation of the services with something like an enterprise service bus.  However, that alone is not enough to capture the essence of loose coupling to me.

So what is loose coupling then?  Well, in integration I believe it means that 2 or more communicating systems do not communicate directly with each other (no direct binding to addresses, i.e. Enterprise Service Bus) and they use some intermediary component(s) that functionally represents the intention of the integration in both network protocol and data ontology.  That is, client systems communicate with a middle component or service that represents an enterprise proxy for the implementation of the actual service, and uses a canonical data format specific to that industry and purpose.  

For example, if developing an integration solution for human resource management, one might expect the canonical data format for the enterprise services tier would use an industry standard where possible, like HR-XML, to represent the data objects, attributes and relationships.  The services implementing these enterprise operations may be tied to a specific ERP implementation or written in .NET using a custom, scaled down XML format, but at an enterprise level the services utilize standards and separate the client from the implementation in both protocol, location and data format.


Agile Adoption Words of Wisdom

This is an excellent article about organizational change required to truly adopt an Agile methodology.  It isn't simply a development team methodology or toolset, but a organizational decision to change many aspects of how business gets done.

TechWell | Agile Is Not for Everyone (and That's OK)