APIs as socio-technical agreements

Einar Høst

Lightning Talk

An API is a multilateral socio-technical agreement to collaborate. Unfortunately a lot of aspects of the collaboration tend to be left unspecified, which causes all kinds of problems. A technical specification for the API is just the beginning. Many other things should be agreed upon as well. How long does the provider team commit to offer the API, and under what conditions? How will the upkeep of the API be financed? What is the SLA? What is the expected rate of change, and how will change will be handled? How will bugs be addressed? What do the consumers commit to? Often these things are naively left undefined, to be worked out by an ad-hoc mixture of power dynamics, conscience and available resources. Instead, these issues should be addressed head-on, making the negotiations explicit rather than implicit. In this talk, we’ll take a closer look at the socio-technical issues concerning APIs, see how we can address them in a structured way, and discuss some patterns that can be applied in various contexts.