DEV Community

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

Developer eXperience. How I missed it before?

stereobooster on November 04, 2018

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...
Collapse
 
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.

Collapse
 
meabed profile image
Meabed

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

Collapse
 
samjarman profile image
Sam Jarman 👨🏼‍💻

You're very welcome :)

Collapse
 
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.

Collapse
 
stereobooster profile image
stereobooster

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.

Collapse
 
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?

Collapse
 
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
Collapse
 
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.

Collapse
 
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?

Collapse
 
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.

Collapse
 
nebojsac profile image
Nick Cinger

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