When we set out to build Seamless, one of the things we focused on, quite obsessively, was that we should reduce risk in a software delivery project. Admittedly, this is a reflection of the backgrounds of our founders: delivery of software. It also vastly undermines the value of delivering Seamless as a managed service. Perhaps we’ve done ourselves a disservice?
Erm – let’s not get ahead of ourselves, have we actually addressed delivery risk?
In the first instance, I’d like trumpet our engineering a little bit. If we need to connect to a relatively modern API (think RESTful or SOAP), we typically have data syncing in under a week. Once we’ve “proved the pipe” (demonstrated that we can move data between source and target), we can shape that as necessary to meet the business requirement. As this is readily demonstrable, the delivery risk is greatly reduced. There is no longer a long period of writing code and hoping for the required outcome.
Getting there is only half the battle
As old hands at “change the business”, we may have fallen into the trap of forgetting about “run the business”. If you’ll forgive the cliche, delivery of a new software solution is the beginning of a journey rather than the end.
A data integration is a living piece of infrastructure that needs to be operated. Even if there are no changes to the business requirement, integrations need to be looked after and cared for.
- Is the integration able to connect to both source and target?
- Is the volume of data being moved roughly in line with expectations?
- Does the integration have enough oomph to ensure that data is sync’ed within the required timeframes?
The Seamless monitoring features, including meaningful alert content, means that keeping tabs on these questions becomes part of the regular operations monitoring regime. Additionally, alerting on exception means that you can assume all is well until told otherwise.
Integration issues are often a symptom of broader problems
One thing we’ve observed is that often issues with the integration are just symptoms of broader problems. Our monitoring is proactive (we go looking for issues) and our reporting is sufficiently detailed that we’re able to help Seamless users spot and trouble-shoot underlying issues, often before they’ve noticed them themselves.
- Are both the source system and target system accessible? If Seamless is unable to reach systems, is this because of an underlying systems issue that needs to be addressed?
- Are there data mismatch issues between source and target? Often this is a case of changes to reference data in one system or another.
- Are data volumes completely outside of the expected data volumes? If so, is this driven by a something in the business (e.g. a sales promotion) or is one of the systems experiencing an underlying issue?
In 2017 we had only one service availability issue. Sure – we’d like it to have been none but, if there’s going to be some downtime, let’s at least handle it elegantly.
In July 2017 there was a short-lived Azure UK connectivity issue. Our alerting meant that we knew it was happening before it was confirmed by Microsoft and we were able to manage expectations across our client base. In turn, this allowed clients to manage expectations within their user community. We also provided the option of redeploying to another Azure geography. Thankfully, the outage was contained to a few non-business hours (for our UK customers) and there was no need to exercise any of these options.
The underlying Seamless service remained live and, as connectivity returned, any data had been “caught out” between source and target was quickly sync’ed by the service.
The only rule of business requirements is that they change
One of our first prospects for Seamless was a company who, as a result of an acquisition, found themselves with two software platforms for managing helpdesk tickets across their considerable IT estate. As part of the merger process, a vendor had written a point-to-point integration which sync’ed relevant tickets back and forth.
Six months down the line, there was a need to change the rules for which tickets would sync between the apps. After months of avoiding the question and 3 days of consulting work (on fees), the vendor quoted tens of thousands of pounds to change the integration. These were well known, well documented apps with mature APIs, updating the integration should’ve been a piece of cake. It became easier to change business rules inside the company than to change the integration and that’s just not how IT should work.
The use of config and straight-forward mapping features within Seamless means that meeting the needs of changing business requirements doesn’t require re-engineering entire integrations every time a field, a data map or an option set changes.
Not every IT organisation is the same
This blog post was, in part, inspired by a conversation with a prospective client. In our initial conversation, the primary concern was about delivery timescales of the integration requirements. As the conversation progressed, it was also discussed that the broader procurement strategy was to use contractors to deliver software with a view to streamlining the size of the in-house IT team. That’s not uncommon, by their very nature, project teams are short-term creatures designed to achieve an outcome (rollout of new software).
In discussing why Seamless may be a better option than using contract developers to build a point-to-point solution, I stressed not only the delivery risk and timing considerations, but that the managed service remains in place after the project team is stood down. This enables the in-house IT team to focus their effort where they can deliver more “bang for buck” whilst the Seamless monitoring ensures that when issues occur, the IT team are quickly informed with meaningful information to trouble-shoot any underlying systems issues.