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 (11)
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.
Thanks Sam, I loved the article and learning, great write up. Thanks for sharing
You're very welcome :)
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.
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.
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?
Parts of Developer Experience:
If you're providing code, frameworks, libraries and such:
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.
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?
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.
I feel like anything DevOps-related is good DX material.