As development teams continue to grow, the industry has seen a need for a new role: the developer experience engineer. The purpose of this role is to be sure developers have the necessary tools, environment, and processes to foster the best end result. While the concept of developer experience is not new, in recent years this position, and others like it, have emerged organically and are rapidly gaining traction.
According to Tim Kadlec, performance engineering fellow for WebPageTest with Catchpoint, the role of the DevEx engineer stemmed from recognizing developers as customers. “I think it goes back to the realization that any tool or any product that is aimed at a developer audience, that is your customer,” he said. “So if you’re trying to reach that audience and get them excited about the project and trying to make sure that they enjoy using it, it is going to have to come through the entire experience from their first contact with the company all the way to when they’re actually using it.” Examining every aspect of the developer’s experience with a certain product or process can lead to less friction throughout the development life cycle.
As this new role gains popularity, its importance within different organizations is becoming more apparent. “I think the Dev Experience role is important because it’s not traditional marketing, it’s not traditional sales, it’s not a traditional funnel in any way,” Kadlec said, “It’s about how we make sure there is as little friction as possible when developers want to use and engage with different tools and products.” When organizations focus on a developer’s experience with certain tools early in the development process, it can end up saving time later, as a positive developer experience will undoubtedly lead to a more efficient outcome.
According to Jeena James, GM at WebPageTest and leader of its developer team, what makes the DevEx engineer role effective in her organization is the feedback from the end user. “The users themselves, the developers, also get to see certain areas that they can actually help improve for themselves and have this ability to kind of contribute back,” James said. Having a specific role in place focusing on developer experience gives the developers a place to go with constructive feedback as they work through issues.
Kadlec explained that a role that exclusively focuses on developer experience is no longer a luxury for organizations, but a necessity. “The developer experience engineer,” he said, “they’re the stand-in for the developers who are actually going to be either writing the code internally or using whatever tool… it’s their job to sort of take a lot of that feedback that we’re getting from the community and constantly keep that in mind as we’re looking at things like what features we should build or what gets prioritized and what doesn’t. This is where the developer experience engineer role becomes really important.” Kadlec explained that the DevEx engineer is also oftentimes the one who helps to keep the team on track with where priorities should and should not lie because they are speaking on behalf of the developer community. “Not even just features and stuff like that but the entire structure of a product and the commercial offering as well, making sure that all of that is fine-tuned in a way that is going to be appealing and convenient for developers,” Kadlec said.
Different approaches to DevEx
There are several different ways in which an organization can utilize the DevEx engineer role. Kadlec and James explained that, in their experience, the most effective method is to take a dual approach, “The way we do it here is by treating the role as a split, so maybe half of their time is spent doing traditional engineering. In the case of WebPageTest, that means that half the time our developer experience engineers are building features, fixing bugs, maintaining the actual code base and then the other half of the time is spent on more traditional developer relations activities. That can be things like content production in the form of videos or blog posts or documentation or going out there and giving talks or writing sample code, things like that,” Kadlec said. He went on to explain that this split method is important because it ensures that DevEx engineers have a deep understanding of the product itself as well as the needs of the developers working with it.
Another aspect of the role that makes these engineers essential is the relationship they can build with the end user. James said, “When you’re speaking to that audience, to your user who is a developer who can actually fix some of the things that are being asked.. It’s good to have a developer talking to another developer to say ‘I get what you are trying to solve and here’s how I would fix it’.” Having a developer on your team as the DevEx engineer serves to make the developers feel seen and heard within the organization.
DevEx is a team sport
While having a role central to developer experience in place is crucial, Kadlec also stressed the importance of the rest of the team in ensuring a positive experience for developers. “It’s important to note that the developer experience role does not operate well as an island. If you have a couple of people in the developer experience engineer role but they’re kind of working detached from these other components of the business and/or they’re not receiving support from the rest of the team, it’s going to fall flat on its face,” he said. Kadlec went on to say that if the whole organization is not working with the DevEx engineer and offering their support and services where needed, the role is essentially useless. Typically, roles within a business are not meant to exist in a vacuum, but rather as an integral part of the organization at large, and the DevEx engineer role is no different.
One role with a dual purpose
Laura Thomson, VP of engineering at cloud computing services provider Fastly, said that she believes there are two aspects that make developer experience as important as it is. “One is that developer experience is an accelerant for the people that you have in your team already. We all know that it is hard to hire engineers, but developer experience is something you can use to make the engineers you already have more productive. The second part of it is that people who have worked somewhere that has a really good developer experience, will always rave about it… People who work there will say ‘I have all of these great tools at work, I have a great build system, I have great continuous integration tooling, I have great tools to help me do my job better’ and it makes people loyal,” she explained.
In terms of the role of the DevEx engineer, Thomson believes that the need increases with company growth. “As you get to be a certain size as a company, you really do need a team in this area… and sometimes it’s got a different name, sometimes someone who works in this area isn’t going to be called ‘developer experience’ or ‘developer productivity’, they might be called a ‘release engineer’ or a ‘build engineer’ but all of those are sort of parts of the same thing,” she said.
According to Lei Zhang, head of developer experience at Bloomberg Engineering, while it is important to have the whole organization working with the DevEx engineer, having too much input can sometimes become a hindrance. “I think it’s a fine balance, sometimes you have a very specific problem and we go deep into that problem, but at the same time we always need to have a global view of what the developer needs to do to get a job done and have a really good experience,” he said. Zhang explained that he sees the recipe for a successful team as having the right balance of people focusing on the specific, in-depth problems and people focusing more on the big picture and having that “global view.”
Zhang believes that the DevEx engineer role, and other positions with the same goal, have become more important in recent years due to the large amount of growth the technology industry is seeing. “I think the tech industry has been growing so massively and there is a specialization in skills and I think developer experience is at the core for developer productivity. Oftentimes, at an organizational level, it is almost the most important thing in order for an organization to have long term sustainable success.”
Zhang said that although developer productivity has always been widely talked about, the shift to developer experience is due largely in part to an increase of this specialization of skills. With this shift to developer experience, organizations find themselves faced with new challenges to overcome. Zhang divides these challenges into two common themes, “The first one is the balance between individual or team creativity, and efficiency and sustainability at the organizational level… The second one is when and how we should do tech renovation. I think that successful organizations are likely to have solutions that are highly optimized with the technologies when they were built,” he said.
Tools and technologies
Both of these challenges play a large role in developer experience because they affect the kind of tools and technologies that developers will be interacting with on a daily basis. Zhang believes that devising a plan to tackle these challenges is incredibly important when it comes to maintaining a positive experience for developers as well as sustaining the overall growth of the company.
With this, Zhang also mentioned the issue of inherent bias that may come up as a DevEx engineer. “As a developer we tend to always like the tools we use, we think that our tools are the best and that everyone should be using our tools,” he said, “but the reality is that developers have different preferences.” This bias among the developer community can lead to issues with supporting the team while also maintaining organizational consistency. It is the job of the DevEx engineer to mitigate this issue while keeping their own biases in check. Once challenges like these are resolved, the DevEx engineer role will provide organizations with several benefits.
Rob Zuber, CTO at CircleCI, said that one of the key functions of the DevEx engineer is that they enable the developer to focus all of their effort on the task at hand. This keeps developers happy and will, in turn, create and sustain developer loyalty within an organization. “If I come to a job and find that I’m spending 5% of my time on that thing that I’m really excited about and 95% navigating the organization, dealing with coordination and project status, meetings, and change management… I’m not going to stick around that long,” he said. Zuber explained that as a developer, an environment like that would not be fulfilling. He said, “[in that environment] I’m not growing in the area that I want to grow in… you want to be working on the thing that you’re excited about… and so, when my company makes those investments, that gives me the signal that they care about what it is that I’m trying to do and where I’m trying to grow.”
Zuber went on to explain what the life cycle of work might look like for a DevEx engineer, “It would start with understanding where folks are being taken away from the most valuable things they can do, and then looking for those patterns across the organization,” he said. Looking for these patterns helps to tackle the problems that affect the majority of the organization, rather than focusing on only a small percentage of developers. “If only one team has a particular problem, then having a second team build a solution to that problem isn’t particularly high leverage because it’s just getting used by that one team, whereas all of your teams quite likely have the issue of building and deploying software, for example, so you’re going to focus more energy there… it’s not just about identifying problems, but identifying problems that are most pervasive across the organization, and then helping to solve those,” he explained.
According to Zuber, another benefit of a role like the DevEx engineer is creating an easier process for onboarding new developers. “Developer environment setup is probably a pretty classic problem… If I am a new engineer in this organization, how do I get up and running and understand what I need to understand and have the tools on my laptop to start contributing effectively,” he said. Zuber went on to explain that in a smaller organization this issue would become something of a “labor of love” that would be solved by each individual new developer, but in a larger company, this would be something that would fall to the developer experience team, making solving this issue much easier. “How do I just show up and my laptop is ready to go and day one I’m coding instead of day one I’m trying to figure out the 57 pieces that I need to install to start building,” he said.
While it is not impossible for an organization to get by without a role like the DevEx engineer, it has certainly become incredibly advantageous to invest in this position. Zuber said, “I mean, you can totally get by without it… but then you would sort of be burning some goodwill by having engineers who are excited about building products and solving customer problems, invest a bunch of time in just trying to get things to work.”