It was bound to happen: after UX (user experience) and CX (customer experience) it was only a matter of time before DX (Developer Experience) took center stage. Nowadays it's in the marketing copy of every library and product aimed at developers. But what does DX mean?
As it turns out, the definition of DX has evolved in important ways over the past decade. This month in the DX Newsletter, we’ll review three trends found in academic and industry articles to set the stage for a broader conversation.
The combination of “developer” and “experience” yields a jumble of ambiguous concepts throughout the years. For instance, most results point to the seniority of a developer.
But as we understand it today, “Developer Experience” was used first in 2012 in a paper by Finnish Ph.D. candidates published in the renowned technical journal IEEE.
The authors built a conceptual framework for Developer Experience, drawing concepts from psychology and UX practice:
Adapted from Figure 1: Developer Experience: Conceptual Framework (*Fagerholm F. and Münch J., 2012).
Subsequently, most references to DX before 2021 were mainly concerned with code, with API ergonomics, documentation, and a support community taking a privileged place.
For example, as Red Hat argued in 2020, good documentation and a welcoming community are “essential parts” of DX and will help you decide if it’s even worth trying out an API, no matter how “ergonomic” its creators deem it to be.
For teams creating tools, services, or products for developers, Sam Jarman wrote an ever-green DX guide back in 2017 with practical considerations to improve any API’s documentation and distribution.
Code is fundamental in DX, but developers spend only around a third of their time coding. In 2021, we’ve come full circle from 2012’s psychology-based definition of Developer Experience. Now the attention is back to the developer as a whole: tools are still a focus, but so are factors like psychological safety.
Jean Yang, CEO of Akita Software and former professor of Computer Science at Carnegie Mellon University, proposes that DX has two aspects: one is abstracting complexity away, and the other (less explored purpose) is helping developers navigate complexity. Developers face messy and complex problems in their daily work, and can rarely swap their systems for new abstract “dev-friendly” tools.
In sum, improving the Developer Experience for any team is a holistic endeavor that encompasses technology, working practices, and organizational enablement. As Microsoft explained in a review of four industry case studies, companies undertake multi-year plans to improve their DX to achieve more productivity and better retention rates.
Originally published in our DX Newsletter. Subscribe below!