Beauty and the Beast: Software-Design for Builds and Build Systems

For our production code we apply a wealth of design values and principles. Currently this is rarely done for our builds. Yet the project automation domain, specially in the enterprise, is often at least as complex as the business domain.

The design of your build is heavily influenced and possibly constrained by the design of the build system you are using. The main focus of this talk is to evaluate those design forces of the build systems. Mostly with the help of two books: Refactoring by Martin Fowler and Domain Driven Design by Eric Evans.

The build systems under review are dramatically different and thus the design of the corresponding builds. We will talk about best practices for build design and how different build systems might support that or stand in the way, thus preventing expressive, maintainable and easy to use builds. Those differences should be a major factor when you are choosing a build system appropriate to your needs.

The speaker is the founder of Gradle. So there might be some bias :). But the design principles referred to are core principles fully accepted by the Java community. The way they are violated is astonishingly obvious once pointed out. Production code would not get away with this and neither should builds.


About Hans Dockter

Hans Dockter is the founder of Gradle Inc., a company whose purpose is to empower software development teams to reach their full potential for joy, creativity, and productivity. To address his own personal frustrations as a developer, Hans co-founded the Gradle Build Tool project which was named by TechCrunch as one of the top 20 most popular OSS projects. Gradle Build Tool is now downloaded more than 23 million times a month. He then led the development of Gradle Enterprise which today is the leading enabling solution for the practice of Developer Productivity Engineering.

Previous to Gradle, Inc, Hans successfully led numerous large-scale enterprise builds and emerged as a thought leader in project automation. He is an advocate of Domain Driven Design, having taught classes and delivered presentations on this topic together with Eric Evans. Hans was also a committer for the JBoss project and founded the JBoss-IDE.

More About Hans »