The article that Brandon Satrom and I cowrote for The Architecture Journal, Issue 23 has finally been released to the wild. Our article is titled: “Keeping Architectures Relevant: Using Domain-Driven Design and Emergent Architecture to Manage Complexity and Enable Change.”
The overall issue is titled Architecture Modeling and Processes, and also includes articles on topics such as “Modeling in an Agile Context”, “Software Architecture in the Agile Life Cycle” and “UML or DSL: Which Bear is Best?"
One thing I should mention is that Figure 2 in our article is intended to be descriptive, rather than prescriptive. This is possibly not clear from the context in the article, and something we realized only after the article was well past the point of making changes in the editorial process. In some situations there may be several Bounded Contexts within a single Ubiquitous Language, and in others the Ubiquitous Language may be contained within the Bounded Context. This becomes more important as you consider Context Mapping, so I wanted to make sure this is clear.
Brandon and I are very interested in feedback on from our readers, so please post any comments about the article here or on Brandon’s blog. I want to thank Brandon for making writing the article such an enjoyable learning experience.
From the introduction to our article:
Keeping Architectures Relevant: Using Domain-Driven Design and Emergent Architecture to Manage Complexity and Enable Change
Thought Ascent, Inc.
Virtual Genius, LLC.
Summary: Sustainable and successful software development is all about managing complexity and enabling change. Successful software architects create designs that clearly address both concerns. For businesses that have complex domains, designing with evolution in mind and using techniques from Domain-Driven Design will result in systems whose architectures deliver a strong, sustainable competitive advantage.
The Architecture Journal, Issue 23.
PDF version of Issue 23.
Keeping Architectures Relevant: Using Domain-Driven Design and Emergent Architecture to Manage Complexity and Enable Change.