It’s not easy being a developer. Development teams have to constantly switch gears and solve a plethora of complex problems, all under the time constraints of today’s agile sprint structure and the pressures of rapidly-growing businesses.
Their time and talents shouldn’t be taken for granted – the level of efficiency and problem-solving expected of today’s development teams is a tall order.
Because of these big expectations, developers need to have the right tools and processes on a daily basis. To provide this, organizations need to be willing to tackle cultural and structural hurdles, better utilizing developer time.
In fact, those who focus on improving their developers’ day-to-day processes will probably see the greatest returns from software investments. Developer velocity is not just speed – it’s about harnessing the full potential of your talent.
This is what developer experience is all about: improving your software development processes, simply by making your developers’ daily jobs as straightforward as possible. It’s a concept that requires both empathy and strategy to successfully acheive.
What makes up developer experience
For many, developer experience might seem like a vague concept as it is typically thought of as qualitative rather than the quantitative measurement. The component of software engineer/developer happiness might seem difficult to grasp or show direct impact. After all, how do you make concrete changes within a technical field, solely based on how a group of people inside your company are “feeling” about their jobs?
Well, it turns out that developer experience is directly tied to several measurable factors. Working towards a streamlined, efficient, and logical development process is a great way to ensure that the developer experience will be good as well. It’s all about taking a critical look at the people, processes, and technologies that your developers come into contact with, and finding ways to make all aspects of these three categories better.
It starts by asking questions like, “is there good communication happening between the people across teams?”, “are the processes as streamlined as possible?”, and “do our developers have the right technology to succeed in their jobs?” Some businesses hire Developer Experience Engineers as designated specialists to help respond to these questions.
Developer experience focuses on ways to enable developers to do their best work.
“A great developer experience gets out of the way, leaving the developer in a flow state. DX allows developers to be more effective, by making the good thing the easy thing – in areas such as testing, security, and observability this is increasingly important. Good DX allows for shift left.” - James Governor from RedMonk
Why is developer experience important?
We’d venture to say that developer experience is more important than other traditional measurements of software development, such as the number of hours that a developer worked, how many bugs they fixed, or how many features they shipped during a specified time period.
At Launchable we know firsthand how developer experience impacts our own team’s success. Happy developers innovate and are game changers:
They are better engaged and more highly motivated.
They have increased creativity and innovation.
They create better-quality code.
They have higher confidence.
They work with higher levels of focus, maintaining a sustained flow.
Business performance drastically improves when organizations specifically focus on empowering developers, building the right environment to innovate, and dropping the areas that cause friction.
“The companies that have mastered Developer Velocity focus equally on empowering the developer, anticipating critical enablers, aligning investments with customer value, and minimizing barriers to productivity.” - McKinsey
Your developers might be hitting the marks with other types of success metrics, but this doesn’t mean that they’re having a good experience with their jobs, and it won’t stop them from jumping ship when they’ve had enough.
Top Four Developer Experience Drivers: Culture, Tools, Product, Talent
For many, the automatic reaction to the idea of developer experience is to throw more tools at the issue. Tools are important, for sure. But, they’re only part of the equation. To improve the overall developer experience, businesses need to focus on four key areas:
Culture beyond pizza party-level perks
“Culture” doesn’t necessarily mean allowing dogs in your offices, creating more virtual game nights, or sending your developers to Top Golf. When we say “culture”, it means creating a precedence of psychological safety for your team members.
Your developers should feel safe to experiment, fail, and learn in an environment that won’t punish them for making mistakes. This type of company culture comes from the top-down, with management focusing on not only overseeing their teams but also doing what they can to contribute to their success.
Developers also get a sense of psychological safety when the upper management encourages knowledge sharing and continuous growth. Good company culture also comes from customer-centricity. It should all be about the customer, not about meeting certain internal metrics or pleasing the executive team. When the whole development team is focused on a single goal – making a product that leads to customer satisfaction – they are more likely to feel like a unified team and accomplish great things.
Best-in-class tech stacks and tools
Each stage of development needs to be equipped with tailored tech stacks and best practices. It’s not about seeing how many fancy tools you can add to your organization, but about finding the best fit for each stage. One of the best places to start is by building out a CI/CD pipeline and adding the tools to accomplish this goal. Continuous Integration and either Continuous Delivery or Continuous Deployment use automated processes to streamline software development, eliminating a lot of the bottlenecks and pain points that come from manually performing every part of the development process.
Think through tools that not only establish the CI/CD pipeline but can also continuously improve it. While CI/CD is helpful, it also has flaws. For instance, Continuous Integration and Continuous Delivery/Continuous Deployment rely a lot on automated tests. And when these tests are added into the process incorrectly, they detract from productivity and take time away from innovation.
Developers might end up needing to wait for hours for a huge number of tests to finish running. Including tools that focus on developer velocity gives time back to your developers and eliminates toil from their testing cycles. Predictive Test Selection focuses on developer experience by Identifying the mission critical tests that need to run and cutting out the unnecessary tests that bloat your cycle times. Faster, smarter testing cycles means more time for developers to innovate.
Alongside CI/CD tools and other tool options that help to improve the pipeline, you should also consider tooling that will help with organizing tasks and communicating between teams. Think DevOps tool staples like kanban boards, or similar project management options.
Balanced product management focus
Product management is all about ensuring that your team achieves on-time and on-budget releases that ultimately lead to a great customer experience. If products are consistently getting released late, costing too much to produce, or creating poorly-received results for customers, it’s a good indication that something is going wrong somewhere down the pipeline.
McKinsey identified six areas of product management to focus on: “customer experience, strategic skills, business acumen, technical skills, leadership skills, and organizational enablers (such as mechanisms that assist with strategic prioritization, funding, and the adoption of product telemetry).”
It’s critical to balance the focus on all six areas. Companies that had above-average performance in all six areas were achieving better development velocity than those that only scored high in one or two of these areas.
Talent management that nurtures
Organizations need to give employees opportunities for growth and learning. Developer experience focuses on not just improving business productivity, but adding value into developer daily lives, and that includes opportunity to innovate. Organizations that focus on offering incentives, creating multifaceted recruiting programs, developing a rich program of ongoing learning, and providing well-defined engineering career paths nurture talent and have better retention success.
Beyond attracting talent, an active measurement of team health helps gauge if development experience efforts are working and to identify if they need to be improved in some way.
Related Article: Measuring Developer Experience Requires Empathy and AI
Improving Developer Experience with Launchable
Here at Launchable, we’re focused on increasing developer happiness and velocity through testing tools powered by machine learning. One of the biggest tool challenges for developers is inefficient testing practices. We focus on fixing long testing cycles, leading to an overall better development experience. Our Predictive Test Selection minimizes the bottlenecks caused by running large test suites, only selecting the best tests for each situation. In addition, our Test Suite Insights enable teams to identify problematic tests (whether they’re degrading in quality over time or consistently returning false results).