Thoughts on ushering in the new year have coincided with my ongoing efforts to enhance Developer Experience (DX) at my company. Finding inspiration in this endeavor, I've decided to document my thoughts and track the evolution of my ideas, foreseeing its usefulness in the future.
Let's delve into it.
First and foremost, let's define what DX is and understand its relevance today. DX is a relatively new concept, gaining attention over the past three years. Why does it exist? I believe DX is akin to UX; people may not recognize its significance until they experience something superior. For instance, completing a form used to be a cumbersome task for users. I, like many others, would promptly leave a webpage upon encountering a form. Over time, UX designers introduced various optimizations for form submissions – boxes, input buttons, radio buttons, dropdown selections, autocomplete, keyboard navigation, and more. Users gradually realized that the process wasn't as bad, thanks to features like autocomplete and address suggestions. Browsers even introduced a feature to remember form inputs, eliminating the need to repeatedly type the same information. This evolution significantly improved User Experience, leading to the rise of jobs related to UX in the industry.
Now, let's consider Developer Experience. Essentially, what users suffered through in the past mirrors the challenges developers face.
Now that you have an understanding of UX, transitioning your perspective from users to developers shouldn't be difficult. This is fundamentally what DX is about. However, DX is not limited to use cases; it's a broad and encompassing topic. Use cases represent just one facet of the larger picture.
I am going to start with Documentation.
Whether you like it or not, having good documentation is the key to the success of Developer Experience (DX). However, the problem, as we all know, is that developers often write fantastic software but produce subpar documentation. This is a truth in the industry, much like how hardcore engineers may not prioritize their own appearance.
The engineers at Vercel , however, are not like that.
A brief exploration into the history of React and Webpack documentation reveals that, despite being world-class libraries and tools, both initially struggled with creating user-friendly documentation. Numerous complaints surfaced about React being challenging to grasp, with the documentation falling short in effectively teaching users. Webpack faced a similar predicament, lacking release-ready documentation even when the tool itself was ready for use, leading to reluctance among developers to adopt it.
Notably, the create-react-app experience left much to be desired, prompting its replacement with create-next-app. The latter boasts a smoother integration with the CLI and user-friendly configuration options, enhancing the overall development experience.
Contrasting these challenges, Vercel stands out for its exceptional documentation. The company has mastered the art of Developer Experience (DX), with a well-maintained and easily readable documentation. Notably, Vercel's commitment to DX is evident in its unique position as the only company with a Vice President of DX, Lee Roberson, leading a dedicated team. The results of this focus are remarkable, as evidenced by swift responses to user interactions on platforms like GitHub.
In my personal experience during the LearnNext.js Course, I encountered a few typos, prompting me to open GitHub issues. To my surprise, Lee responded promptly, showcasing a commitment to user feedback and continuous improvement.
In essence, the takeaway is that Developer Experience is a comprehensive package. While excelling in one aspect may contribute to initial growth, sustained success in the long run is contingent on delivering a holistic and powerful developer-centric experience.