Virtual Training: Gradle Build Cache Deep Dive – November 29, 2022. Register now.
Benefits of Build & Test Performance Acceleration Technologies:
More productive developers
Fast feedback cycles are important to productivity since developers spend less idle time waiting for builds to complete and pay less context-switching costs. Getting feedback early and often is also crucial to staying in the creative flow, iterating rapidly, and staying agile. This results in faster time to market for software-enabled products and services.
Higher quality software
Faster feedback cycles change developer behavior in positive ways like encouraging developers to run builds and tests more often rather than pushing quality checks to later stages of the development cycle. This means developers spend less time debugging problems tied to compounding changesets and aren’t tempted to cut corners like turning off tests and other safety measures to ship faster.
Improved developer experience
Productive developers are happy developers. Acceleration technologies minimize developer frustration with long feedback cycles. Companies that invest in Developer Productivity Engineering practices designed to optimize the developer experience have an advantage in recruiting and retaining top talent.
Gradle Enterprise Provides a Complete Suite of Performance Acceleration Technologies:
Avoid running components of builds and tests whose inputs have not changed.
Use ML to prioritize tests likely to fail and avoid running irrelevant tests that are unlikely to provide useful feedback.
Distribute test execution to run in parallel by remote agents.
Leverage build data observability to analyze performance and make continuous improvements.
Build & Test Performance Acceleration Technologies:
While each technology can be deployed individually and used successfully in any combination, together they represent a complete strategy for build and test acceleration and continuous optimization. Here’s how.
- Build Cache. First, avoid unnecessarily running components of builds and tests whose inputs have not changed.
- Predictive Test Selection. Run only tests that are likely to provide useful feedback using machine learning.
- Test Distribution. Run the necessary and relevant remaining tests in parallel to minimize build time.
- Performance Continuity. Close the loop by sustaining Test Distribution and other performance improvements over time with data analytic and performance profiling capabilities.
|The size of the performance impact of each acceleration technology depends on the specific changes to the software that is being built and tested. For some changes the impact of one performance technology may be much higher than for others. If only one of these technologies is deployed, it is typical to experience substantially reduced average build and test times, while some very long individual builds may still be observed.
Thus, the key benefits to addressing performance by leveraging all performance acceleration approaches described here is to not only achieve even lower average feedback cycle times, but also much less variation. This increases developer trust and confidence in the toolchain and the willingness to get toolchain feedback early and often which is one of the foundations of agile development.