October 24, 2016

How to eliminate silos in a large organization

As an Architect for WaveMaker, I have come across multiple IT environments.  They are getting more and more complex by the day, in spite of all advances with cloud computing and deployment options. IT Environments in large complex organizations are typically dispersed and have multiple silos as shown in the graphic below.

In addition, sub-groups typically have their own processes and technologies. This makes integration across organizations and the centralization of IT applications a big challenge.

This problem gets aggravated with each M&A activity. Acquisitions provide a great opportunity for innovation with the possibility of integrating assets of different organizations. But different technologies, systems, and processes hinder the realization of these opportunities.

Consolidation of IT for these organizations is a good position to be in as shown in the graphic below. But it is not trivial to achieve. More than the technology, managing resources, skills, and practices across organizations become bigger challenges.

Now, what if we can achieve integration of these different systems without actually consolidating IT systems?  What if different existing systems can co-exist while realizing the benefits of consolidation? How would you go about doing it?

Step 1: Ensure all systems are API-enabled

If you want to make your application future-proof, there is no other alternative other than to build APIs. How to make different types of applications API enabled, is a topic for another blog.

Let’s look at the organization now in the graphic below.

So what has changed?

Now, every system is open for communication. There may be different systems using different technologies, but they can all talk to each other with a common simple language. APIs.

As we have all the systems accessible, what next? How do we consolidate the information from here?

Step 2: Consolidate endpoints with API management

You must have looked at API management from the point of view of identity, authentication, rate limiting, throttling, metering, etc. But to make the best use of internal APIs, we need to transform them,  aggregate them, and cache them where needed.

Take an example of an application like Kayak. They aggregate APIs from multiple airlines.

  • APIs have different formats, so it needs to be first transformed to Kayak format.
  • Some APIs may not be available reliably, so it needs to be cached
  • Other airlines may not even have APIs. In which case, Protocol/API wrappers need to be created over them.
  • And these APIs must be aggregated to Kayak APIs. UI and other consumers should not call these APIs separately.

Similar is the requirement of a complex organization. Think of your large organization as vendors across multiple silos. Would you not like to manage all your vendors from a single place?

Current API Management products need to evolve to meet these challenges. API Management technologies, for most of their life, we're geared to public APIs that you wanted to monetize. They have also been priced by traffic usage. Recently many of these API Management vendors have started focusing on these internal enterprise APIs.

The graphic below shows how an API management platform is consolidated.

After the end of the second step, you are in a state where you have consolidated endpoints. A happy, future-proof state to be in. But this also means they need applications using these APIs. Not only the IT systems but multiple potential applications waiting to integrate these APIs to speed innovation to a different level.

Step 3: Enable rapid application delivery

With so much information available, you clearly can think of many more applications, than your IT can develop. Coding is time-consuming. The current trend is to go for ready-to-use components than to write them from scratch.

Going a step further, you don’t want to fall into figuring out the integration of these ready-to-use components either (boilerplate code). Developers with minimum technical/UI skills should also be able to deliver applications. But that simply increases the risk of poor quality applications.

This is where a low-code rapid application delivery platform can help you generate consistent beautiful-looking applications. Reusable widgets, styles, and templates are provided by the UI experts and other developers can simply use them with drag-drop features.

In summary, I have shown you a path to consolidate all your silos via APIs, manage them using an API management tool, and finally build innovative apps much more rapidly.