Why APIs Will Rule the Software World
Application economy superstars owe their success in part to the strength of their APIs.
Today there is a lot of buzz around APIs. However, APIs are not a new concept—the IBM mainframe for example has had API access to its operating system for decades. So why is there so much interest in APIs now and why should you pay attention?
APIs, or Application Programming Interfaces, are the things that let you interact with a product programmatically instead of manually through a user interface. There are a lot of reasons why you need APIs, and many come down to the same concept: scale.
The Many Facets of Scale
1. Scale of the Customer Environment
While smaller customers may be happy with a sleek user interface where they can interact with a product, large organizations will typically look for a way to automate that task. APIs enable customers to automate and integrate standard products with external data sources or end-user portals.
Companies such as eBay target small, private users with their easy-to-use Web interface—this type of user will typically sell second-hand products one by one and take the time to publish the advertisement manually. But such companies also target very large organizations that automate the process of publishing their goods and registering the sales through eBay. That would not be possible without APIs.
2. Scale of Product Sales
There is no “one size fits all” customer. Different customers have different needs and different environments. To scale up sales, a product needs to integrate into all those different environments and fill all those needs. It is typically not feasible to have out-of-the-box support for all integrations and use cases. APIs make it possible to extend a product on demand and without intervention of the core product engineering teams.
Amazon’s APIs make it possible to seamlessly integrate third-party seller’s ERP systems, automatically adding products to the Amazon catalog, synchronizing inventory, managing delivery and supply chain as well as sales reporting and sending invoices.
3. Scale of the Developer Community
APIs enable third-party developers to add functionality to your products. Would the iPhone have been as successful without APIs—without developer tools, marketplace, peripherals, etc.?
If APIs are developed as an afterthought, they are likely to be incomplete and add development and support burden instead while they could be lifting it.
— Remko Dobber, VP, Custom Engineering for the Infrastructure Management Business Unit, CA Technologies
The main advantages of APIs become apparent only when development organizations adopt an API-first approach to development. If APIs are developed as an afterthought, they are likely to be incomplete and add development and support burden instead while they could be lifting it.
API-first development is really a generalization of the object-oriented design principle called “encapsulation”. Encapsulation is meant to make object classes reusable by defining a “contract”, or a set of public method signatures, that are made available to other classes and should hide the inner workings of the class, protecting the callers from being impacted by changes to those inner workings. While encapsulation means the definition of a contract between reusable object classes of the same language, an API is often referred to as contract between bigger pieces of software like the backend and frontend of an application, or between entirely different applications. A public API is typically documented and published for use by third-party developers.
Regardless of the level at which an API works, regardless of whether an API consists of documented public Java method signatures or a RESTful Web service, the main requirement for an API is constancy. By using an API, you’re making an investment. You really don’t want that investment to last only until the next version of the product. The API should not change, or at least stay backward compatible.
That argument is valid for consumers of the public API of a commercial product, but it is just as valid for the internal developers of that product. Even if you own the entire product, backend code, data model and user interface, you still benefit from constancy in the interfaces between those pieces. When you optimize some code to make the backend faster, you really don’t want that to affect the UI.
An important advantage of API-first development is reduction of complexity. The availability of complete, documented, immutable APIs can be an enormous help to ensure a clean, layered and modular product architecture. They can help reduce coupling between components and duplicate code. Bottom line—they help increase quality.
Software Trends Driving the App Economy
There’s a lot of talk recently about the “application economy” and how often bespoke applications gain importance as competitive differentiators in many different vertical markets. In an application economy, companies often invest more in the integration of software products into their larger IT ecosystem than they do in software licenses. A published, immutable API protects that investment across versions of the product. Companies like Amazon, Google or Salesforce owe their success in part to the strength of their APIs.
Software is ever more at the heart of seemingly unrelated businesses. High-end car manufacturers are actively trying to differentiate themselves through the onboard software. Soon we will see an iPhone-like trend in cars: downloadable apps that can change the behavior of the car completely, adding features developed by third-party suppliers.
At first glance, the Software as a Service (SaaS) outsourcing trend may seem contradictory to the application economy trend. After all, SaaS represents a “one-size-fits-all” approach, whereas application economy moves in the direction of more and more bespoke applications. Companies will choose which way to go on a case-by-case basis. A company may decide that SaaS makes a lot of sense for e-mail, CRM and ERP applications, but it isn’t ideal for their call center and customer service departments. APIs make it possible to integrate application economy with SaaS, and that will be getting easier in the future. Things like vendor-agnostic API wrappers will ease the transition from one cloud service provider to another.
Globalization affects software development in many different ways. Mergers and acquisitions invariably end up requiring integration of disparate toolsets—this is only possible if they have APIs. Large scale enterprises accumulate large scale complexity. The only way to keep complexity under control is through a modular approach—split up the big, complex problem into smaller, less complex pieces. This means the interfaces between those smaller pieces need to be defined—in APIs.
Globalized enterprises will need to find new ways of keeping IT complexity under control, and modularity will be at the heart of those new methods. In the future, APIs may not be invoked by code, but they may just learn about each other and invoke each other just by snapping into place. Software development may turn into assembling reusable standard components to form new combinations covering new use cases.
APIs are important for scale, for reusable software development, for integration into the ecosystem, and soon you won’t be able to sell software that doesn’t have them.