I attended the Interact 2022 Virtual Conference and one topic that got me very excited about was the concept of Developer Experience, or DX. This is the experience developers have while working in their development environment.
This got me thinking about what good Developer Experience meant to me. I created this diagram using a sketchnote technique that I recently learned to illustrate what is important to me in a good DX environment.
First and most important is the team culture. Being part of a team that has a sense of purpose and know what the impact their contributions do to the greater good of the company is very important to me. It builds a culture of trust and respect among colleagues which in turn allows us to be our authentic selves at work. This makes us happy, build better relationships, and also increases performance and productivity.
Continuous Learning is another important factor in DX because the only constant in technology is change. Providing opportunities to grow our skills and develop new ones is vital to keeping developers happy and engaged. The new skills we learn can in turn help us refactor legacy code, inspire us to create new and innovative software, and allows us to be more open to creative ways of problem solving. As developers, it is pivotal to stay current and relevant in our industry because the skills we learned a few years ago become quickly outdated.
An idea I came up with is to create a Developer’s Toolbox. This could be a portal or set of internal web tools that the team can implement to improve their day-to-day work experience. Some examples of what this toolbox could contain are code templates for a new software, coding standards and style guide, common algorithms, code snippets, and more.
I regard Documentation as very important in a developer’s environment. No one wants to be in a position where they need to update code and there are no comments within it. Or try to figure out a workflow for a software without any user guide or technical documentation either. In additional to the expected set of documentation about software, it would be nice to add technical documentation for routine tasks, processes and workflows, server information, how-to’s, API and Dependencies, and other resources.
With my Project Management hat on, I am continuously looking for Process Improvement within my organization. Within the DX scope, I like to improve on processes that help eliminate human error or repetitiveness as it allows developers to have more time to focus on more important tasks and projects. Some ideas are the automation of repetitive tasks, create tools to monitor the health of our various web applications, and easy way for us to view various logs.
Lastly, what Tools and Frameworks are available for the developers to use? Is there an appropriate IDE to edit code in? Are there tools to help with Project Management? Does the programming environment brings joy and allow the ease of writing code? Are there data visualization tools to help show impact? Developers will be using these day in and day out, so make sure they are happy with their development tools and environment.
Good developer experience allows developers to be productive, grow, and not get stuck. It gives them happiness and joy in what they do best – write code. Having a great team culture where they can have technical conversations, thrive, and learn from each other is one of the driving forces that software developers look for in an organization. So how is the DX at your organization and what does good DX mean to you?
How To Improve Your Team’s Developer Experience
This is a great discussion of DX from Interact 2022 Virtual Conference.