Some design decisions have an impact on the trajectory of the whole project. Modeling is most needed in complex circumstances, yet the typical dynamics of the large projects that might benefit from it too often derail it or disconnect it from the real design. Conversely, modeling is best carried out by small, dynamic teams with a lot of autonomy, yet creating large systems requires coordination and project-spanning decisions. Managers and developers alike need to pay close attention to this intersection of design, project organization, and politics.
This talk briefly introduces two broad principles for strategic design.
First, 'context mapping' addresses a vital fact of life: Different groups think differently. Ignoring these realities leads to dumbed-down models, costly, buggy integrations, and disruption of project plans where they depend on other teams.
Then, 'distilling the core domain' concentrates effort on real business assets and gives a system focus, based on a shared vision. This view provides a systematic guide to when software must be developed by a team close to the business and could be outsourced or might better be purchased off-the-shelf. It suggests when "good enough" is good enough versus when it matters to push for excellence.
Eric Evans is the author of Domain-Driven Design: Tackling Complexity in Software, Addison-Wesley 2004. Since the early 1990s, he has worked on many projects developing large business systems with objects with many different approaches and many different outcomes. The book is a synthesis of that experience. It presents a system of modeling and design techniques, both tactical and strategic, that successful teams have used to align complex software systems with business needs and to keep projects agile as systems grow large. Eric now leads Domain Language, a consulting group which coaches and trains teams applying domain-driven design, helping them to make their development work more productive and more valuable to their business.