For a while now, what gets me up and out of bed each morning is a new and very different way of thinking about software and technology: the application network. Before I get into the why, let’s start with the what. What are application networks?
Application networks are a way to connect applications, data, and devices through APIs, so you have a plug and play network of assets (data and capabilities), and your business can leverage all these assets in an agile way. At my company, MuleSoft, we help our customers achieve that using an approach known as API-led connectivity and our Anypoint Platform is built to support that approach.
Take a look at the image below. As I described in my last piece, the network includes business applications (black circles) whose capabilities need to be combined to implement business processes.
There are also composite services (blue circles) which connect to these applications, sometimes exposing a subset of their capabilities directly as APIs, sometimes combining them with other applications to expose enriched APIs, and often integrating business processes across multiple applications.
The composite applications should be regarded just like the business applications, in that both provide business capabilities; some are composited from others, but in the spirit of good encapsulation, the consumer shouldn’t have to care. In any case, that’s the fundamental definition of what an application network is.
Now let’s get to to the why. Why do application networks get me up every morning?
1. Don’t keep reinventing the wheel! Application networks drive discovery and reuse
A defining aspect of an application network is discovery and reuse; capabilities in an application or composite service can be discovered, and potentially consumed, by relevant stakeholders.
You can think of an application network like your business’ internal marketplace, which has a variety of assets––various capabilities available as services and consumable via their APIs. In Anypoint Platform, the APIs themselves are often composed of common, reusable data types and patterns so they’re more consistent and easier to create and consume. And the composite applications are introspectable and reusable as templates for new applications.
With this internal marketplace, your developers – the stakeholders – will not build projects from scratch with every new project. Instead, they will look to this marketplace to discover relevant assets that can be used for their project. If they find a suitable asset, they can reuse it immediately. Alternatively, if an asset is not available then they can simply build a new asset that can be reused for future projects.
In this context, an application network acts as a rich library of APIs, data sources, patterns and templates, best practices, and other valuable assets. This is pretty game-changing. With an application network, the workflow of teams changes from let me start this new project to let me discover and reuse assets in the network for this project.
Think of it this way. When you want to find app for your personal phone that increases your productivity, for example, do you create that app from scratch or do you first look for it in your phone’s app store, or marketplace, to see what is available? Developers think similarly. The most common developer tool is a Google search! So if they can easily discover and consume an existing asset versus starting from scratch, that’s an easy choice.
And this leads to the next delightful advantage of application networks, giving a new option in an age-old dilemma of enterprise software.
2. Build or buy? Application networks enable a third option: assemble
Today, every company is a technology company. Moreover, much of the software that you need has already been written. So many companies are always asking: can we find a product that gives us exactly what we need, before we resort to building it ourselves? That’s often a terrible choice: finding exactly what they need is usually impossible, so they customize an existing offering, making upgrades hard and often resulting in a rube Goldberg contraption; alternatively, they build from scratch, replicating 80% of existing offerings to get the 20% custom functionality. But with application networks, they can take the 80% that is available, build the remaining 20%, and assemble the end result.
Take the example of Airbnb. The company did not create the components of their platforms (e.g. map, messaging system, payments. etc.) from scratch. Instead, they use available assets in an application network. They leverage the SendGrid API, for marketing emails; the Twilio API, for text messages and other telecommunications; a common internal payment API, for transactions; and many more. And, of course, they added their special sauce to the assembly, which is their core differentiation: experience and innovation.
With this kind of assemble versus recreate mindset, teams achieve higher productivity by investing only in what’s core to their business, versus creating and maintaining fungible components. But there’s a second point of leverage here, as the services they consume improve over time – when SendGrid improves its message design functionality, or Twilio enhances its SMS security features – teams like Airbnb benefit directly from their providers’ investments and expertise.
3. Where is everything? Application networks improve visibility, intentionality, and control
Application networks provide technical teams with the necessary visibility to deliver projects much more efficiently. Developers can see what assets, APIs, connectors, and templates already exist and how they work. What data is available? What does the documentation say about how to connect this data, and who has done it successfully already?
When teams have this type of visibility, they are much more likely to assemble and build correctly because there are fewer “information bottlenecks.” This drives teams to become more intentional about how they build projects. And when a developer has a clear picture of what is out there, including what pieces are available to her, how the pieces fit together, etc., then she is going to be more intentional about what she is assembling.
4. The only constant is change! Application networks boost agility and resilience
Moving fast and getting value to market sooner are important. However, agility to change and seize new opportunities, resilience to threats and failures, and technology shifts are often important to business fitness. Often, companies deploy and use technologies in ways that may seem to increase speed, but at the cost of jeopardizing agility and resilience.
Let’s imagine a directive from the new CMO mandates that distributors be given a mobile application to track inventory and order replenishments. The team scrambles to not only build that app, but connect it all the way back to the back-end systems that manage production, warehousing, shipments, and orders. The app may get delivered quickly, since it’s all hands on deck and everyone is available to unblock this critical initiative. But the web of dependent, entangled systems that such projects usually produce will not only not help the next project or the one after it, it will make changes to any of those systems harder (because any changes will need to account for not breaking the new app), so agility will be reduced over time. When changes do occur, and mission-critical apps break, the fallout makes everyone even more reticent to take on new challenges.
If, instead, such a mobile application and its backing services were assembled as a set of potentially-reusable, discrete building blocks, consuming services from the application network and giving back a few new ones, it would have been built even faster in most cases. But it would have created little, if any, technical debt. It would be much less fragile, as would the ecosystem it’s built on. And it would be very resilient to any changes made to back-end systems as long as they uphold their API contracts and service levels.
In any industry, no company can predict the future. So optimizing for speed isn’t good enough; you must build up fitness––a fitness to speed up or slow down, a fitness to pivot, a fitness to try new things and to either succeed or fail fast without paying too high a price. An application network, viewed as both an approach and a marketplace of capabilities and a mindset of assembly, helps companies do just that.
5. Only the good stuff! Application networks foster innovation and minimize upkeep
At this point, we understand that application networks allow teams to increase the speed of delivery and the agility to respond to changing needs. But you might be thinking to yourself: “What is the end goal?”
With the application network, companies can reduce upkeep and, instead, focus more on innovation. Many companies spend significant resources on upkeep. For example, IT leaders report spending 85% of their budgets on just “keeping the lights on.”
It seems outrageous to constantly work just to keep the lights on, instead of working on the more valuable and frankly more fun areas of innovation. And it is outrageous!
At the end of the day, application networks get me up in the morning because I know that they can power this innovation. One of my favorite stories is the experience of one of our customers, McDonald’s, one of the largest fast food chains in the world.
Prior to building an application network, the digital team at McDonald’s focused on maintenance. Today, their application network has enabled them to reduce maintenance time and launch a business initiative – a mobile app – in 1/3 of the time it used to take. As a result, their team spends a majority of their time on innovation and future business initiatives.
This is just one example of how one company has used the application network to help them quickly achieve mission-critical initiatives. Every day, I am in awe at the number of companies across the globe that are building their own application networks. From Mount Sinai, which is saving lives by leveraging an application network to automatically provide holistic views of every patient, to Service NSW, which consolidated over 800 government services using an application network to streamline how it serves its citizen customers.
At the end of the day, I cannot think of a better mission or a better reason to get up in the morning than to help companies – near and far – create an application network and continue to build, build, and build.
For more information on the application network, read our whitepaper on the Value of Connectivity.