# General Build Distribution and Its Effects on Build Feedback Times

DevFeed: [General Build Distribution and Its Effects on Build Feedback Times](<https://devfeed.tech/articles/general-build-distribution-a-game-changer-or-a-gimmick-24618.md>)

Original publisher: [Read original article](<https://blog.gradle.org/general-build-distribution>)

Author: Kyle Moore

Published: 2022-07-12T06:00:01Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [build performance](<https://devfeed.tech/topics/build-performance.md>), [build times](<https://devfeed.tech/topics/build-times.md>), [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Gradle](<https://devfeed.tech/topics/gradle.md>), [Caching](<https://devfeed.tech/topics/caching.md>)

Tags: [build-performance](<https://devfeed.tech/tags/build-performance.md>), [cache](<https://devfeed.tech/tags/cache.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [gradle](<https://devfeed.tech/tags/gradle.md>), [incremental](<https://devfeed.tech/tags/incremental.md>), [performance](<https://devfeed.tech/tags/performance.md>)

## AI overview

The article examines general build distribution as a way to improve build feedback times, especially for JVM projects. It argues that distributed builds do not replace a well-tuned build process, incremental build performance matters more than full rebuilds, and distribution beyond test distribution usually provides marginal benefits.

## Source excerpt

The Remote and Distributed Build Patterns article explains the differences between remote and distributed builds and variations on each. Specifically, we distinguished between "test distribution" and "general build distribution". This article discusses distributed builds in a broader perspective of improving build feedback times. We'll start by explaining the types of changes engineers tend to make, identify the typical bottlenecks and share how these relate to distributed builds. We will also study the performance potential of general build distribution. Finally, we will explore a holistic approach to improving build feedback times. In greater detail below, we will elaborate on these three findings: Building in a distributed fashion is not a substitute for a well-tuned build process. Improving incremental build performance, not "full rebuilds", is the most important aspect of improving the local developer experience. General build distribution of a well-tuned build beyond test distribution is an evolutionary, not revolutionary, process that yields marginal performance benefits for most JVM projects. The analysis and findings presented here apply especially to projects for the JVM ecosystem. Future follow-up articles will address the Android and native/iOS ecosystems. Most Important Scenarios to Optimize Two keys to improving the local developer experience lie in understanding the typical bottlenecks faced by engineers, as well as the types of changes built by engineers as they add new features, fix bugs and write tests. Test Execution is the Bottleneck Test execution is frequently the single most time-consuming portion of build time. Optimizing builds to avoid unnecessary test execution can yield large productivity gains. The Gradle Build Tool already skips tests when no meaningful changes are detected on the classpath, and can also restore test execution results from the build cache. The post Stop rerunning your tests does a great job of explaining the efficiencie