March 10, 2015 at 06:00PM
"Mitra contends there are three concentrations of API design:" #readingToday  

Functionality as a Design Factor: This was what followed in the time of service-oriented architecture; designing for the function and focusing on what activities and actions need to happen. What does the API do? Where is it located? How reliable is the implementation?

Usability as a Design Factor: This is the focus of most contemporary API design. "We used to be more service-centric and now we're more developer-centric. We care about users," he explained. However, he warns that "Usefulness still trumps usability. No matter how usable your product is, if it doesn't do anything that anyone wants, no one will care."

Experience as a Design Factor: How does the API make the developer feel? Mitra defines DX as the sum of all interactions between you and the developer, and how the developer feels about those interactions.

The interaction of all three combine to make (or break) the developer experience. Even though we are building software for other people to build software with, we are still building a line of communication— the human point of this abstract interaction. Mitra contends that in order to design for usability, providers first must understand their audience inside and out.

Developer experience is crucial for on-boarding users. Why? Most often with APIs, developers are the primary consumer to the API. Improving the experience had for these consumers is the next step in this human-machine abstraction.