Немного о DDD, сложности и странных комментариях

Канал о системном и бизнес-анализе, продуктовом мышлении и архитектуре. Как выявлять реальные проблемы, строить работающие решения и не терять здравый смысл в IT. Все вопросы - @innokentyB

dddсложностькоммуникация

🎯 Немного о DDD, сложности и странных комментариях Видимо, наследие Otus меня не отпускает.

Сегодня получил обратную связь на свой открытый урок по DDD, записанный больше года назад:

«Прослушал половину видеоролика и ни разу не услышал главного слова в DDD — “модель”. Автор путает essential complexity и accidental complexity. Essential complexity невозможно уменьшить (автор ошибся). Возникает вопрос: как DDD вообще может помочь бороться со сложностью? Ответа нет.»

Формально — человек прав. Я действительно не произносил слово “модель” и не читал лекцию по Бруксу. Но если чуть отойти от формальной логики и посмотреть на суть — всё становится интереснее.

Для меня DDD — это не про построение моделей, а про коммуникацию. Про умение выстроить совместное понимание между командами — бизнесом, аналитикой и разработкой. Это коллаборативная техника, которая помогает людям наконец начать говорить на одном языке. Вот в этом и есть настоящая ценность DDD.

Теперь про сложность. Да, essential complexity — исходную сложность домена — в абсолютных величинах не уменьшить. Разве что вы перепишете законы, регламенты и бизнес-процессы. Но вот accidental complexity — ту, что мы сами добавляем из-за непонимания предметной области — вот её DDD и помогает убирать.

Причём не “в теории”, а относительно конкретной команды, которая благодаря совместному языку лучше понимает, что она делает и зачем.

💬 Поэтому я по-прежнему считаю, что DDD снижает сложность, пусть и не абсолютную, а коммуникационную и когнитивную. А это, если честно, сложность посерьёзнее любой технической.

Готов подискутировать — особенно с теми, кто до сих пор верит, что DDD — это про рисование UML и словарь терминов. 😉