Model the wrong boundaries, and disaster is just around the corner waiting to tease your sanity. An excess of dependencies between modules will result in changes rippling across a fragile codebase at compile time, and that same web of dependencies means even just a small runtime error in one module has the potential bring the entire system crashing down. Modelling the wrong boundaries will test the patience of your teams as well. Every piece of work will require expensive coordination with many other teams who all have different priorities and political agendas. In this talk, you’ll learn practical techniques for identifying effective modules in your software systems and enabling autonomous teams in your organisation, and you’ll see modelling patterns based on real-world examples from a variety of domains. Along the way, you’ll learn about the theoretical concepts underpinning the techniques, touching on DDD, Systems Thinking, Promise Theory, Theory of Constraints, and more.