In the constant pursuit of improvement, the concept of Developer Experience (DevEx) has become more relevant than ever. In recent years, DevEx has successfully raised awareness about the importance of understanding how developers perceive and value their work to ensure not only their satisfaction but also to optimise their productivity. A win-win situation, wouldn't you say?
In this Codurance Talks episode, Abi Noda, Co-Founder and CEO of DX, explains the fundamental aspects of DevEx, its relevance as a productivity metric, and the challenges that organisations face in its implementation.
What is Developer Experience (DevEx)
Noda tells us that the turning point that put DevEx under the spotlight was the pandemic: the abrupt shift to remote work naturally sparked a renewed interest in measuring its impact on team productivity and, consequently, on organisations as a whole. Additionally, the rise of Artificial Intelligence (and the new tools that rely on it) has also led organisations to investigate how it affects developers' productivity and to measure the return on investment of tools like GitHub Copilot.
Regardless of the reason behind it, the truth is that if you genuinely want to maximise a team's productivity, it is essential to focus on the experience of its members and understand the elements that hinder their work. Only by removing these obstacles and reducing frictions will it be possible for developers to progress at a faster pace, ultimately leading to an increase in their productivity.
''Developer Experience is the encapsulation of the positives and the negatives, the delightful moments and the friction points and frustrations of the developer experience in their day to day work. It is a way of measuring productivity through the lenses of developers themselves.''
Abi Noda, Co-Founder and CEO of DX
How do you measure an experience?
Noda has identified up to 25 quantifiable socio-technical factors that significantly impact developers' experience. These factors can range from tools and infrastructure, local development processes, automated testing, test coverage, to the development environment. They also include aspects of human nature, such as the clarity of task requirements, the freedom to express opinions, and having a clear direction in terms of team goals.
However, his most recent research has shown that all these factors can be simplified into three specific dimensions:
- Feedback loops: This dimension focuses on evaluating the quality and speed of the feedback each developer receives.
- Cognitive load: It refers to the inherent difficulty of each task and the presence of unnecessary obstacles.
- Flow state: This dimension encompasses not only developers' ability to do deep work but also considers aspects such as motivation and team energy.
This model represents a simpler way to consider what constitutes the developer's experience and what we should focus on to improve it. In fact, from a business perspective, measuring these dimensions will be crucial to ensure that development teams increase their effectiveness, speed, and code quality.
Developer Experience: Why is it still absent in organisations?
The lack of visibility into developers' experience represents a significant problem in organisations, leading to a deterioration of the experience and situations where people tend to burn out. This problem is divided into two connected challenges:
- On one hand, developers face unnoticed obstacles because there is no effective mechanism to communicate these difficulties to the organisation's senior management.
- On the other hand, the lack of awareness of these problems makes it difficult to quantify them in terms of costs and impact. This, in turn, translates into difficulties in obtaining investment and attention from the company.
Another evident barrier lies in the lack of time for leaders to focus on productivity, even in organisations that value this aspect. Often, teams are expected to solve their problems on their own, which clashes with the reality that they lack the authority and availability to address these challenges. To address these issues, Noda suggests making a deliberate investment: organisations can allocate a portion of each team's capacity (e.g., 10%) to address local problems or even create separate training teams dedicated to providing coaching sessions.
Once equipped with teams capable of addressing these issues within their workflow and the necessary resources to support them, a path toward improving developers' experience and, consequently, improving their productivity is established.
Conclusions
In this episode, Noda teaches us how to actively listen to developers and consider them as key components of your business. As an organisation, following this approach will help you identify and reduce any complications that, ultimately, will improve your team's happiness and their performance.
In this way, DevEx is presented as an essential tool for promoting more sustainable and effective software development, benefiting both companies and developers. So, as your organisation seeks to enhance the productivity of its teams and the quality of its software, it will be crucial to pay attention to the needs and daily experiences of your developers.