As businesses evolve and new technologies come to market, inefficient, disparate software platforms, tools and applications can begin impacting performance and efficiency across departments and functions. When looking to integrate such systems, there are a vast array of options to consider which will vary depending upon the type of product (i.e. off-the-shelf, bespoke software, cloud hosted, etc.) and the level of integration services provided.
When engaging with a software development company or integration partner, it’s important to be clear what success looks like from the offset.
Below is a summary of features and attributes we have found to be common within successful systems integration projects, based on working across a variety of industries, which we hope will help you to enjoy success and real commercial returns, whilst avoiding ‘Black Swans’:
"Black Swan projects, being defined as projects with budget overruns of at least 200 percent, based on a term originally coined by Nassim Nicholas Taleb to define low probability events, with a large impact, which, with hindsight, are accepted as being rational and foreseeable."
1 Avoid database level integration
Integrate using services and programming interfaces where possible, as integrating at a database level can potentially bypass a significant amount of business logic and data validation.
Updating databases directly can cause major impact to applications running on this database. There can also be issues when reading the data, where the data may be transformed within an application. For example, where an ID for a department is still being stored as an enumeration in the application itself; this mapping information must then also be maintained by the integration layer.
Finally, a service interface is a contract, when releasing a new version of a system all endeavours will be made to support existing interfaces, this is not the case with the database structure; which may result in failure, or more concerning, the undetected incorrect performance of the integration software.
2 Research off-the-shelf product APIs
Where there are one or more off-the-shelf software products available, research, and where possible prototype against, integration interfaces.
There is often a considerable difference between pre-sales integration options and post-sales integration options, and poor interfaces will quickly turn an efficiently integrated software platform into an isolated suite of stand-alone products.
Understand the API restrictions: for example; is there a limit on the number of calls per day, and also any licencing implications of accessing the software solution via an integration layer?
3 Understand integration
Analysis is required to decide whether integrating with one or more systems will involve the replication of data or the implementation of cross-system business processes.
Real-time distributed transactional systems with message queues are considerably more powerful than replicating data between systems, however, they are also more complicated and require a much greater analysis and understanding of the process flows within and between each of the integrating systems.
4 Minimise data duplication
Avoid having data residing in multiple software systems, and where the data does need to be shared across systems, where possible, only enable updates to be committed in one system with those changes being published out.
Having multiple systems responsible for maintaining the same entities will lead to a number of race conditions and difficulties from an auditing perspective.
5 Modular releases
Where possible, release early and often, and only move back release dates as a last resort.
Research has shown large software development projects, projects with a budget of £650,000 or more, have a failure rate 50% higher than small projects, projects with a budget of £230,000 or less.
Although, as it is not always possible to deliver systems integration projects in stages, consider implementing proof of concepts, prototypes, minimum viable products (MVPs) and beta releases to introduce functionality to end users as soon as possible.