Developer Productivity Engineering 2020
By Dennis WelterThe Most Important Development in Software Engineering Since the Introduction Agile, Lean Software Development, and DevOps methodologies and Tools.
Read More →
The Most Important Development in Software Engineering Since the Introduction Agile, Lean Software Development, and DevOps methodologies and Tools.
Does your team suffer from long feedback times because of slow running tests? Does your CI pipeline spend several hours executing integration and system tests?
Having these tests is important but once running them takes longer than a few minutes, developers will push execution to later stages of the development cycle leading to longer feedback times. Shortening feedback cycles can save teams lots of time because there are fewer interruptions to the creative process, developers spend less time waiting for each individual build, and they spend less time debugging problems that occur from compounding changesets.
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 testing and debugging. And, the pain was only expected to increase in line with the growth of development teams, code bases, and repositories. The cost of inaction was projected to soon become unbearable.
In this webcast, Mark Vieira, Senior Software Engineer at Elastic discusses with Gradle, Inc. CEO, Hans Dockter, 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.
Do you hate flaky tests? If your application interacts with browsers, external services, or has asynchronous behavior, it’s likely your team has suffered from flaky tests.
Non-deterministic tests are a ruinous infection that wastes developer time and reduces confidence in your test suite.
A fast and efficient CI pipeline can make or break your team’s developer experience and productivity. But what are the biggest determinants of CI pipeline performance? How do CI platform infrastructure and build/test performance impact each other and where should you focus your efforts?
Flaky, or non-deterministic, tests are a serious and prevalent problem in modern software development. If your application interacts with browsers, external devices or services, or has asynchronous behavior, it’s likely you have suffered from flaky tests. Martin Fowler has this to say about flaky tests:
Non-deterministic tests have two problems, firstly they are useless, secondly they are a virulent infection that can completely ruin your entire test suite. As a result they need to be dealt with as soon as you can, before your entire deployment pipeline is compromised. — Martin Fowler on Eradicating Non-Determinism in Tests
Flaky tests compromise deployment pipelines by slowing them down and decreasing confidence in the correctness of changes. When changes regularly fail due to unrelated flaky tests, time is wasted, features are delayed, and developers are demotivated to make changes.
Gradle 6.0 is the culmination of several years of innovative improvements in Dependency Management. Embracing the idea that there is more to software composition and reuse than just putting a set of jar files on the classpath, Gradle now offers a new metadata format to richly define software components that are often made up of multiple files, different variants and specific constraints on their dependencies.
Testing takes the overwhelming majority of time during software builds. A single test can waste countless hours of building time — a single failure may cause an entire CI pipeline to have to be re-run. Ugh.
In this post, I will show you how to identify slow and unstable tests using the new Tests Dashboard in Develocity 2019.4 for Gradle and Maven builds. The dashboard visualizes test results across many builds for tests executed by Gradle’s built-in Test task and Maven’s SureFire plugin.
Whether producing private or public components, most projects are built with multiple software libraries interacting together. Aside from knowing what to publish and how to do so, this webcast covers strategies for streamlining the publication and integration processes.
We pride ourselves by going the extra mile in our support channels, and we often get asked for help for both Scala and Sbt issues where Hydra is not always involved. It’s time to share some of the lessons we learned.