The problem with API development
API development involves choices in a jungle of standards, libraries and frameworks. API providers often focus on solving these technical problems and overlook some of the business considerations that may require more immediate attention.
Many technological choices lock API development into a path that has important business implications. Are the interfaces public or private? What services do we offer to which customers? Why are they using our APIs? What are their business goals? How do they earn money using our APIs and is this sustainable for them? For their customers? For us?
In this blog I present a method for business-driven API development. The method is described fully in a White Paper co-authored by Jaap Gordijn (The Value Engineers), Matt McLarty (Mulesoft), Sanjna Verna (Mulesoft) and me.
I present a short overview of the method here, with an example. The White Paper contains more information about the method and the real-world case in which it was applied.
From Business needs to APIs
SalesForce and its subsidiaries provide a free service in which they present Covid-19 data to customers and other users. The data is collected from The New York Times, the European Center for Disease Control, and other sources. Mulesoft collects, aggregates and curates the data and makes it available to internal users (Tableau and Work.com) and external users. The following diagram shows a map of the value network.
In our White paper we build up this map of the value network using the e3value notation. This allows analysis of the value network on commercial sustainability.
We built up this map in six steps.
- First, who are the stakeholders in your ecosystem? In the example, Salesforce, Mulesoft, Tableau and Work.com are stakeholders. Data providers such as NYT, external users of the Covid-19 API of Mulesoft, customers of Tableau and Work.com, and possibly their clients are stakeholders too.
- What are the needs of the end-users? End-users in the example are external API users, Customers of Tableau and Work.com, or possibly clients of those customers. Their needs are easy to identify: they want up-to-date Covid-19 data.
- For each need, what commercial transactions must be performed by actors in the ecosystem to satisfy it? To get Covid-19 data to the end-users, Mulesoft must collect, aggregate and curate all Covid-19 data that it collects and make it available through internal and external APIs. Tableau and Work.com must integrate this data with their customer services. The data provided to API users and customers can be kept as up-to-date as the data collected by Mulesoft.
- Is each actor able to perform these commercial transactions? When Salesforce promises to make Covid-19 data available to its customers, it must make sure that Mulesoft has the capability to collect, aggregate, curate and store up-to-date Covid-19 data. Tableau and Work.com must be able to integrate this in their customer offering.
- What is the commercial sustainability of each need satisfaction? In the example, all Covid-19 related activities are self-funded, so commercial sustainability is not an issue here. In general, commercial sustainability is assessed in e3value by estimating investments, revenue and expenses of each actor in the business model of the value network.
- What APIs do you need to implement each value exchange? Once the services provided by each stakeholder are clear, it is straight forward to specify the require internal and external APIs. The diagram below shows the UML component diagram of the chosen software architecture. The APIs in the diagram correspond with services in the network diagram above.
- To make the link clear, we overlaid the organizational structure on the component diagram. Each stakeholder is responsible for the cost of developing and maintaining the components shown inside it.
Creating a business model of a value network allows you to understand which API’s you need and why you, your customers and your partners need them. This in turn allows you to explain the need for these API’s to decision makers without getting bogged down in technical details. Identifying the needed API’s in a value network also allows you to focus on the API’s that serve a business purpose.
The e3value network shown in the white paper allows estimation of revenue earned through API’s. The e3value model of the value network also allows you to derive an initial specification of the required APIs.
The value network model also shows dependencies among API’s of each organization, which is crucial information for maintenance and updating of API’s.
Once you have identified your API’s in a value network, it is straightforward to map them to a software architecture that shows you which software components are responsible for which API’s. This maintains a clear link between the software architecture and the business goals and end-user needs represented in the value network.