Defining Developer Experience (DevEx)
Developer Experience or DevEx is an emerging DevOps practice that focuses on creating the best environment for developers in order to boost productivity, quality, and overall job satisfaction. The DevEx ecosystem encompasses everything (tools and technology) and everyone (teams) the developer encounters on the journey from initial onboarding to ongoing deployment. Many of these present an unnecessary cognitive load for developers, meaning that they can’t code “in the flow” but rather need to go and do something they are less familiar with, like dealing with ArgoCD and Kubernetes.
In essence, DevEx is the measure of how empowered and efficient developers feel while working within a particular ecosystem. A positive developer experience not only enhances productivity by getting developers to do what they need, but also affects retention and morale.. As DevOps practices get more advanced, cognitive load and the sheer amount of devtools add up, so that companies with a focus on DevEx can abstract some of that toil and complexity from developers..
Armed with the understanding that a focus on DevEx is key to improving velocity, agility and workforce retention, forward-thinking companies are establishing dedicated developer experience teams, often as part of an overarching platform engineering approach.
Understanding Developer Needs
DevEx is not one size fits all. Understanding the specific needs of developers, and developers with a specific organization dynamic, is fundamental to optimizing DevEx. This involves delving into the daily challenges they face, their preferences in tooling, communication channels, and processes they find most effective. This is very much like the approach product managers take when trying to determine what features and capabilities are needed in a product.
By actively seeking feedback, gathering insights, prioritzing and understanding their pain points and preferences, DevEx leaders can determine a roadmap to improve developer experiences.
Designing Intuitive Tools and Interfaces
DevEx's goal is to design a toolbox where every tool fits in the developer’s hand perfectly and they know precisely how and when to use each one. User-friendly tools and interfaces can make the difference between a developer being in a state of flow or a constant state of frustration. When developers can interact with tools and platforms seamlessly, without getting overwhelmed by complex interfaces, they can focus more on coding and less on navigating cumbersome systems. Some organizations use platform engineering and the internal developer portal as the primary tool to address the developer experience.
For example, a well-designed developer portal can consolidate complex processes (scaffolding a microservice, provisioning an ephemeral environment) into simple self-service interactions, reducing confusion and streamlining tasks.
Self-Service Capabilities and Developer Portals
As mentioned, one of the established cornerstones of a positive DevEx comes with the ability to offer self-service options through an Internal Developer Portal.Developer portals should provide a comprehensive overview of the software delivery life cycle, and empower developers to self-service rather than use tickets to make requests of devops.
Using developer self-service, developers can provision resources, set configurations, and perform day-2 actions. Simplified access to APIs, documentation, scorecards and dashboards also help to create a unified platform for developers to collaborate and share knowledge. DevEx Frameworks and Metrics
DevOps is about consistent measuring and optimizing. Emerging DevEx Frameworks offer a foundation for what organizations and DevEx leaders should focus on measuring, and how to optimize developer experience.
Gartner's research paper titled "DevEx: What Actually Drives Productivity" identifies three main pillars of DevEx: feedback loops, cognitive load, and flow state:
- Feedback Loops: How fast developers receive inputs/feedback in response to their actions, and the quality of the feedback.
- Cognitive Load: Minimized interruptions, comprehensive code documentation, and being safeguarded from timeline and delivery pressures and frequent context-switching instances, enables engineers to focus on developing complex software systems.
- Flow State: Developers in the flow state need to be empowered to be fully immersed in their tasks and maintain a focus on their challenges. Growth, innovation, and productivity are improved in this state.
Measurement and evaluation of metrics within each of the three dimensions would uncover the various sources of friction encountered by developers and help to maximize the organization's desired outcomes. Yet, measuring Developer Experience can be seen as a balancing act between an art and a science; teaming “scientific” KPIs to measure workflow effectiveness, with surveys and feedback tools used to measure the way a developer feels through every step of the SDLC.
The Making of the The DevEx Engineer
DevEx is a new persona taking shape within organizations. Its primary mission is to reinstate agility that is often overshadowed by modern DevOps complexities. A DevEx Engineer is a unique blend of three critical qualifications:
Developer: They must have a deep understanding of full-stack development, with expertise in both backend and frontend development. This is essential as they are essentially building tools for fellow developers.
DevOps: A DevEx professional should also be well-versed in DevOps practices. Bridging the gap between infrastructure and developer experience is a vital aspect of their role.
Technical Product Manager: To provide enriching experiences, they need to think like a product manager. Understanding developers' requirements and offering effective solutions is key to their success.
DevEx Best Practices and Case Studies - Examples from Twilio and Snyk
Twilio and Snyk, two industry giants, are both examples of companies that prioritized DevEx and are seeing results across the business. In a recent webinar titled: “How Twilio and Snyk Improve the Developer Experience”, DevEx leaders from both companies presented the steps they took towards improving experience and alleviating bottlenecks in their respective development journeys.
Asaf Erich, Staff Software Engineer at Twilio, describes how they used the developer journey as a guideline for their DevEx optimization process.
They began with fixing the first step in the developer journey, onboarding: “One of the first things on a developer's journey is configuring their laptop. When I joined, this was basically a long wiki page with a lot of manual steps, a lot of copy pasting new installation commands, that were error prone, our support had to spend a lot of time helping people through it. And so that's one of the reasons we decided to make this experience better. Today, it's an automated laptop setup that is built on top of Ansible. It prints, it takes less than 20 minutes now for the majority of that installation, it walks you through and shows you in text, what each step says or what each step does and installs. It has color coded output for whether it succeeds or fails, and it's independent so it can pick up quickly from where you left off if there's a transient issue.”
Twillio’s Developer Experience Team also offer “office hours”, making an on-call devops engineer available to developers in shifts to address any issues as they arise. As they continued to tweak steps along the journey, the team engineered tools to help developers consume documentation swiftly, and brought together a range of 3rd party tools, APIs and plugins into a centralized developer-facing portal, to unlock simplicity in the engineering process.
Asaf also gave examples of the continuous optimization process involved in their work and how gathering usage data from the developer portal has helped them improve: “But now that we have a centralized developer portal, we've, in this example, installed the Google Analytics plugin, which lets you pipe data on lots of things about what features are used more or less. An example here is looking at page views: what pages are people visiting? And that kind of data can really show us and help us.”
Vlad Dubrovskis, Engineering Manager at Snyk, tells the story of a DevEx journey at a less mature organization: “I'm going to be referring to something called Polaris. This is what we call our internal developer platform for managing numerous production environments. It's Snyk’s platform as a product, because Snyk has multiple live environments, not a single one, because of different variations in different regions, etc. And this is a standardized and opinionated way of using the tools we provide, that enables repeatable Snyks. So, if we need to spin up a new instance of Snyk somewhere in a new region, we can do it in an automated way. And what Polaris supports and provides developers with is things to help them with their deployment, testing, security, maintenance, monitoring, and alerting.”
Snyk’s developer infrastructure team is focused on Polaris, but also on a service catalog where they manage service templates, and on engineering insights, which also goes into two different buckets, one for insights used to optimize engineering efficiency flow, and the other for user interviews and surveys, etc.
Dubrovskis offers up a nutshell explanation of engineering an internal portal: “I call it a UX box of tricks, we’re borrowing those things, we're not inventing ourselves, we’re borrowing it from user experience overall.”
In the future, Dubrovskis’s team at Snyk plan to make the connection between developer experience and customer experience: “And the final one is, again, something we haven't done yet, like a proper survey, but absolutely focusing on having that is like a repeatable way to track impact over time, because that will help us understand and ask some questions like, What is getting in the way of delivering customer value for the teams? And overall, are developers happy to work at Snyk? For example, something like an NPS score.”
Conclusion: Prioritizing Positive DevEx
Prioritizing Developer Experience represents a strategic move towards fostering a productive and satisfied DevOps workforce but can also hold the much-sought-after key to unlocking business success in today’s challenging environment. The benefits are clear: improved code quality, streamlined processes, and enhanced collaboration. When developers can work efficiently and feel ownership, the entire organization benefits.
Additional examples of DevEx initiatives: