"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
One of the central ideas of DDD (Domain Driven Design) is
the use of a "ubiquitous language". This language is not
only used to in the analysis, the UI or the documentation,
it is also used in the implementation.
It is the language of the "mental model" of the users.
Language is a very important way to structure our world in a
consistent way. With the language we can describe the model,
we can reason and it can be communicated to user. Therefore
it is important to use the language the users use to
describe their domain.
This seems all very similar and consistent with the concepts
of interaction design, but unless the represented model IS
the implementation model, it will always be very hard for
developers to get it right.
For me it seems the interaction design "ideal" of hiding the
"Implementation Model" from "Represented Model" is
contradicting with Domain Driven Design, because idea of
hiding the domain model from the user is the "enemy" of
My personal conclusion is to combine the two approaches: use
interaction designs and goal directed design to model
Personas and the mental model of the Personas of the domain,
but use domain driven design to come up with a ubiquitous
language to represents the domain and the interaction model.
In one sentence: "implement the mental model"
What makes me struggle is the different Personas:
is it possible to come up with one model for all Personas
or would there be different models for different Personas?
What do you think?
Am I missing something?
Do you know or use Domain Driven Design?
How would you combine IxD and DDD?
Or is there a real contradiction?