Можно с уверенностью сказать, что практически все проекты по разработке программного обеспечения требуют сотрудничества заинтересованных сторон всех ролей: экспертов предметной области, владельцев продукта, инженеров, дизайнеров пользовательских интерфейсов, менеджеров проектов, тестировщиков, аналитиков и других. Как в любом коллективном усилии, результат зависит от того, насколько хорошо все эти стороны могут работать вместе. Например, согласны ли все заинтересованные стороны в том, какая проблема решается? А что насчёт решения, которое они разрабатывают: есть ли у них какие-либо конфликтующие предположения относительно его функциональных и нефункциональных требований? Согласие и гармония по всем вопросам, связанным с проектом, являются залогом его успеха.
Исследования причин неудач в разработке программных продуктов показали, что эффективная коммуникация необходима для обмена знаниями и успеха проекта. Тем не менее, несмотря на важность, эффективная коммуникация в проектах по разработке программного обеспечения наблюдается редко. Часто бизнесмены и инженеры не имеют непосредственного взаимодействия друг с другом. Вместо этого информация о предметной области инженерам передаётся от экспертов предметной области. А доставляется она через людей, выполняющих роль посредников или «переводчиков» — системных/бизнес-аналитиков, владельцев продукта и менеджеров проектов.
В течение традиционного жизненного цикла разработки программного обеспечения, знания о предметной области «переводятся» в удобную для инженеров форму, известную как аналитическая модель — описание требований системы, отображающее лежащее в его основе понимание области. Несмотря на благие намерения, такая посредническая роль опасна для обмена знаниями. В любом переводе информация теряется; в данном случае знание предметной области, которое необходимо для решения бизнес-проблем, теряется в пути к инженерам-программистам. Потеря информации может привести к разработке неправильных решений или правильных решений для неправильных проблем — в обоих случаях результат один: неудачные проекты по разработке программного обеспечения.
Предметно-ориентированное проектирование предлагает более эффективный способ передачи инженерам знаний от экспертов предметной области — с использованием единого языка (ubiquitous language).