Bounded Contexts: Manage the Understandability of Your Systems

Room 5
15:00 - 16:00

Talk (60 min)

From Parnas' paper in the 1970's to microservices in the 2010's, we've always used modularisation as a way to manage complexity in software. And yet, we still end up with big balls of mud. Technical separation alone isn’t enough. We’ve also tried separating into business domains, but that’s not enough either: software wants to be deeply interconnected, spanning different domains, and doesn’t respect those boundaries.

Bounded Contexts provide an alternative to splitting on domains or on technical modules. We can separate by looking at the semantics. The domain models that underlie our systems, the language that is being used, and the meanings of the terms. We can draw “understandability boundaries”: separations that look at how concepts in our system are understood together (or can be understood autonomously). If we organise the teams along the same lines, then team members will need to understand fewer concepts to be productive. Teams will need less coordination with other teams. Having better semantic boundaries lowers the cognitive load.

Doing this kind of work is not free. But in the 20 years since the concept was introduced in Domain-Driven Design, we’ve developed patterns and heuristics to guide us.

Gien Verschatse

Gien Verschatse is an experienced consultant and software engineer that specialises in domain modelling and software architecture. She's fluent in both object-oriented and functional programming, mostly in .NET. As a Domain-Driven Design practitioner, she always looks to bridge the gaps between experts, users, and engineers.

As a side interest, she's researching the science of decision-making strategies, to help teams improve how they make technical and organisational decisions. She shares her knowledge by speaking and teaching at international conferences.

And when she is not doing all that, you'll find her on the sofa, reading a book and sipping coffee.

Mathias Verraes

Mathias Verraes is the founder of Aardling, a software modelling & design consultancy, with a penchant for complex environments. His focus is on design strategy and messaging-centric domain modelling. Since leaving a lead developer job in 2011 and moving to consulting in 2011, Mathias has worked with clients in Finance, Government, Supply Chain, Mobility, Energy, E-Commerce, and more.

Mathias writes about software design at since 2011. As a speaker, he's been at major conferences such as NDC and Goto, and has been a keynote speaker DDD eXchange, ExploreDDD, KanDDDinsky, and others. Occasionally, he teaches courses on Domain-Driven Design & messaging architecture. Mathias is also the founder of the DDD Europe conference.

Mathias has a Masters in Music from the Royal Conservatory of Ghent, and is an autodidact on software. When he’s at home in Kortrijk, Belgium, he helps his two sons build crazy Lego contraptions.