API Design should align with business strategy. The missing link is the Business Architecture. This article proposes to use Business Capabilities to connect API Design to Business Strategy.
The mobile revolution gave birth to a multitude of APIs. Their importance is today even more significant as enterprises see opportunities to disclose functionality in a uniform way to different channels. As development of RESTful web APIs [APIs] was a bottom-up movement, technical considerations were prevalent. Adoption of the REST principles as (application) architectural style for APIs made HTTP the standard protocol and JSON the preferred format. The standardization of protocol and format gave vendors of programming language platforms the opportunity to create frameworks and tools to facilitate the development engineers.
From an architecture perspective there is a challenge to connect API Design practices to Business Architecture and the subsequent business strategy. However, API Design from a Business Architecture viewpoint should be done first as knowledge of the Business Architecture is a prerequisite for architecture work in any other domains. The notion that an API is a (web)-interface style disclosing a service helps to realize that API Design and SOA design have common relations to Business Architecture. Several articles on the Internet suggest that the artefact from Business Architecture which aligns best with a service in a SOA is a Business Capability [1, 2]. A Business Capability should therefore be a good candidate to connect Business Architecture to an API.
The concept of a Business Capability is unfortunately not thoroughly described in architecture frameworks as TOGAF. Fortunately there are several other sources about Capability modelling which give a clear interpretation of a Business Capability [3, 4, 5].
A Business Capability defines the organization’s capacity to successfully perform a unique business activity. Capabilities are about what an enterprise must have to deliver the product or service. Business Capabilities do not describe how an outcome is reached. It says nothing about the implementation. The next picture gives Business Capability its place in relation to Business Functions, Business Process, Business Services and Products.
It clearly states a direct relation of Business Capabilities to Products and it’s independence from organization units, meaning changing the organizational structure of an enterprise would not impact Business Capabilities.
For example, transforming a brokerage enterprise with a telephone desk for stock orders to an online brokerage enterprise where clients can place order through a website would not change the fact that the enterprise needs a Trading Capability to service its customers. Would the enterprise transform to a Savings Enterprise, then the Business Capability needs to change from Trading to Savings.
In short, Business Capabilities:
- are unique and independent from each other
- are relatively static
- capture the business’ interests
- are hierarchical
- process independent
- have a specific outcome
- are “black boxes”, with inputs and outputs defined with explicit service level expectation.
APIs are about defining inputs and outputs. How the input is transformed to the output is not the concern of an API. The independence aligns with the practice for API Design using the Domain Driven Design concept “Bounded Context”, high cohesion and loose coupling. The stable nature of a Business Capability offers a stable API, a characteristic every API should have.
The alignment of Business Capability characteristics with API Design principles confirm that Business Capabilities are a good fit to connect from the Business Architecture to APIs in the Application Architecture. Business Capabilities can serve as the bridging element from a business strategy to Application Architecture.
- A Business-Oriented Foundation for Service Orientation – https://msdn.microsoft.com/en-us/library/aa479368.aspx
- Business-Capability Mapping: Staying Ahead of the Joneses – https://msdn.microsoft.com/en-us/library/bb402954.aspx
- Business Modelling – http://www.enterprise-architecture.org/business-architecture-tutorials/162-businesscapabilitymodelling
- Business Capability Management – http://www.opengroup.org/johannesburg2011/UlrichKalex%20-%20Business%20Capability%20Management.pdf
- Explanation business capability – https://ingenia.wordpress.com/tag/business-function