DEV Community

Cover image for Developer eXperience. How I missed it before?

Posted on

Developer eXperience. How I missed it before?

Recently I learned the term "developer experience (DX)" and it is like lightning strike. I thought about this thing a lot but didn't know how it is called. I referred to it as usability, UX for developers or ergonomics, for example, in my recent post Developer is the next blue collar job.

I wonder how I haven't heard about it before? Under which rock have I been leaving? So I did quick internet research: some people are talking about designing API or about tools, like editors, or about UX vs DX. The most useful thing I got from my search, so far, is the slogan: developer experience -  developers are people too.

It seems there are a lot of things yet to be discovered and formalized. It is a green field. I already have some ideas on the subject, and preparing some articles, but I'm learning myself and open for suggestions, ideas, advices. What would you consider part of DX? What should I read/watch to know more about DX?

Photo by Joanna Nix on Unsplash

Top comments (12)

samjarman profile image
Sam Jarman 👨🏼‍💻

I love thinking about it, after working on SDKS for a large part of my career. I wrote up everything I learned here. Please, have a read and let me know your thoughts.

meabed profile image

Thanks Sam, I loved the article and learning, great write up. Thanks for sharing

samjarman profile image
Sam Jarman 👨🏼‍💻

You're very welcome :)

puritanic profile image
Darkø Tasevski

Developers can also be the users, as we are using specific tools for our jobs, and those who develop that tools should consider us as an end user, right?
I don't see the reason for the whole new branch of design.

stereobooster profile image

Well yes and no. Yes, developers can be end users, for example, GitHub users are programmers and here all will be the same. But if we talk about best practices of designing APIs, frameworks and programming languages, which is also DX, this is absolutely stranger subject for traditional UX.

merlynkline profile image
Merlyn Kline

I came across this idea recently when Alex Bolboaca, in his presentation at the Software Craftsmanship London Conference 2018, pointed out that when you are designing the internal architecture of your software then the "users" of that design are the developers and maintainers of the software. He then went on to ask how, given that perspective, we might usefully apply some of the well-established principles of UX to our software designs in order to ensure that these users have the best experience. E.g consider Nielsen's five components of usability: Learnability, Efficiency, Memorability, Errors, Satisfaction. Does your design optimise for these considerations?

erebos-manannan profile image
Erebos Manannán • Edited

Parts of Developer Experience:

  • Sign up and login to your platform
  • Documentation (access, clarity, ease of use, realistic example use-cases, etc.)
  • Ready made libraries, examples, etc.
  • Issue tracking systems
  • Feature requests
  • Support
  • Clear vocabulary

If you're providing code, frameworks, libraries and such:

  • Code quality
  • Error handling
  • Good public APIs (function signatures make sense, arguments make sense, ...)
  • Naming
  • Genericity (is that a word?) - working nicely together with other tools
  • Docblocks etc. that allow IDEs to work great
  • Not depending on black magic that confuse IDEs
  • Easy testability
ben profile image
Ben Halpern

It’s funny how a simple vocabulary addition can really help one develop a helpful mental model.

DX is a thing whether or not we have a word for it, but it is a really fascinating space.

quinncuatro profile image
Henry Quinn

It’s funny how a simple vocabulary addition can really help one develop a helpful mental model.

Same. I had a similar lightning strike moment when I first heard the term. Trying to dig into anything I can find on the topic now. I know this comment is almost a year old, @ben , but has DEV is mostly (if not completely) open source. Have y'all been writing anything internally about DX that you can share?

cjbrooks12 profile image
Casey Brooks

I recently found October CMS, a PHP web framework explicitly created for developer experience. It is such a pleasure to work with, really a breath of fresh air for a CMS to be developer-first.

And the thing is, if a tool has a nice developer experience, it's easier for the developer to make the product better for their users,tailored for their needs. In contrast, a user-focused product either assumes knowledge about the user, and developers have to fight it to work with the nuance of their specific case, or else it has every conceivable feature to account for everyone, and becomes overwhelmingly complex.

nebojsac profile image
Nick Cinger

I feel like anything DevOps-related is good DX material.