Developer experience: the fine art of making tools and platforms suck less

Love it or not, developer experience is buzz that’s here to stay. As the next generation of technology firms is born, while the last generation struggles to stay relevant, one of the best ways to grasp and hold a growth trajectory is simple: become a technological dependency of other firms.

To do this you have to make the case for integration.

This is harder than it sounds. Many technological abilities have become commodified. Developer experience is a differentiation play.

A successful developer experience strategy emphasizes tactics like:

  • Storytelling: Clear, ongoing narrative about the benefits of using a given technology so developers can understand where, why and how to apply it
  • Education: Approachable material—including documentation and sample code—for developing a mental model of how a technology works and how it integrates into developers’ systems and workflows
  • Onboarding: Low-friction, low-cost, high-speed onramps to test-drive a technology, allowing developers to get a feel for its abilities
  • Ergonomics: Optimization of workflows, tooling, standard libraries and API design to limit complexity, protect against error and quickly address the most common use cases

All of these areas can contribute to success, but none of them will matter without a strong commitment to a simple cause: providing accomplishment.

Developer experience is stewardship and conservation of precious cognitive resources, thereby maximizing accomplishment

You get success by creating success for other people. To do this, you have to maximize the yield of accomplishment for time, energy and attention invested in your technology.

Shitty technology that frustrates the developer is always at risk. The moment an alternative comes along that better respects their time and, especially, their sense of motivation, the incumbent technology has only inertia and lock-in to save it.

Example: Rust

Rust is a specialized language. It emphasizes performance, correctness and safety, so it can have a bit of a learning curve as a consequence of serving those goals.

But getting started with Rust is easy. A thoughtful system of trams exists to get you quickly to the foothills of its learning curve. Consider its get started page:

  • Automatic OS detection, providing a one-line terminal command to run an installation script
  • Quick briefings on the basic components of the Rust ecosystem, with links to editor-specific plugins so expert practitioners can easily use their existing tools
  • Introductions to common tasks, like creating new projects and adding dependencies
  • Sample code for a basic Hello, World! written in Rust

By covering all the necessary introductory topics, this intro to Rust:

  • Protects time and attention
  • Relieves new users of research burdens
  • Introduces tools and workflows
  • Creates a rough mental model of how to interact with the tooling
  • Generates a sense of accomplishment

It only takes a few minutes. Most of this time is the install script. By the end of a not-long page, you’ve gone from not having Rust at all to running your first program written with it.

Optimize your conversion funnel

At the top of the funnel are people who have problems and need to solve them.

At the bottom are people who have built solutions that depend on your technology.

Conversion funnels take effort, care and curiosity to optimize. You need to find the cheapest obstacle in the funnel that’s preventing your conversions, smooth it out, and repeat the process iteratively until your technology is easy—maybe even fun—to integrate.

A successful developer experience strategy is powerful because it creates irrefutable evidence of your technology’s value, in the form of people whose lives, projects and businesses are better.

For services and platforms whose billings scale with customer accomplishment, the math is obvious. Invest in your funnel, just like any other e-commerce business.