002. Developer Experience is User Experience

The value of “developer experience” (DX) is sometimes misappropriated and surprisingly misunderstood. The debate flared up again this week on Twitter stemming from now deleted tweets asserting that developers are overpaid and entitled. These volleys are often loaded with associative baggage from past experiences and tend to lead to overreaching generalities. I don’t want to get into any of that specifically, but I would like to zoom in on what developer experience is, why it’s important and how I think about it.

Let’s start with a definition. I assert that Developer experience encompasses all aspects of the developer’s interaction with the company, its services and its products. This isn’t particularly novel being that it is directly inspired by Don Norman and Jakob Nielsen’s definition of user experience (UX). And that’s the point, developer experience is user experience, just focused on a subset of customers.

Some people argue that DX must be in service of UX, or DX is at odds with UX or that they are one and the same. These perspectives generally come from an opinionated point of view of who a user is and who a developer is. For example, take these recent tweets from two people I respect quite a bit:

Generalizations are almost never universally true especially when they involve ambiguous labels like “user” and “developer”. What you need to seek to understand is what value developers bring to your business or project or community. For our purposes here, I’ll focus on the business-y end of things.

“Your most important customers are not those that generate the most revenue but those that can unlock the most value in your business.”

— Robert Simons, Choosing the Right Customer, Harvard Business Review March 2014

Who are developers to your business? Why do they matter? How does their usage of your product or APIs drive value? Developers are a constituent like admins, creators, advertisers, suppliers, viewers or whoever your customers are. Your goal is to create the most value for your primary customers. You wouldn’t prioritize admin user experience at the expense of end users if it reduces aggregate value to customers. The same can be said of DX: you wouldn’t prioritize DX at the expense of end user UX if it reduces aggregate value to customers.

At Slack, developers are both customers and partners. In fact the overall majority of development on Slack is by our customers. At Stripe, developers are the primary customer. At Facebook where advertising accounts for the vast majority of revenue, the primary customer is the advertiser, end users are the product, and developers are largely third-party partners. Most major web browser vendors are large corporations with diverse product portfolios. The web browser product is a loss leader and the team's relationship to developers and users is not altruistic; it’s complicated! All that to say that your business is unique too, and it’s your job to understand how developers fit into your value chain.

Once you accept that developer experience is user experience, you can apply decades of UX research and tools to DX like personas, journey maps, and helpful frameworks like the Kano Model. If you are interest in hearing me talk more about all of this, I gave a talk on the topic at DevRelCon 2016 in London: video and slides.

The Kano Model

The Kano model is great for helping understand what aspects of your experience drive user satisfaction and delight and can help with feature prioritization. It's also helpful in understanding how user expectations change, for example most "delighters" shift to "baseline expectations" over time.