Technology Blog

Coupa is a company of talkers, passionate about sharing tips, tricks and advice for improving finance and procurement and saving companies of all sizes time and money. But we’re not the only people with opinions and ideas. We’d love to hear from you so join the conversation!

 

Integrating Applications: Let’s Get Real

 

integrate appA Disciplined Approach to Building Application Integrations in the Real World

 

Integrating applications to support end to end business processes that span different functions across an enterprise is a requirement that is probably as old as the software industry itself. What has evolved are the tools and patterns to support this need - from custom code, to Message Queues (MQ), to Service Oriented Architecture (SOA), to an Enterprise Service Bus (ESB), to an iPaaS (Integration Platform as a Service) to APIs, to Microservices and more.

 

These technologies and platforms have made the task of integrating systems easier and reduced the time it takes to do end to end system integrations.

 

However, it is important to understand what you want to look for in a platform and what it takes to build application integrations right. As the platforms have matured, so have the stories and claims from vendors about what they can do for you.

 

“Integration wizards.” “Double click and integrate.” “Drag, drop and integrate.” These marketing campaigns make it sound so easy. Well, here's my marketing campaign: Get real. In the real world, complexity and heterogeneity will have to be managed. Millions of transactions will flow. Billions of dollars will be exchanged, and reliability will be paramount. Do not waste my time on these immature sales pitches. Don’t tell me, “We have hundreds of integrations.” That’s nice, but does that even matter? How many customers do you have that have used the “wizards” and the “drag and drop” to build an enterprise scale integrated solution – yet to meet one.

 

What really matters are capabilities in the platform that can be used to drive true value to your enterprise:

 

  • Is the platform capable of scaling, and what architecture does it have to support that scalability?
  • Does the platform truly support open standards that can give you the flexibility to connect and integrate a diverse enterprise application ecosystem? In today’s business world only one thing is certain: The business you support will change, the applications you need to integrate with will be different in a few months, and you need to be prepared to support that change.
  • How does the platform support change, in terms of its ability to support versions and backward compatibility, and deprecating functionality?
  • Does it have in-built capabilities to manage failures when they happen--and they will happen.

Truly evaluate the platform for its capabilities that will help you drive real value.

 

Implementing the Integration Solution

 

Once you have chosen a platform, be disciplined at implementing it. However smart the technology is, it cannot implement itself. Certain fundamental practices need to be followed to see adoption and success. Here are the top 5 focus areas for implementing your chosen integration platform:

 

1. Button up your architecture, design and code patterns

 

It is surprising to see mature IT teams still thinking of building point to point integrations today between applications. Putting the right architectural and design patterns in place is essential for success. However, don’t overdo it. We have all seen enterprise architecture discussions that can go on for ages. Do not let that happen.

 

Define an architectural/design decisions guide so that you do not have to debate and find answers to the same questions over and over again. For example, when should you use APIs vs. the batch model of integration? APIs are not always the best answer to every problem, so define when you want a real-time integration and when you do not, and what pattern you will follow in each case.

 

Utilize the strength of the platform you have chosen and publish a patterns catalog for all development teams immediately.

 

Utilize code frameworks/capabilities in your chosen platform that will allow you to implement logging, auditing, error handling and security functions in a consistent manner so that every implementation can reuse these assets and not have to reinvent the wheel.

 

2. Plan for quality control

 

Plan for unit testing, system integration testing, user acceptance testing and performance testing phases in your project. I have seen teams spend months evaluating the functions and features of a platform, but when it comes to implementation, they forget to even includes days in their plans to test what they built in the platform. Don’t be that team.

 

Utilize tools and frameworks for automation. Testing of integrations need not and should not be done manually. Automate testing using testing tools and frameworks, and define a test methodology that can be repeatedly used in all projects and implementations. Just as with architecture and design patterns, testing patterns need to be documented and followed so that every implementation team can benefit from a common model.

 

3. Choose the right implementation methodology

 

Agile’ may be a great buzzword and a methodology that definitely brings value but do not jump on to buzzword bandwagons without truly understanding what you want to achieve and evaluating your maturity as an organization to adopt it. Methodologies like Agile are more suited for certain forms of development and require the presence of right skills, roles and ownership in the team to achieve success.

 

Use Agile if you are ready for it. If not, the key principles of Agile - sprint based development, focus on tangible deployable results in short sprints, incremental and iterative development models can very easily be applied to integrations development without going all out to implement the purest form of Agile development.

 

Just as with architecture, design, code and quality patterns, formalize on a methodology your organization can repeatedly adopt.

 

4. Choose the right organizational model

 

There are two key responsibilities for teams engaging with the integration platform. The core team owns the integration platform and is responsible for building out the application architecture, design, code, quality and implementation methodology patterns. The project teams adopt the recommendations from the core team to utilize the integration platform in various projects.

 

Organizationally, an enterprise services teams needs to take on the responsibility of the core team that owns this platform. This is a separate team within the IT organization, usually 3 or 4 people, including a senior architect/manager with 2 or 3 senior developers that become the face of this platform within the company. They help to evangelize and get the platform adopted the right way, while also getting involved in projects based on need and the strategic nature of the project.

 

5. Quantify value

 

One of the biggest problems that has plagued IT organizations is their lack of focus and maturity to quantify the value they bring to the enterprise. Ask an IT team how they define success and you will hear all kinds of metrics - quality, project completion within time and budget, adoption of latest enterprise standards and so on.

 

While some of these metrics are important, IT organizations need to take a very different approach to quantifying the value they bring to an organization. For example, a project to digitize documents relies on robust translation and integration layer to move data from a scanning solution to the financial system of record. Better metrics to quantify the value of IT in such a project are savings obtained from moving from paper invoices to digital, from reducing errors that came from manual entry of data and from reducing the staff required to support the new process

 

If IT were to quantify the success of this project as annual cost savings of $X,000,000 attained in a period of Y months, and drive the project to achieve this goal for the CFO, it would be a very different positioning of IT Value. We know that this is easier said than done. However, build the culture within the IT organization to always quantify value of every IT initiative and constantly market this value driven success internally within your organization. That will go a long way to change the perception of IT within your enterprise.

 

 

 

 

Driving efficiencies by automating business processes is core to any enterprise. IT is critical in helping businesses attain these efficiencies. It takes a disciplined IT organization that puts in place the right integration platform and practices to achieve this. Do it right and partner with a platform provider who is invested in your success. For those that come prepared with slideware to show you the clicks and wizards and the drag and drop--ask them to Get real.