What's New!
DDD: State of the Art
We interviewed Eric Evans during QCon in San Francisco about the state of the art in Domain-Driven Design. Watch interview.
BDD + DDD: interview with Dan North and Liz Keogh
Dan North and Liz Keogh, the people behind Behavior-Driven Development, spoke to us about how BDD complements DDD. Watch interview.
DDD Tracks
We are very glad to announce DDD tracks at two different conferences in November: Øredev in Malmö and QCon in San Francisco, with presentations by Eric Evans and other DDD experts. There will also be opportunities for attendees to participate in informal discussions about DDD. See you there!
Example Application "DDD Sample" Released.
After about a year of work as a joint project between DomainLanguage and Citerus, the DDD example application "DDD Sample" is ready to be shown in public. Release party is thrown at the DDD Sverige gathering and announced under "Events".
Video coverage of OOPSLA 2007 BoF seesion comes out!
![]() |
![]() |
![]() |
The BoF session in OOPSLA 2007 was one of the highlights of the DDD activities of the conference. A number of related topics, such as domain-specific languages and behavior-driven development, were discussed, along with some core DDD themes such as ubiquitous language and strategic design.
We recorded the session, however in the interest of a more compact presentation (the session lasted for nearly two hours) instead of the full video we decided to publish the transcript supplemented with a few clips featuring Eric Evans, Martin Fowler and Dan North – just to breathe a little life into the text.
We hope you will enjoy it.
Click here for more videos of DDD-related events.
What Is Domain-Driven Design?
Over the last decade or two, a philosophy has developed as an undercurrent in the object community. The premise of domain-driven design is two-fold:
- For most software projects, the primary focus should be on the domain and domain logic; and
- Complex domain designs should be based on a model.
Domain-driven design is not a technology or a methodology.
It is a way of thinking and a set of priorities, aimed at accelerating software projects that have to deal with complicated domains.
To accomplish that goal, teams need an extensive set of design practices, techniques and principles. Refining and applying these techniques will be the subject of discussion for this site, generally starting from the language of patterns layed out in Domain-Driven Design, by Eric Evans.
The Challenge of Complexity
of course many things can put a project off course, bureaucracy, unclear objectives, lack of resources, to name a few, but it is the approach to design that largely determines how complex software can become. When complexity gets out of hand, the software can no longer be understood well enough to be easily changed or extended. By contrast, a good design can make opportunities out of those complex features.
Some of these design factors are technological, and a great deal of effort has gone into the design of networks, databases, and other technical dimension of software. Books have been written about how to solve these problems. Developers have cultivated their skills.
Yet the most significant complexity of many applications is not technical. It is in the domain itself, the activity or business of the user. When this domain complexity is not dealt with in the design, it won’t matter that the infrastructural technology is well-conceived. A successful design must systematically deal with this central aspect of the software.






