Developer Productivity Engineering Newsletter
Expert Takes
Alberto Mijares Demystifies the Roles of Binary Repositories and Build Caches
A modern and productive development environment should include both binary repositories and build caches. Because they share the goal of making the build process more efficient and because certain features overlap, it is not uncommon to assume that one can fully replace the other or mistakenly conclude that both target the same issues.

Both can play a needed and complementary role. The main focus of a remote binary repository is to facilitate long-term integration of software by providing a reliable storage for binaries produced by a build. Build caches mostly focus on optimizing the whole development experience and allow finer grained composition of CI builds. In simpler terms, binary repositories make the build process more efficient by improving reliability, while build caches focus on accelerating build speed.

In a recently published BLOG post, I analyse both tools so that we can better understand how exactly each achieves these related but distinct objectives and contributes to an efficient development environment.
Ideas & Insights
Hans Dockter on How Build & Test Reliability Issues Kill Morale
Frequent reliability issues have a quantifiable impact on feedback cycle time and developer productivity. However, their negative effects go way beyond that. Imagine that you have to repair something under your sink. You squeeze yourself into a very tight cupboard and try to get comfortable lying there in a very awkward position. It takes time and a lot of patience to get the screwdriver settled on a wobbly screw. Finally, you start to loosen the screw and then the screwdriver snaps. Now you have to extract yourself from underneath the sink, find a new tool and start all over again.

Now imagine that fixing sinks is your job and a tool failure happens to you multiple times, every day. That might give you an idea of how frustrated many developers feel today about relying on unreliable tooling while doing challenging work. DPE addresses this frustration with tools for Failure Analytics that help you get ahead of reliability issues. These include Build Failure Analytics and Test Failure Analytics for managing flaky tests and other problematic test failures. These tools can not only have a positive impact on feedback cycle times and team productivity, but also on team morale since time is not wasted dealing with flaws in the toolchain.
Community News
Embracing DevProd Engineering in Android ‒ Video Series
Roger Taracha has launched a new video series that he will host on his YouTube channel, TheDancerCodes, that covers the importance of Developer Productivity Engineering and explores why Android developers and teams should embrace DPE as part of their development lifecycle. The first video in the series provides an introduction to DPE for the Android community.

According to Roger, Developer Productivity Engineering is fast becoming an integral part of the development and release process in the software engineering world today and the benefits of investing in DPE significantly outweigh the cost and the frustration that results from inaction in this space.

The video series aims to take you through real-life examples of using Gradle Enterprise to diagnose builds, improve the build experience, and help you make the business case for investing in a DPE initiative. It will also highlight the power of using Gradle Enterprise ‒in conjunction with other open source tools‒ to make data-driven decisions that continuously improve your build process and developer productivity.
Spring Project Continues to Crush Feedback Cycle Times with Gradle Enterprise Build Cache
The Spring Project’s success implementing DPE tools and best practices has been well chronicled as part of a blog post authored by Andy Wilkinson back on June 8, 2020, entitled Migrating Spring Boot's Build to Gradle. Looking at the project’s public instance of Gradle Enterprise, you can see that over a 90-day period, the Spring Project has saved 195 full (24-hour) days due to the impact of build caching and 220 days overall (~5,200 hours). Hover over the savings numbers to see the details. Use the link below to track the team’s progress in real-time.
Video of the Month
Build Failure Analytics ‒ a Data-Driven Approach to Improving Build Reliability
Faulty build infrastructure and bad dependency configurations are two of the most common causes of unexpected build failures that halt software development. Proactive data capture and monitoring are critical to resolving these disruptive problems quickly.

In this 9-minute video, Eric Wendelin, Analytics Lead Engineer for Gradle, shows you how to identify and troubleshoot Gradle and Maven build failures like these using a combination of Build Failure Analytics and Build Scans from Gradle Enterprise.

Together with the Flaky Test Management capabilities delivered in Gradle Enterprise Test Failure Analytics, extraordinary insights can be gained into many aspects of software assembly.
Featured Upcoming Event
Hands-On Workshop: Gradle Build Cache Deep Dive
On October 14 Gradle will host a training where participants will learn the basics and best practices to make the most of caching in Gradle builds. The different possible architectures will be discussed, how they affect build performance, and how Gradle Enterprise can help with the management, analysis, and troubleshooting of the Build Cache. This is a 3-hour training session followed by 30-minutes Q&A. Maven build tool users, as well as Gradle Enterprise users interested in speeding up builds, are encouraged to attend the training. This course assumes a good understanding of the Java language and working knowledge of the Gradle Build Tool.

After this training the participants will be able to:
  • Understand the benefits of using the Gradle build cache
  • Use and configure the build cache
  • Optimize build logic for maximum cacheability
  • Maximize the benefits of the build cache with Gradle Enterprise
Don’t Miss these Opportunities to Learn More
Until next time!

- The Gradle Team
Gradle Logo