If you create a development tool, you will inevitably come up against this dilemma: you know the inner workings of it very well, but not the others. And without solid documentation and examples to follow, it can be hard for someone else to get started. Friction with the tools we use can contribute to burnout, inhibit creativity, and slow innovation.
Developer Experience (DX) is becoming a must for any software company. I recently sat down with Christine Spang, CTO and co-founder of Nylas, to discuss the benefits of investing in developer experience. Below, we’ll take a look at what exactly DX is and look at some best practices for implementing it.
What is Developer Experience?
Developer Experience (DX) is similar to User Experience, but for tools aimed at developers. DX takes into account the developer journey while developing with a certain framework, language or platform. “Developer experience is the amount of friction a developer experiences between having clarity about what they want to implement and getting to the point where you’ve created that thing,” Spang said.
For example, consider integrating an API to solve a common use case like payment integration. There are many steps involved here, from reading the reference documentation, to getting an API key, to testing calls and understanding the service’s response. Once developers initially integrate the API into their application, they may also need to make continuous updates as service releases occur. Throughout this journey, DX can be seen as “how difficult it is to understand how to translate an idea into a result,” Spang said.
It’s also important to note that DX isn’t just relegated to public platforms. Having quality developer experience is just as crucial for in-house software. The urgency to improve the in-house developer experience increases with the proliferation of APIs being developed, especially since the majority of them (58%) are private APIs, according to the 2022 report on the status of Postman APIs. Depending on the size of a company, internal DX can encompass many areas.
Best Practices for Investing in Developer Experience
So, what are the methods to improve the experience of developers at all levels? Well, having up-to-date documentation, sample code, better examples, and standardized documentation is an important part of the developer experience. Spang also shared some useful best practices for improving DX:
Provide scaffolding for the most common cases. Measure patterns around the type of things people build with the platform and provide scaffolding to support common use cases. This can amount to a getting started guide for a common scenario.
Offer sample code libraries. It’s much easier to edit code than to write it from scratch. With that in mind, create pre-made environments that developers can have fun in. Offering working apps, use case templates, and pasting code can be a handy way to help developers get started more seamlessly.
Start with the reference manual. Walkthroughs and sample code should never replace a complete reference manual. Having up-to-date documentation is essential to meet the needs of advanced users right from the start. From there, you can generate Postman collections or interactive sandboxes built around the baseline specification.
Measure DX success and iterate. One way to monitor developer experience metrics is to record onboarding flow and measure conversion rates. In terms of APIs, this can be tracked by asking how many people manage to make calls? What is the average time it takes to make the first call? Knowing these metrics can inform the effectiveness of your tool’s self-service features.
An important point for DX is to distinguish between too much custom work and focusing on the main project. On that note, Spang recommended “making sure that whatever you build aligns with the overall vision of the company.” Essentially, if you’re not a consulting firm but a product company, you need to stay true to that goal.
“You want to make it really easy to get to what people generally want to do,” Spang said. “Still, you don’t want advanced users to feel constrained by the platform.”
Examples of quality developer experiences
For those building services for developers, it helps to have a framework to model. So what are some examples of quality development experiences?
Well, the best public APIs are great examples of where the bar is set for developer expectations these days, Spang said — services like Twilio or Stripe demonstrate relatively transparent development journeys. Spang also pointed to companies with strong DevOps and CI/CD experience, like Etsy, that have invested for years in usable backend infrastructure that accelerates internal development.
For other sources of quality developer experience, consider the technologies preferred by top-ranking developers from the latest 2022 Stack Overflow survey. Engineers love working with technologies like PostgreSQL, AWS, Phoneix, and Docker. Newer and more fashionable languages also tend to be more and more usable. For example, 86% of developers said they liked working with Rust, while 76.65% dreaded working with Objective-C.
The overall advantages of DX
Investing in developer experience can help improve developer agility and satisfaction, Spang said. For one, an easier development path increases speed in how you ship and scale projects over time. Second, developer experience equates to less burnout and less turnover, both of which can have real business impacts.
The software development industry is growing like wildfire, attracting waves of newbie developers every year. Interestingly, the average experience level is decreasing, increasing the need for more abstract tools and toolkits, Spang said. In this environment, developer experience undoubtedly shines as a competitive advantage.
So if you’re creating tools for developers, consider the experience others will have using them. Increasing developer experience may simply be a determining factor in the success of the project and the long-term happiness of your developer community.