Sociotechnical Software Architecture

Learn practical techniques for identifying effective modules in your software systems and enabling autonomous teams in your organization. You will see modelling patterns based on real-world examples from a variety of domains. You will also learn the theoretical concepts underpinning the techniques, touching on Domain Driven Design, Systems Thinking, Promise Theory, Theory of Constraints and more.

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.

Video producer: