Chapter 3. Managing Complexity with Bounded Contexts

As you saw in the previous chapter, to ensure the success of a project it’s important to develop a ubiquitous language, which must be clear, consistent, and reflect the domain experts’ mental models of the business.

However, the domain experts’ mental models can be inconsistent themselves, which contradicts the core requirement of the ubiquitous language. Let’s take a look at an example.

Example: Inconsistent Models

Suppose we are working for a telemarketing company. The company’s marketing department generates leads through online advertisements. Its sales department is in charge of soliciting prospective customers to buy its products or services, a chain that is shown in Figure 3-1.

Example business domain telemarketing company
Figure 3-1. Example business domain—telemarketing company

Examination of the domain experts’ language reveals a peculiar observation. The term “lead” has different meanings in the marketing and sales departments:

Marketing department

For the marketing people, a lead represents a notification that somebody is interested in one of the products. The event of receiving the prospective customer’s contact details is considered a lead.

Sales department

In the context of the sales department, a lead is a much more complex entity. It represents the whole lifecycle of the sales process. It’s not a mere event, but a long-running process.

How do we ...

Get What Is Domain-Driven Design? now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.