DDD Europe 2025 - Program

Variability: The Second Hardest Problem In Systems Architecture

DDD Europe - Talk (50min)

Speakers

Andrew Harmel-Law

Andrew Harmel-Law
Description

Variability is everywhere in both software and systems architecture. It causes unpredictability; the bane of our lives. But variability is also the source of softwares’s power, because we can make software do anything.

So what can we do? We need to understand, and work with variability.

This talk will start by examining how variability manifests in the delivery of our software systems, and the pain it causes us. It will also consider how it also offers access to the greatest possibilities software offers.

I’ll then consider how to live and work with rather than against variability. Lots of these measures will sound counterintuitive at first, but they will provide you with a holistic view of software and a means to enjoy working with it. Who doesn’t want that?

(Oh, and what’s the hardest problem in Systems Architecture? People. The hardest thing is always the people.)

About Andrew Harmel-Law

A highly enthusiastic, self-starting and responsible Tech Principal; Andrew specialises in Java / JVM technologies, agile delivery, build tools and automation, and domain driven design.

Andrew is also an author and trainer for O’Reilly. They've written one book about facilitating software architecture and one chapter about implementing the Accelerate/DORA four key metrics. They also run regular online training sessions in Domain-Drive Design (First Steps) and Architecture Decision Making by Example.

Andrew is experienced across the software development lifecycle and in many sectors including government, banking, and eCommerce. What motivates them is the production of large-scale software solutions, fulfilling complex client requirements. They understand that people, tooling, architecture and process all have key roles to play in achieving this.

Andrew has a passion for open source software and its communities. They have been interested in and involved with OSS to a greater or lesser extent since their career began; as a user, contributor, expert group member, or paid advocate.

Finally, Andrew enjoys sharing their experience as much as possible. This sharing is not only seen in their formal consulting engagements, but also informally through mentoring, blog posts, conferences (speaking and organising), and open sourcing their code.