Manager's Guided Tour of Domain-Driven Design
Managers have particular interests, less technical, more organizational. The selections below should take a non-technical reader, particularly one with some experience involving software development teams, through the material in the book most accessible and useful to a decision-maker on a software project.
[If some part of this selection seems either irrelevant or too difficult to understand, please send feedback.]
I. What Is Domain-Driven Design and Why Care? (~1 hr)These excerpts from Part I of the book walk you through the fundamental principles of domain-driven design and some of the benefits of applying it. |
||
| Contrasting three projects concretely illustrates how design style can be a factor in success and failure. | xix-xxi | |
| Why design style is an inextricable factor in the development process. | xxii-xxiv | |
| The benefits of committing the whole team to domain-driven design. | xxvii | |
| What is a model? | 2-4 | |
| The heart of software and why it gets neglected. | 4-6 | |
| Knowledge Crunching: How a team can accumulate, distill and apply domain knowledge to software development | 12-15 (from "Ingredients of...") | |
| Ubiquitous Language: How to bring about a clearer and more dynamic flow of domain knowledge throughout the project. | 24-27 | |
| Example | 27-30 | |
| Consequences | 32-34 | |
| How documents & diagrams can work for a project instead of just being work. | 35-40 | |
| How to make modeling relevant to the the goals of a software project: Model-Driven Design. | 47-50 | |
| Why models matter to users. | 57-59 | |
| The necessity of eliminating the distinction between modelers and programmers. | 60-62 | |
II. Building BlocksPart II lays a foundation of detailed modeling techniques that underpin effective model-driven design. This tour skips to Part III. |
||
III. What Constitutes a Useful Model-Driven Design and How to Go About Finding Such a Design (~ 1 hr) |
||
| True story: How model-driven design rescued a project and created unexpected opportunities. | 193-203 | |
| How software experts can work with domain experts to explore and refine models. | 207-210 | |
| Supple Design: How a system can become easier to extend and adapt rather than ossifying into legacy | 243-245 | |
| Overview of the rhythm of domain-driven design and how it allows for upside surprise opportunities to emerge. | 321-326 | |
IV. Strategic Design: Team Decisions That Affect the Trajectory of the Entire Project (~ 2 hr) |
||
| Introduction to three principles for applying domain-driven design to large projects and enterprises. | 328-329 | |
| Bounded Context: Strategies for dealing with the inevitability of multiple viewpoints and conflicting needs. | 331-338 | |
| How much integration do you need? How can you structure relationships between teams to get it? | 341-371, (headings and bold) | |
| Whimsical, non-technical example | 378-381 | |
| Broad tradeoffs between context strategies | Figure 14.13 (on p. 388) | |
| Distillation: How do you focus on your central problem and keep from drowning in a sea of side issues? | 400-405 | |
| A Tale of Two Time Zones: A right way and a wrong way to deploy your people to tackle essential supporting components | 410-412 | |
| Reducing project risk by tackling the core domain early | 413-414 | |
| Crafting a domain vision statement | 415-416 | |
| Large-scale structure: How to make a sprawling system comprehensible and encourage consistency across subsystems. | 439-442 | |
| How to have structure without stifling development | 444-446 | |
| Several specific techniques for large-scale structure are discussed, but are skipped in this tour. | ||
| Non-technical example of how a large-scale structure allowed thousands of people to contribute to the AIDS Memorial Quilt | 478(bottom)-479 | |
| Putting the pieces together to develop a design strategy | 490-497 | |
V. Conclusion (~1/4 hour) |
||
| Tracking five real domain-driven design projects and their long-term outcomes. | 500-505 | |
| The future of domain-driven design | 505-506 | |
