Developer Productivity Engineering Blog

Test Distribution In Action: A Practitioner’s Feedback from the Trenches

Test Distribution is an approach that accelerates test execution and complements build caching while addressing many of the limitations of single-machine parallelism and CI fanout. It does this by extending test parallelism which farms out test execution to remote executors. Along with Build Cache, it is one of the major build and test acceleration features available in Develocity. 

We caught up with Cedric Champeau, consulting member of the technical staff at Oracle, a former engineer on the Gradle Build Tool core team and a Groovy committer, to ask him about his experience with Test Distribution (TD) while working on the Gradle Build Tool open source project.



Read More →

A Pragmatist’s Guide to Flaky Test Management

A test is “flaky” whenever it can produce both “passing” and “failing” results for the same code. Test flakiness is a bit like having diabetes. It’s a chronic condition you can never fully cure and put behind you. Even if only 0.1% of your tests are flaky, with thousands of tests you can have problems with a considerable portion of your builds. This is common to even medium-sized development teams. Left unmanaged flaky tests can render a body (or body of tests) severely damaged. But your prognosis is good if you continually measure and act on the relevant health indicators.



Read More →

Announcing Test Distribution Auto Scaling

In Develocity 2021.2 we’ve added support to auto scale agents when using an elastic compute platform based on demand for how many tests there are to run. In this blog post, we’re going to show you how easy this is to set up in a Kubernetes cluster, and show how test execution times of both Gradle and Maven builds are affected in different usage scenarios.



Read More →

Two Simple Tips for Leveraging Software Build Performance Trend Data

Develocity Trends & Insights allows dev teams to respond proactively to systemic problems and longer-term performance regressions. It does this by providing a Trends Dashboard that makes key metrics and KPIs more observable and actionable. In this post, I share two simple but powerful tips for using trend data to interpret and evaluate build performance. I then demonstrate these principles by analyzing trends from an actual Develocity customer.



Read More →

Develocity for Maven: Dependency Management Key Features & Benefits

Did you know that Develocity Maven Build Scans now offers a Dependencies section that visualizes the resolved dependency graph used to form the classpaths for each module. It is available for every Maven captured build, without the need to invoke a specific Maven goal. Maven dependency resolution visualization requires Develocity Maven extension 1.4+.



Read More →

Gradle Build Cache Node Replication in Android

In this guest post, Roger Taracha, senior Android engineer at Premise Data, shares his company’s experience using build-cache node replication to serve their distributed teams across the globe. Roger begins with a conceptual recap of the Gradle Build Cache, its benefits, and general installation/configuratIon considerations. He then outlines the key benefits of node replication and the setup and configuration process (including connecting to Develocity). Roger closes by sharing the inner workings of the Gradle build script solution that optimizes replicated node selection for local developer performance.



Read More →

Is Developer Productivity Engineering the Next Big Thing in Software?

For decades, the success formula for many (if not all) breakthrough business and technology productivity methodologies has been “Productivity = Speed * Efficiency”, where “efficiency” in this case refers to the ability to maintain or even improve quality as process and workflow execution speed up.



Read More →

Announcing Test Distribution for Maven

In Develocity 2020.5 we’ve added the missing piece to our testing product for Maven: Test Distribution (available for Gradle builds since Develocity 2020.2). In this blog post, we’re going to connect the build of the Eclipse Jetty open source project to Develocity. We will demonstrate how Test Distribution and Build Caching – with very little effort – reduce the total build time from over 50 minutes to about 15 minutes for a typical code change. We will also discuss potential options for reducing build time even further by optimizing the build for Test Distribution.



Read More →

Key OSS Projects Standardizing on Develocity

If some of the most important open source projects in the world are any indication, Develocity is quickly emerging as a staple for build and test data analytics and as a source of acceleration technology for both Gradle and Maven-based builds. Spring, JetBrains (Kotlin), JUnit, and not surprisingly, Gradle Build Tool, all rely on Develocity to improve build and test feedback cycle times and make troubleshooting more efficient with root cause analysis data (Build Scans) and failure analytics. Here’s a brief summary of the role Develocity is playing in each project and some high-level results.



Read More →