What is Developer Experience?

Adam Czapski
Jit Team
Published in
5 min readMar 10, 2022

TL;DR

Developer Experience (DX) is a practice of making software developers’ lives easier by accommodating them in their work on projects. The liberty of choosing your own computer, working with good code, documentation, and community support are among many aspects of DX. What DX gives the employers is an increased chance of retaining and attracting good talent.

Intro

You may have heard of UX but I bet you didn’t hear much about DX. First, let me explain what these acronyms are: UX — User Experience, DX — Developer Experience. The term DX may be controversial in itself indicating that a software developer is not a user. Nevertheless, I will not discuss the contentions and rationales behind the terminology. I will treat it as a discipline of UX focusing specifically on software developers as users.

Going down into the DX hole

As a programmer, you definitely need a computer… duh. So, DX starts with something as simple as tangible tools such as PC, keyboard, mouse and more abstract tools such as OS and software. The freedom to choose your own PC, its peripherals, OS, and software is a good starting point.

The robustness of the development infrastructure plays a role in what constitutes Developer Experience. The time spent waiting for the verification of changes to the develop/master branch by CI can really slow down the advancement of the project. Working on virtual machines can be a joke if you need to run AI workloads. So, the right infrastructure can really make a difference.

The quality of code you contribute to is another aspect of DX. Good DX ensures that the code works as intended and is clear to read. Erroneously and ambiguously named variables, debugging misbehaving code for hours on end to find out that a dependency updated autonomously.

Let’s assume the above-mentioned components exist on your DX journey so far. Now you get the project up and running. Where do you usually start when you need to dive into the project? Let me answer this one for you — documentation. I’ve already penned down an article on why good documentation is important. Head over there to find out the state of documentation reported by Google and Microsoft.

Documentation on DX journey

The breadth of documentation is too big to write in detail in this section about Developer Experience. However, what I would like to emphasize here is the significance of documentation as one of the key factors of Developer Experience.

I’m more than sure that you stumbled on bad, unclear, and incomprehensive documentation that had some 404s and no code examples. And I’m also sure you didn’t want to continue with exploring the product unless you really, really had to or were self-motivated. That poor DX is a blow to what could be, in essence, a good product. Crossing the hurdle of getting to know the product without documentation is not DX-friendly.

One of the tell-tale signs of good documentation is the abundance of useful code examples. Let’s face it, a lot of software developers don’t read the documentation but skim-read it and just read the code contained in the documentation. So, making sure that the examples section in documentation is easily accessed is of paramount importance. Hiding the code examples under the APIs section in the TOC (table of contents) throws developers into a click-tantrum, which wastes their time. Did I mention that software developers are impatient and want to get things done right away? Well, now’s the time (pun intended).

Good developer experience is designed with the intention of not squandering and saving developers’ time and aims at providing information and context indispensable to get developers up and running fast.

What developers also like is to jump right in to see how things work. Static code examples are a step forward towards enabling this option for developers. However, the sheer act of copying code snippets, installing software dependencies, and all that jazz that comes with preparing the dev environment to see how the code works is time-consuming. That just goes against the grain of good developer experience.

Introducing the code interactivity/interaction to documentation solves the problem of reading the code statistically. Good developer experience should provide a possibility to run and edit examples from the documentation website. Interactive discovery of code from the documentation website is becoming more streamlined catering to software developers. These interactions are based on combining content and interactive virtual machines into one single place to provide the best of both worlds. Below, you can see a list of links to services and documentation examples that bring content and code alive.

Community support

As a software developer, you must have heard of StackOverflow and used it to solve some of your problems. Admit it! StackOverflow is the incarnation of good developer experience that enables knowledge sharing and help-seeking. Without a well-established community for a particular technology, software developers will have a difficult time looking for help and answers to their problems. An online forum or group may be the only channel for developers to ask questions to a broad audience. Hence, gathering together on Facebook, Linkedin, Gitter, Google, Gitter, Hacker News. So, community portals constitute good developer experience. Not to mention that documentation websites rarely offer to leave a public comment on a page (mainly due to maintenance efforts and spiteful comments).

What DX changes in the market

Hiring excellent software developers is not an easy task. Even if a recruiter manages to sway a senior developer to leave his/her current position, it is not bound and certain that this individual is going to stay with the new company. So, assigning a software developer with 10 years of experience to deal with spaghetti code will create frustration for the developer. The never-ending battle of comprehending bad code will cause a bad Developer Experience and there is a finite amount of mental friction that the senior developer can take and it may result in his quitting. Hence, good Developer Experience increases the chances of good talent retention since most companies are willing to pay big bucks to experienced specialists. Developer Experience may be one differentiator that tips the scales to hiring excellent software developers.

Conclusion

Developer Experience is very much human-psychology centered, being the human factor of IT. So, one of the ways to keep developers happy is to provide a good developer experience. Happy people are generally more motivated to work, stay in the same company, transition to new technology, and positively affect others’ work. In the very competitive world of IT, excellent DX may be a breath of fresh air on top of what every other IT company offers to their employees.

--

--