Nate Ranson
Workshop: Do Users Love Your API? Developer-focused API Design

Workshop: Do Users Love Your API? Developer-focused API Design

by Pete Holiday, Kate Harlan, and Nate Ranson

The video titled 'Do Users Love Your API? Developer-focused API Design' focuses on improving API design with an emphasis on user experience for developers. Speakers Pete Holiday, Kate Harlan, and Nate Ranson from Mailchimp present insights gathered from their experience with Mailchimp's API, particularly version 2.0 and its upcoming version 3.0. They highlight the importance of API usability, as many APIs are designed primarily for maintenance ease rather than for fostering a positive user experience.

Key points discussed include:

- Purpose of the Session: Attendees are encouraged to interact and share their own experiences regarding API frustrations, stressing the human element in API design.

- API Fundamentals: A brief overview of APIs, defining their role in ensuring communication between different software components. The speakers clarify that the focus will be on web service APIs.

- Current State of API Design: APIs often prioritize backend systems over developer experience, leading to issues like poor documentation and complex call requirements.

- User Intent: Understanding users' goals is crucial in API design. The example provided discusses common tasks such as automation in email triggers, which Mailchimp users often seek to accomplish.

- Version Updates: Although Mailchimp's version 2.0 has a significant user base and positive feedback, the speakers acknowledge its shortcomings, which led to the development of version 3.0 that prioritizes user-friendly design.

- Feedback and Improvement: Emphasis is placed on utilizing user feedback and interaction patterns to enhance the API experience, specifically by reducing error rates and improving documentation.

The conclusion encourages API designers to consider the developer's interaction with the API, focusing on minimizing frustration and maximizing efficiency. This interactive session ultimately aims to foster a deeper understanding of user-centered API design principles that cater directly to developer needs.

00:00:12.480 Welcome! Thank you for coming. I hope everybody enjoyed DHH's keynote and is ready to build monolithic web applications.
00:00:18.880 Today, we're going to talk about API design, specifically focusing on the people who actually have to write code against these APIs.
00:00:26.720 We will not be doing any coding at all today. Implementation is an implementation detail, so don't worry about that.
00:00:33.760 We're just going to focus on designing the API really well, and leaving the implementation to someone else.
00:00:52.480 My name is Pete Holiday, and I'm a lead engineer at Mailchimp. Mailchimp is an email service company, and we will tell you much more about it later.
00:01:04.879 I'm Kate Harlan, an engineering intern at Mailchimp and a Georgia Tech graduate next week. After graduation, I plan to work at Mailchimp full-time.
00:01:20.880 Version 2.0 of our API did many things well. About 250,000 users hit it every single day, and billions of requests come and go. It’s fairly popular. We conducted a survey not long ago and found that 75% of users thought it was good or excellent. Those are really promising numbers.
00:01:39.760 However, as we worked with it ourselves, we discovered some significant issues with the design and the challenges users were facing while trying to utilize the API. This talk is a reflection of that process of designing our newest version of the API, which is currently in beta.
00:01:55.439 It was originally supposed to be released a month ago, but software happens and it is late. This will be a fairly interactive session, so during several portions, I encourage you to chat with your neighbors. Please take a moment to introduce yourselves as you’re going to become good friends by the end of this.
00:02:40.800 I would like to know the gender ratio of the entire conference. I'm just curious! It seems to be fairly average, but still somewhat lacking in diversity. From my perspective, there appears to be about one woman for every eight attendees.
00:03:03.760 Okay, let's bring it back together. I think I’ve lost the room already. So, you all probably have at least a basic understanding of what an API is. It stands for Application Programming Interface.
00:03:10.720 APIs are ubiquitous in programming. If you’ve done any programming at all, you’ve used an API, as they serve as the interface between different software components. They allow two pieces of software to communicate across boundaries. For instance, Ruby blocks serve as boundaries for language features, class methods are APIs of that language, and object-oriented programming relies on classes that expose APIs. Today, we’ll specifically discuss web services, especially microservices.
00:04:02.640 The principles used to design a web service API are similar to the principles for designing any other API. One request I have is for the lights to be dimmed as it might help readers see the screen better. I guess it’s hard to read in the current lighting conditions.
00:05:09.680 While we work on that, let’s keep going. Developer-focused APIs reflect the movement we’ve seen over the past few years to enhance user experience within web applications. However, this focus has not yet mirrored API design, which remains somewhat chaotic in terms of appearance.
00:05:20.480 When we talk about developer-focused API design, we mean optimizing for the end user, not just the backend systems. Many APIs are designed for ease of implementation and maintenance, but they are not necessarily user-friendly.
00:05:40.960 When we center our focus on the end user, the person who will eventually use your API, it leads to great development experiences. So, what do developers want when using your API? Generally, developers want to get in, complete their task, and get out—ideally without touching your API again.
00:06:09.919 One major factor to consider here is that once developers write something using your API, you can’t change how it works without breaking their code. Therefore, you must version your APIs, ensuring that each version is robust and functional.
00:06:34.080 How many of you have experienced a frustrating API? Raise your hand if that's true. A few of you. Great! For 90 seconds, I would like you to discuss with your neighbors what made those bad experiences challenging.
00:08:08.000 I always carry a water bottle but have been losing it recently. It’s frustrating! Thanks for your understanding. Being a tech support person at events like these must be tedious.
00:09:27.120 This is where things start to get interesting as we transition into talking about developer frustrations with API design.
00:09:35.760 Let's raise our hands and discuss bad experiences with APIs without naming specific companies. It’s great to hear those stories. For instance, someone mentioned that the hotel industry relies heavily on poor XML standards. Others mentioned issues such as bad documentation and the complexity of having to make multiple API calls to achieve a single task.
00:10:31.760 What can we learn from these bad experiences? It's evident that easy tasks often seem more complicated, with too many endpoints and inadequate documentation.
00:10:44.479 Let’s try to understand what users ideally want to accomplish with an API. When using Mailchimp, for example, customers may want to send automatic emails upon certain triggers such as a new registration.
00:11:15.040 That brings us to our discussion on the specific features of an API, such as managing lists, sending campaigns, and tracking reports. To create an effective API, understanding user intent is crucial in order to design features that align with those needs.
00:11:49.199 Version 2.0 of the Mailchimp API was widely used, but during our discussions and reviews, we realized it had its faults. Moving forward with version 3.0, our mission is to prioritize developer experiences with a user-friendly design.
00:12:25.280 We expect to take a serious look at our user feedback and usage patterns to continually improve the API experience to ensure developers find root problems based on their API interactions.
00:12:42.800 There will be plenty of room for discussion of our findings where we will focus on aspects such as error rates and documentation quality to ensure clarity and accuracy.