I was one of several parties on customer’s ‘modernisation’ project. They basically wanted an enhanced portal, extensibility, flexibility, integration with their customer support system, integration with their help desk ticketing system, integration with their HR system, all fronted in a single view hosted by a CRM system.
On face value this doesn’t sound too bad at all – great initiative and great objectives.
Trouble started when 3 stakeholders from the customer each stated a totally different end state for this piece of work – throw some Master Data Management in their for good measure and things are starting to fall apart at the seams.
I raised a question on “Where is your integration strategy?”
“…We don’t need integration, that concept is not gaining any traction…let’s move on…”
They then proceeded to talk about integration (called ‘connections’ in this convo) for the next 45 minutes.
I then thought to myself Where has the Application Integration Strategy gone?
Are we too taken with the shiny new things? Is it not important enough to feature? Because we don’t really see it, does it suffer out of sight out of mind….
Cloud does not make these things go away – in fact it makes it worse, with more choice, more standards and more pressures of delivering fast. (This you’d think would be the perfect environment to get your Integration strategy sorted – I agree. We need a solid reliable platform in which to launch our initiatives from)
Let’s look at the case in point:
If we take the above what is known as ‘point-to-point’ solution, each major system talks to the others where needed (sure there might be a few exceptions where for e.g. CRM doesn’t need to talk to *all* the others, but on a whole you get the picture).
To design, implement, maintain and extend this point to point solution 20 years real world experience tells me it’s a nightmare. Let me grab the major ones for you.
- There are n x (n-1) connections required. The solution has many points of failure and is then overly complex. For e.g. the HR system not only receives requests but may also need to get information from the CRM system. This means the HR system needs to know specific details of the implementation of the CRM system and implement their APIs. This effort is repeated across all the other systems in the Solution.
- Little or no flexibility in this solution – e.g. we’d like to replace CRM with a cloud offering, how many interfaces need to be redesigned to achieve this?
- Durability, retryability – what happens if an application is down, can the sending system retry? does that logic need to be built?
- Every system needs to know specific details on how other systems are implemented.
- Far too much time is spent on the How to connect rather than focused on the What are we sending.
- Remember the business value is having these systems integrated and working together as one.
- Implementation takes alot longer than expected due to a) code built in the mobile APIs will need to be duplicated for the HR system when they want to talk to CRM.
- Maintain for e.g. login credentials across the systems is more trouble than it’s worth. Then Single Sign on becomes a great idea, not all systems support it…
- I dare you to swap the HR system out and replace it with another. (I was once on a project where the client wanted to do this, 1 change rippled through to 118 changes in all the above systems. We were touching systems that weren’t even part of the original change)
- No loose coupling at all. Different versions, upgrades of individual systems make cause havoc across the platform. Thus most platforms of this nature stay where they are from the day Go Live was turned on.
- … it’s a tightly wound solution….
Surely the Cloud makes everything go away…. what’s all this mumbo jumbo….
Well yes…and no…
The cloud definitely allows greater flexibility in the choices that we have – that’s for sure.
The cloud has brought about the loose standardisation of Interfaces being REST JSON/HTTP endpoints.
And we’ve seen the advance of various API Management (APIM) product offerings, where your solution APIs can all be wrapped and exposed out in a controlled manner. Some APIMs allow for protocol translation, single sign on, auditing and tracking etc.
I recommend we don’t leave home without it.
This is only half the story – there’s still key elements missing from many of these stories.
The Integrated solution has many moving parts and with the advent of the cloud, this becomes even more prevalent. What is clear is:
A full cloud solution is not the answer for everyone, but the cloud is too compelling to ignore as a business as for sure their next competitive advantage will come from how well they can incorporate cloud offerings into their business. (Which is what I & our teams do :))
A hybrid cloud Solution (some on premises and some in the cloud = awesomeness) is a great choice. BUT the problem still exists… “What happens if Sales force is down? or Xero? or our network connection is down?…do we have the smarts to retry sending the messages to the destination systems?”
If we take the cloud solutions on offer a blended approach is ideal, whether it’s AWS or a combination of BizTalk Server on Premises connected to Azure Power Apps could be a great combination also.
What ever the combination of software is chosen the following points need to be satisfied at least:
- Logging, auditing and publishing business activity monitoring data to analytics is key.
- Transaction support across multiple disparate endpoints – e.g. SalesForce and HR systems. How do I update both these accounts or none? REST/HTTP APIs aren’t the answer.
What does the new world look like?
If we look at incorporating an Integration Layer of sorts, then this solution becomes much simpler due to the fact:
- Each interface (aka ‘connection’) is performed once. Build up a solid system based on a high re-use of interfaces.
- Extending the solution involves replacing one component and updating the Integration Layer. Not every component that talks to it.
- Flexibility is maintained as new components can be slotted in with the Integration Layer the other piece required to be updated.
- Faster time to markets with new Projects able to reuse many of the existing interfaces.
- Deployments and updates are simpler as the greater Integration Solution can be isolated as required.
- …many more….
One of the most fascinating things I find about what I’ve just discussed is that I remember learning about this 20 years ago. Different methods, but exactly the same principles apply. Today we call it something different, but the problem is still the same.
The recent techniques of Test & Learn are all aimed at “How do we get our ideas down to a working prototype/solution asap?”. Which is fantastic.
What is clear…businesses need a clear cut integration strategy and tools to help them integrate fast, incorporate the next cloud offering fast and start doing business…fast!
We need an Integration Strategy/Platform today…more than ever before….