Eliminate Developer Process Waste
Welcome to the first monthly Developer
Productivity Engineering (DPE) newsletter.
Here you will find timely information related
to this emerging discipline, including best
practices and related resources, industry news
and events, and this segment focused on ideas
and insights aimed at providing inspiration
and motivation.
Since this is the first DPE newsletter, let’s
start by defining DPE. DPE uses data and
acceleration technologies to speed up and
improve the critical software development
processes from builds to testing to CI. This
includes achieving a higher degree of
automation, more reliable and actionable data,
and, perhaps most importantly, a highly
satisfying developer experience.
The key to improving the developer experience
is eliminating build, test and CI “waste”.
Waste includes idle time waiting for builds
and tests to complete; waste associated with
inefficient processes for troubleshooting
incidents and determining root cause; and
systemic waste due to a lack of tools to
proactively manage performance regression and
build a more resilient toolchain.
If you experience these pains, learn more
about how DPE can be used to mitigate these
pains and bring more joy back to software
engineering. You can start by checking out the
Guide to DPE.
Developer Productivity Engineering at
Elastic: Avoiding the Cost of Inaction
Like many companies, the software development
experience at Elastic was starting to become
negatively impacted under the increasing
strain of slowing builds and inefficient
process for flaky tests and debugging.
And, the pain was only expected to
increase in line with the growth of
development teams and code bases. The cost of
inaction was projected to soon become
unbearable. The emerging discipline of
developer productivity engineering promised to
address these challenges through a higher
degree of automation, faster feedback cycles
and more reliable and actionable data. Check
out the recent webcast led by
Mark Vieira, Senior Software
Engineer at Elastic as he discusses how
Elastic overcame the natural resistance to
change their process and toolset by
quantifying the
Cost of Inaction and blazing
a new path toward build engineering
excellence. In this webcast you will learn the
key developer productivity pain points that
drive up the cost of inaction; Developer
Productivity Engineering concepts and
solutions; and how to quantify the Cost of
Inaction.
Speed Up Builds with “Distributed
Testing”
Distributed Testing is a new capability
available in Gradle Enterprise that speeds up
test execution dramatically and addresses the
pain associated with long feedback cycles due
to slow running local and CI
integration/system tests. It is one of the
keys to improving developer productivity and
the developer experience. You can learn more
about this new technology in this webcast from
Marc Philipp and Benedikt Ritter, software
engineers at Gradle. They will explain the
impact of slow feedback cycles on developer
productivity and software quality and
strategies organizations currently employ to
mitigate slow tests. They will then
demonstrate how to speed up test execution by
distributing the test set to remote agents and
how to connect and manage remote test agents
with Gradle Enterprise.
Martin Fowler: Eradicating Non-Determinism
(“Flakiness”) in Tests
According to software development guru Martin
Fowler, an automated regression suite can play
a vital role on a software project, valuable
both for reducing defects in production and
essential for evolutionary design. However,
left uncontrolled, non-deterministic tests --
tests that sometimes pass and sometimes fail
-- can completely destroy the value of an
automated regression suite. In
this article, Fowler outlines how to deal with
non-deterministic or “flaky” tests. Initially
quarantine helps he says to reduce their
damage to other tests, but you still have to
fix them soon. As a result, he discusses
treatments for the common causes for
flakiness: lack of isolation, asynchronous
behavior, remote services, time, and resource
leaks.
The Gradle Enterprise team has developed
techniques and tools to prevent flaky tests
from ruining your test suite. These are
discussed in an on-demand Webcast led by Eric
Wendelin, analytics lead at Gradle.
Specifically, Eric shows you how to (a)
prevent flaky tests from hindering your
development lifecycle; (b) detect new flaky
tests in Gradle and Maven build scans, and (c)
use reports and analytics in Gradle Enterprise
to aid you in prioritizing and eliminating
flaky tests.
Gradle & Maven Build Cache Deep-Dive
Training
If you are a Gradle or Maven build tool
user interested in speeding up builds, you
may be interested in upcoming online
training sessions being conducted by the
Gradle Enterprise team. In these trainings,
you will learn the basics and best practices
to make the most of caching in your build.
The discussion will cover the different
possible architectures, how they affect
build performance, and how Gradle Enterprise
can help you manage, analyze, and
troubleshoot the build cache. After this
training, participants will be able to
understand the benefits of using the Gradle
or Maven build cache; use and configure the
build cache; optimize build logic for
maximum cacheability; and maximize the
benefits of the build cache with Gradle
Enterprise.
Don’t Miss these Opportunities to Learn
More
If you have some news you’d like us to
share in the next issue,
use #devprodeng hashtag
on Twitter or send us an email with the
details to newsletter@gradle.com.
Until next time!
—The Gradle Team
|