Have you ever considered what benefits would come from treating your developers like customers or end-users? That’s the underlying philosophy behind DX Developer Experience.
UX is the widely understood framework for understanding the user experience. While UX was once considered low-priority, UX is a critical component and pivotal influence on product roadmaps.
Much in the same way UX has evolved from low to high priority for companies, we’re now seeing the same kind of transformation happen in the software development ecosystem with DX developer experience.
DX Developer Experience (also known as DevEx) is the combination of all the social and technical systems a developer uses to plan, produce, and eventually monitor software engineering. DX Developer Experience is everything and everyone developers interact with throughout their workday or duration of a project.
The main goal of DX Developer Experience is to increase developer productivity and happiness so that developers have easier, more seamless lives at work. In this way, DX Developer Experience encompasses everything from technical tools, to project management, to organizational systems, to communication, to culture.
When an organization focuses on creating a robust DX Developer Experience, developer productivity hits an all-time high, friction from the workflow decreases or evaporates, and release times speed up. All that means happier developers, quicker releases, and more satisfied clients. What could be better?
Unfortunately, there are common issues that can thwart DX Developer Experience and slash and burn the happiness and productivity of developers. Common pain points that drain developer happiness and productivity include overtaxing the development team and bottlenecks in your pipeline.
One of the most common issues that drain developer productivity is a heavy workload, and not enough team members to help with all the lifting.
Overwork and burnout are major issues for developers and problems that are only increased through the pandemic, as work-life balance continues to erode. Next, add in the ever-increasing demand to release new apps and updates faster, faster, faster and it’s no surprise overwork kills DX Developer Experience at an organization.
But, by utilizing automation to speed up the SDLC, developers can be saved from unnecessary labor, boring tasks, and a too heavy workload. Take, for example, the automation used in the CI/CD pipeline to speed up the development process.
Continuous Integration (CI) makes the beginning of the software development process faster and easier by adding automated testing and build compilation. Additionally, implementing a central source code repository saves developers time, thanks to compatibility and non-repetitive code snippets.
Continuous Delivery (CD) makes the second half of the development process more seamless by automatically delivering builds out of the repository into the test environment. Continuous Deployment (CD) builds on Continuous Delivery by automatically running the tests and deploying the builds into production sans human intervention.
With a swiftly flowing CI/CD pipeline in place, developers can enjoy a faster, smoother workday, reduce the need for repetitive, manual tasks, and put their attention on what they’re best at: writing code. In terms of improving DX Developer Experience at an organization, lifting the load on developers through smart automation delivers a pretty darn good ROI.
Additionally, bottlenecked pipelines are another major strain on developer productivity and happiness.
An automated software development life cycle requires testing at every stage, so developers can spot issues early on and don’t get stuck fixing mistakes after the facet. But, testing everything for every commit is a wasteful, time-sucking practice. Complex codebases have long test cycles, 80% of tests in the test cycle are pointless, and unnecessary test runs just create delays to launch.
Bloated test runs, running tests after hours, distrust in tests thanks to testing flakiness – all of these common issues bog developers down and drag down DX Developer Experience.
By using existing data from test runs, you can improve DX Developer Experience with smarter, faster testing - and a more frictionless workday for developers. When using a dynamic test subset based on commit metadata, developers can most easily find the tests likely to fail and prioritize them to run earlier. Ultimately, this speeds up how fast developers can work and ship code.
Faster workflow and fewer bottlenecks are the first steps to improving your DX Developer Experience, and one giant step for your entire organization.
Talent is hard to find! If you want to hire and keep the best developers on your team, it’s critical to invest in DX Developer Experience and nurture your developer journey. We are passionate about developers and development experience (after all we built Jenkins).
We are singularly focused on developer-specific use cases that improve DX Developer Experience and delivery velocity. The Launchable Dev Intelligence Platform is designed to make developers’ lives easier through Predictive Test Selection and Testing Insights.
Our Predictive Test Selection uses machine learning to identify and run tests with the highest probability of failing, based on code and test metadata, to speed up the dev feedback loop.
Rather than forcing developers to wait on massive test suites to run, every single time they commit an artifact, our Predictive Test Selections ranks tests by importance to code changes. This allows developers to create a unique subset (based on this ranking) in real-time, and run a fraction of the test suite while ensuring flaws or failures will always be found.
Additionally, Launchable’s Test Suite Insights also improves developers' work lives, through the analysis of test data in 4 key areas:
Flaky test Insights - identify the top flaky tests in a test suite, and then prioritize fixing the right tests.
Test session duration Insight - identify increases in test session time, to see when the developer cycle time has been trending up.
Test session frequency Insight - identify which tests are being run less often, to scout out negative health metrics like increased cycle time, reduced quality, or fewer changes flowing through the pipeline
Test session failure ratio Insight -identify tests that are failing more often, to see if a release is becoming unstable (especially in post-merge tests).
By focusing on improving developers' daily processes and tools, you prioritize not only optimizing their daily interactions for output, but also overall developer happiness. Happy developers have more freedom to innovate, collaborate, and deliver the highest quality products.