Why care about the developer experience?

The developer frustration curve
The developer frustration curve

What is developer experience (DX)?

With the explosive growth of software, User Experience (UX) has become as core to creating a great product as the actual engineering that goes into creating the software. There are countless guides, best practices, and articles showing the impact that great UX can have on everything from product sign ups, payment flows, to utilization of features, and user retention. UX goes well beyond the pixels on the page, but into understanding the feeling users have when using your product.

Why focus on creating a great developer experience?

With the massive explosion in products that target developers as their audience (see API growth chart below), it’s more critical than ever that companies prioritize DX.

Growth in web APIs since 2005
Sourced from ProgrammableWeb

The keys to a great developer experience?

There’s a lot that goes into creating a great developer experience. To really do this right, DX needs to be part of your company’s culture and you need a company lead to serve as the champion for this culture and vision. Otherwise, there will always be a tendency to prioritize and resource the development of new features that appear to have a clearer line of sight to be revenue generating while accepting that the existing developer experience is good enough.

Communication

Communication with the developers using your product is extremely important. You need consistent communication in order to build awareness about changes to the API, new versions, new features, and best practices. In my own career, I’ve been burned by this multiple times where I did not effectively communicate a change that led to confusion by the community and a loss of trust.

Documentation

Often the first experience a developer has with a product is the developer documentation. In the DX and developer relations communities, we often measure the time from registration to our version of Hello World, but developer engagement starts well before registration.

Client libraries

Client libraries or SDKs are a way to provide easy consumption of an API. Rather than the developers having to write code to POST JSON to a REST endpoint, they can call a function provided by your client library that encompasses the object they need to pass to the API and idiomatic of the language.

Code samples

Code samples serve as demonstrations of your technology and client libraries. They should be an integrated part of your documentation and also serve as demonstrations of what your platform is capable of. This helps developers understand the potential of the product and provides a starting point to accomplishing a similar experience.

Do not assume expertise

When you’re close to a product and work on it day in and day out, it’s easy to forget how much intrinsic knowledge you have. This can lead to assuming a certain level of knowledge when it comes to using your product or when you use certain product-specific terms without defining them.

Easy to debug

This seems obvious, but it’s easy to overlook or not prioritize.

Final thoughts

While UX is now a well established critical component to delivering high quality products, DX is still relatively new and sometimes overlooked.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Sean Falconer

Sean Falconer

Google Developer Relations — BizComms — All opinions are mine and mine alone.