Just Negotiate the Interface — I Do Not Care About Your Backend, nor Should You Care About Mine

I am always fascinated by how us technologists can’t leave our backends out of API discussions. Keeping an API design conversation just about the interface between a producer and consumers proves to be one of the most difficult things about collaborating within or across teams. Sure, there are plenty of backend concerns expressed in interfaces, but those things need to be abstracted away and distilled down into only what is needed for a single, or series of API transactions with consumers. When you come to an API collaboration session, please leave your language and backend dogma at your desk, and let’s negotiate only what is needed to get this one job done.

Backends leak out of the enterprise in the design of our paths, parameters, requests, and responses. It is easier to use the names of tables in our database, and the systems that power our APIs, than it is to explore the words that will matter most to our consumers. It is simpler to bring what we know and see in the world around us, and what we experience as API producers to the table, than it is to put ourselves in the shoes of our consumers. In my experience, more than 50% of API producers haven’t even paused for a moment to answer who (the person) the consumer of their API is, let alone think about the resources and capabilities they need to do their job. API producing is often just about doing our job, with the tools and programming languages we as producers are familiar with, and less about any consideration for those who will using our APIs.

Providing a common interface to program against when building desktop, web, mobile, and now AI applications is where the API power lies. APIs aren’t about the many years of investment and technical debt that has accumulated as part of your backend infrastructure. APIs aren’t about the programming language of choice for your team, line of business, or enterprise. Modern web APIs work across programming languages and enterprise boundaries. APIs are about negotiating with internal or external parties about ONLY what is needed to provide only the digital resources and capabilities needed to accomplish what API producer and API consumers care about. As an API consumer I do not want you to bring all your dogma, baggage, and technical debt to the table—-no matter how much time and energy you have put into it.

This isn’t just about API design. This is about picking your head up and looking around for a moment and considering what others needed, and ideally having a conversation with those people—maybe even having a little empathy for them. Unfortunately many of us bring our expertise, opinions, dogma, and hard fought learnings to the table to occupy all of the space. A well negotiated interface means that I do not have to care about your backend, and you do not have to care about my backend. My database choices and programming language choices should not matter-—this is why we are doing APIs. The power of APIs is simply that we are able to negotiate the right interface for this moment, and get the job done that both API producers and API consumers need to apply only the resources and capabilities needed-—nothing more.