What is Developer Experience?

Back

Last updated: 2024-02-06

Introduction

Recently, there has been a lot of discussion about developer experience, and more and more companies are now investing in this area, recognizing its significance. But what does developer experience mean in the first place?

Defining DevEx

In my opinion, it is a broad concept that covers most engineering work. But then this definition can include almost anything, similarly to 'devops' (another popular term). So, we need to be more precise, especially in the context of creating a DevEx team and defining its scope. I usually define developer experience as the 'dev' aspect of devops, focusing on three main areas.

1) The release process. I consider this the most important point. Here we're talking about the entire software development lifecycle, from writing code on a local machine to deploying it to production (and everything in between). Relevant topics in this section include the deployment strategy (and frequency), continuous integration, test automation, feature flags management, and, if applicable, mobile and desktop release strategy. The goal is to provide a safe and frictionless experience, allowing developers to focus more on the problem domain they are solving rather than worrying about, say, flaky CI.

2) Tooling. Automated local dev env setup, working with git, formatters and linters, editor integration, having a solid build system, dependency management, working with monorepos, internal dev CLI. These are just a few examples that come to mind when considering tooling. It is worth noting that this point can also be quite generic and details depend on the type of company and product being built.

3) Knowledge sharing. Information is one of the most valuable assets a company owns. Here, I intentionally did not use the term "technical documentation" because it is just one aspect of knowledge sharing. Other examples include internal tech talks and the onboarding process.

I understand that this is not a complete list. What about code architecture, observability, or data engineering? Aren't they part of developer experience too? Yes, they are! Simplifying how engineers work with analytics event? DevEx. Offering guidelines for monitoring services? More DevEx. Trying to optimize meetings to allow engineers more focus time? That's also DevEx.

But, typically, these engineering areas are handled by specialized teams. Infrastructure is managed by Platform or Cloud Engineering teams. Analytics falls under Data Engineering. IT&SaaSOps and management handle access to tools and the daily workflow for developers. These teams also prioritize providing a great developer experience. But their domain is specific enough that I did not include explicitly it in my list.

Comments

You can find a visual presentation of the ideas presented in this post here . I would love to hear your thoughts on this topic in the comments on LinkedIn!