Originally Published at SD Times
We’ve found ourselves amidst a rapidly-changing industry, pushing for faster development cycles and less-siloed departments more than ever. While advancing technologies and better methodology look great on the surface for company decision-makers, they’re missing something even more important to avoid production bottlenecks. To successfully engineer software in our competitive landscape, you need to improve the developer experience.
Developer Experience (DevEx) is the combination of the interactions and feelings that each of your developers encounters when they’re working towards a goal. Developer experience encompasses every area of your organization that developers interact with – architecture, tools, processes, and culture – and all the positive and negative experiences with these elements. Unfortunately, organizations often miss the mark on prioritizing developer experience (and overall happiness). They instead end up prioritizing hiring, responding to the increased attrition caused by unhappy developers.
We see the issue in this. The more turnover your company experiences, the more time spent working and reworking processes. I worked with a company that mentioned on average it takes them 4-6 months from initial onboarding of a developer to getting them productive. Your developers find themselves training new team members, rather than focusing their time to grow and innovate as an organization.
Not to mention the challenge of finding talent in today’s environment.
“Senior executives report that the lack of developer talent is one of the biggest potential threats to their businesses. In fact, they now worry about access to developers more than they worry about access to capital, immigration concerns, and other challenges.” – Stripe’s Developer Coefficient report
The same report estimates that the Global GDP loss from developer efficiency is $300B and the efficiency loss for developers is 31.6%. Think about it – almost 1/3 of your developers’ time is lost today.
This masks the anger and frustration that developers feel as their day is lost. To improve developer experience, organizations need to understand what day-to-day struggles for their developers look like, and simply figure out ways to combat these roadblocks.
Elements of Successful Developer Experience
Perhaps it is no surprise that 96% of upper management is looking to increase the productivity of developers. Thus prioritization of developer experience is a large factor in determining whether companies can meet their aspirations.
Developers spend close to 35 hours of a 41-hour workweek grappling with bad code, debugging, technical debt, and more. Their delivery pipeline defines their developer experience. It makes sense that organizations are focusing on being more data-informed, looking at their pipeline to drive developer happiness.
Software engineering teams focused on improving developer experience are already reforming areas of their pipeline to be data-driven that affect developer productivity and overall happiness. Here we identify the top three advancements teams are incorporating for sustainable and successful developer experience.
In a TechStrong report, 66% of responders noted plans to use AI/ML in their DevOps pipeline in the next 1-3 years.
Using AI and ML for Testing Process Advancement
Testing is one of the largest bottlenecks for development teams. Within DevOps, it has continued to be the least prioritized phase for advancement, yet it can cause the most trouble for developers. There are two common scenarios that which teams can lean on AI and ML for improving processes: having too few or too many tests.
AI/ML for Too Few Tests: Not enough tests lead to developers flying blindly, unable to catch errors quickly enough. If bugs get passed downstream, errors have a higher likelihood of compounding making them even more of a hassle to deal with when found. Your best bet at this point is to get more tests into the system. This is where AI test-generating tools like Mabl and Mesmer come in – focusing on adding more quality tests, rather than buffing up testing programs with tests that don’t provide meaningful results.
AI/ML for Too Many Tests: It’s all too common to see organizations facing bloated testing pipelines. Performing unnecessary tests during each commit takes time and increases the possibility of false positives/negatives. To combat this, teams are using ML to support testing at scale, collecting data to identify the necessary tests to run.
Noise Reduction in Development Pipeline
How many notifications are your developers getting every day? There is a common battle between the oversaturation of notifications and feedback exhaustion that developers face with their pipelines. Tampering the level of unnecessary feedback and getting the right signals to the right people drastically improves the developer experience. But where can you truly cut down on noise?
A major contributor to this noise is flaky tests, often a result of tests being written wrong or of the environment. The strain on timelines compounded with test mistrust drains developer resources leading to distrust of tests in general while adding unnecessary noise to pipelines.
Organizations are minimizing flaky tests with new models and automation. Spotify’s test flakiness system and Dropbox’s “automated build health management system” focus on understanding the significant impact of flaky tests and finding a solution that works for their teams.
Focusing on Quality Over Quantity of Data
It’s important for organizations to realize that data for data’s sake doesn’t lead to better pipelines. Developers are producing a tsunami of data on the regular. But that data doesn’t hold value just from the sheer amount of it. An overabundance of data can negatively impact developer experience if it is not effectively used.
“Data users can spend between 30 to 40 percent of their time searching for data and 20 to 30 percent on cleansing it. The result is often a kind of data drunkenness where companies chase after different ideas in an uncoordinated and disjointed fashion. In effect, they’re trying to manage the scale rather than extract the value.” – McKinsey
Organizations focusing on the quality, rather than quantity of data, are finding the most success with using data to make pipelines smarter and improve developer happiness. More than 60 percent of tech leaders say they are planning to scale data, analytics, and AI. Perhaps surprisingly, this is more than any other tech initiative.
Modern Data-Driven Pipelines Foster Happier Developers
Fostering happier developers is less about reinventing the wheel, and more about actively improving your existing pipelines to become data-driven.
The maturation of software engineering teams should inevitably result in a focus on developer experience. Establishing a team to lead this charge – whether named specifically for Developer Experience or within a Developer Excellence or Health initiative – should have a universal vision that will focus on keeping engineers working. The overall goal of these teams should be to not reinvent the wheel and lean on established truly Developer Experience Platforms and Tools for long-term developer happiness.
Your organization doesn’t need to pioneer creating a better developer experience. Successful organizations are already out there adopting solutions for improving the developer experience. It’s just about finding the best tools, methods, and solution partners for your organization’s needs.