Eric Evans coined the term Strategic Domain-Driven Design referring to the application of DDD concepts at the architectural and team level. We model the business as a series of subdomains and we try to align our software system, and the teams that build them, with those subdomains by creating bounded contexts in our software architecture. Maintaining strong alignment between the business model and technical model enables autonomous teams to sustainably develop their bounded contexts in parallel at speed.
Strategic DDD encourages us to identify core, supporting, and generic subdomains, guiding us to focus our efforts where there is greatest payback and potential for the business. Strategic DDD also gives us collaboration patterns for integrating bounded contexts at a technical level and cooperation between teams at an organisational level. Over the past 15 years, the concepts of strategic DDD have become even more relevant. Modern organisations are significantly more complex sociotechnical systems. Creating the right boundaries in the software and the organisation enables organisations to innovate faster and sustain competitive advantage. During those 15 years, we’ve seen an expansion of the concepts included under the Strategic DDD umbrella, and continued evolution of the original concepts. We now have more modelling constructs like business capabilities. We have an emerging catalogue of bounded context patterns which we consider sociotechnical architecture patterns. And we have additional dimensions for classifying our subdomains. We also have a new chapter of collaboration patterns borrowing ideas from Heidi Helfand’s Dynamic Reteaming. In this talk, we will see how we can leverage both old concepts and new to create loosely coupled software systems and autonomous teams in modern organisations. And we’ll also look at areas of Strategic DD where future innovation is possible, and how your ideas can contribute to the next chapter of Strategic DDD.
Nick is a strategic technical leader at Navico. He has a passion for delighting users, creating business impacts, crafting quality software, and building world-class engineering teams.