Anyone who has ever worked on large, complex development projects knows the typical risks/challenges: Lack of overview, no full understanding of interdependencies, misunderstandings (especially between technical experts and the domain experts) and so on.
Domain Driven Design is an approach to create an common overview for people with different backgrounds (domain experts, developers, managers, etc.) and to create a uniform language to avoid misunderstandings and to communicate precisely (ubiquitous language).
It is a very elaborate method, language is specified, business processes are modeled, a uniform language regime is established and so on.