APIs continue to spread, as seen in this 2019 report from ProgrammableWeb, which shows a 30% increase over last year's growth rate. More regulations are enforcing the use of APIs to open up companies and foster innovation. Think of the Payment Services Directive version two (PSD2), open banking, and the public sector releasing 0pen data APIs. With such an abundance of APIs, it becomes increasingly crucial to get the value out of your APIs and differentiate yourself from the growing competition. It's time to design and manage your APIs as a Product.
Change your organization
Designing an API as a Product implies a lot of changes in the way APIs are designed and managed. It means changing your mindset from "packaging existing services" to "fulfilling customer needs." For teams in charge of an API, this mindset implies being in charge of a product instead, and thus:
- Focusing on customer needs rather than existing assets.
- Managing APIs continuously rather than for a project's lifetime.
- Moving from finite resources to elastic computing.
- Evolving from a central team specialized in APIs to product cross-functional teams with a variety of competencies.
In a nutshell, designing an API as a Product means:
- Conceiving it specifically to solve a customer problem.
- Setting shared indicators of the value delivered by the API.
- Having a feedback loop to know what to improve.
Change your design process
Designing APIs as a Product also means changing the way we craft APIs (by adopting API design thinking):
- The first step of design thinking applied to APIs is focusing on the customers. Through their eyes, what is their pain? Empathize means meeting with and listening to your potential new customers. You will discover their understanding, how they are organized, which technical ecosystem they use, etc.
- Then, you would synthesize your findings to define which problem they are trying to solve and identify the Job to be Done. Customers wanting to perform a transaction to buy a pet and customers willing to synchronize their pet inventory would lead to two very different Petstore APIs.
- Once defined, you can foster new ideas through a process known as API Ideation. During this step, you knock up different API designs to see if one stands up as a plausible solution.
- During the API Prototyping phase, you mock your API based on meaningful examples to end up with a working API. Other team members can give their feedback on your design attempt.
- The penultimate step is to get feedback on your final design from your early adopters and thus refine the business expectations for your API.
- Finally, you implement the actual API.
Open source communities to help you design APIs as a Product
So far, we have only spoken about organizational changes. Dedicated tools and open source communities can help you succeed in designing and managing APIs as a Product:
- Microcks is the open source Kubernetes-native tool for API mocking and testing that helps you during the Ideation and Prototyping phases.
- Apicurio helps you design better API contracts in a collaborative fashion. Architects, product owners, designers, and developers can work together on the API designs.
- Red Hat 3scale API Management eases the design and management of APIs as a Product by promoting the API designs, collecting feedback, and actually managing your APIs as a Product.
In the next article, we'll look at how the most recent version of 3scale actually helps you build APIs as a Product.Last updated: July 1, 2020