SESSION

Boosting Developer Productivity Through Better Modularity

Modularization and reuse of modules, through some form of dependency management, are a central part of every larger software project. While most projects have well-defined modularity when they start off, they often end up in a chaotic setup – also referred to as “dependency hell” – after a few years of development. And all too often, there is no ambition to get out of that again until a project reaches an almost unmaintainable state. Not investing in this area earlier is usually a bad business decision. Issues in the modularity setup of a project have a negative impact on developer productivity in many ways that not only make the daily work of developers inefficient but also worsen the problems over time.

In this session, we look at how these problems arise, the influence they have on developer productivity, and why they are so often invisible or ignored. In particular, we identify “accidental complexities” and separate them from “essential complexities” in this area. We then explore which tooling helps us to avoid the accidental complexities and deal with the essential complexities in a sustainable way. Based on this, we share ideas for future developer productivity tools and features that could be added to existing build and DPE tools like Gradle or Develocity.

What we discuss in this session is based on experiences gained through helping multiple large Java projects get back to a maintainable modularity setup. Although we use Java, Gradle, and Develocity in examples, the concepts presented can be transferred to other languages and tools.

View the slides Arrow Down
PRESENTED BY
  • Company Logo

    Jendrik Johannes

    Trainer and Consultant for Build Automation @ OnePiece.Software

Watch Video

Watch the video Play Button

View the slides Arrow Down
Develocity Highlights

Take it further with Develocity

Jendrik speaks about the threat of “dependency hell” on developer productivity. Dependency management is an ongoing challenge with growing codebases, and it’s important to be able to observe, detect, and continuously improve through modularization (using build tools like Gradle and Maven). Combine these best practices with Develocity, and you have deep observability into everything that happens in your builds and tests, including dependency graphs across third-party technologies.

Learn more Arrow Right

The slides

Meet the speaker