DDD Discovery · AS IS · Для бизнес-экспертов

Расставляем
точки над «И»

Прежде чем что-то менять — давайте поймём, как система устроена сейчас. Какие сущности есть, как они связаны, как называются. Где язык бизнеса совпадает с системой, а где — расходится.

Цель — построить единый язык (ubiquitous language), на котором и бизнес, и разработка говорят одинаково.

~12 минут
Только AS IS, без предложений
Опросник-гипотезы в конце
02 / КАРТА СИСТЕМЫ

Что есть в системе

Все сущности CRM. Цвет = функциональная область.

Акция
Промо-кампания. Центральная сущность — всё вращается вокруг неё.
ядро
Клиент
Бренд/заказчик. В форме акции — поле «Клиент».
ядро
Партнёр
В форме акции — поле «Площадка». Берётся из этого справочника.
ядро
Контрагент
Юрлицо с ИНН. На него оформляются договоры и счета.
ядро
Контакт
Человек. Привязан к контрагенту, не к бренду.
ядро
Счёт
Документ на оплату. План/факт суммы и даты.
финансы
Расход
Статья затрат. План/факт, категория, контрагент.
финансы
Цель дохода
Месячный план по выручке. Редактирует только гендиректор.
финансы
Цель маржи
Месячный план по марже. Редактирует только гендиректор.
финансы
Задача
Рабочая единица. Ответственный, дедлайн, статус.
работа
Комментарий
Обсуждение внутри акции.
работа
Файл
Документ, загруженный в карточку акции.
работа
Статусы
4 набора: акций, договоров, оплат, задач. Настраиваются директором.
справочники
Категории расходов
Справочник категорий: печать, логистика и т.д.
справочники
Профиль
Пользователь системы. Роль: менеджер / директор / гендиректор.
справочники
03 / ТЕРМИНОЛОГИЯ

Как система называет вещи

Вот термины, которые использует CRM. Красным отмечены расхождения между названием и реальным смыслом.

Термин в системеГде встречаетсяФактический смыслРасхождение
КлиентФорма акции, справочникБренд (заказчик)«Клиент» ≠ заказчик в бытовом смысле
ПартнёрСправочник, форма счётаПлощадка (где проходит акция)Поле «Площадка» берёт данные отсюда
ПлощадкаФорма акции (UI-лейбл)Нет отдельного справочника — берётся из «Партнёров»UI называет одно, база хранит другое
ВыручкаПлан-факт, карточка акцииДва разных числа: карточная (Продажа−Закупка) и операционная (Доходы−Расходы)Одно слово — два смысла
МаржаКарточка акции, план-фактКарточная выручка = Продажа − ЗакупкаСовпадает с «Выручкой п.18» — не операционная маржа
ДоходПлан-фактСумма счетов (инвойсов)
РасходПлан-факт, карточка акцииСумма статей затрат
НаценкаКарточка акцииПроцент надбавки к закупкеВ план-факте — это ratio (Доход/Выручка), не %
Договор клиентаФорма акцииДоговор с брендом«Клиентский» = «бренда»
Договор платформыФорма акцииДоговор с площадкой«Платформа» = «площадка»
ТиражКарточка акцииКоличество купонов
7 из 11 ключевых терминов расходятся с реальным смыслом. Это и есть главная цель DDD-сессии — починить язык.
04 / ПРОЦЕСС

Жизненный цикл акции

Как акция проходит от создания до завершения в системе.

1

Создание акции

Менеджер заполняет форму: клиент (бренд), площадка, статус, договоры. Можно скопировать из существующей акции.

2

Согласование

Статус меняется вручную. Нет автоматического «гейта» — любой может поставить любой статус в любой момент.

3

Запуск

Устанавливаются даты проведения (start/end). Договоры переходят в «Подписан».

4

Финансовое сопровождение

Создаются счета (доходы) и расходы. Каждая запись — с план/факт суммой и датой. Менеджер отслеживает оплаты.

5

Сбор факт-данных

По мере поступления денег — заполняются фактические суммы и даты. Статус оплаты → «Оплачено».

6

Завершение

Статус акции → «Завершена». План-факт анализ: сравнение плана с фактом, расчёт маржи и налогов.

Статусы — настраиваемые. Директор создаёт и редактирует их в Настройках. Нет жёсткого порядка переходов — это конвенция, а не правило системы.
05 / ФИНАНСЫ

В системе — две выручки

Это самое важное, что нужно понять. Обе называются «выручка», но это разные числа.

Модель A · Карточная

Экономика сделки

Считается из полей карточки акции: закупка, продажа, наценка.

Продажа = sale_cost + print_sale + delivery_sale
Закупка = purchase + print + delivery
Выручка = ПродажаЗакупка
это теоретическая маржа сделки "на бумаге"

Используется: карточка акции, блок «Финансовый итог», строка «Маржа» в план-факте.

Модель B · Операционная

Реальные деньги

Считается из actual документов: счета и расходы.

Доход = Σ invoice_amount
Расход = Σ expense_amount
Опер. результат = ДоходРасход
это реальные деньги по документам

Используется: строки «Доходы» и «Расходы» в план-факте.

Эти два числа не совпадают. Карточная выручка — теоретическая маржа сделки. Операционная — реальные деньги по документам. В план-факте они показываются рядом под похожими названиями.
06 / НАЛОГИ

Налоговый каскад

От карточной выручки до дивидендов. Российская система налогообложения, зашитая в код.

graph TD R["Выручка (п.18)
Продажа − Закупка"] NV["Выручка без НДС (п.19)
= Выручка / 1.2"] VAT["НДС (п.20)
= Выручка − Выручка/1.2
ставка 20%"] PT["Налог на прибыль (п.21)
= Выручка/1.2 × 0.2
ставка 20%"] NP["Чистая прибыль (п.22)
= Выручка − НДС − Налог"] DV["Дивиденды (п.23)
= Чистая прибыль × 0.87
минус 13%"] R --> NV R --> VAT NV --> PT R --> NP VAT --> NP PT --> NP NP --> DV style R fill:#065f46,stroke:#10b981,color:#a7f3d0 style VAT fill:#7c2d12,stroke:#f59e0b,color:#fed7aa style PT fill:#7c2d12,stroke:#f59e0b,color:#fed7aa style NP fill:#1e3a8a,stroke:#3b82f6,color:#93c5fd style DV fill:#581c87,stroke:#8b5cf6,color:#ddd6fe
Ставки захардкожены: НДС 20%, налог на прибыль 20%, дивиденды 13%. Номера пунктов (п.18–п.23) — это строки налоговой декларации.
07 / ПЛАН-ФАКТ

Как считается план-факт

Отчёт для директора. Помесячная сводка. Вот правила, которые работают сейчас.

Доходы

Сумма счетов по месяцам. План = amount_plan, факт = amount_actual. Учитываются все счета, независимо от статуса оплаты.

Расходы

Сумма затрат по месяцам. Расходы с exclude_from_kpi = true полностью исключаются из расчёта.

Маржа (карточная)

Распределяется по месяцам пропорционально счетам, не по дате старта. Если счетов нет — маржа = 0 в план-факте.

Магическое число: payment_status_id = 2 означает «Оплачено». Только оплаченные счета дают факт-маржу. Это конвенция, не настройка.
08 / КОНТРАГЕНТЫ

Иерархия юрлицо → бренд

Как устроена связь между юрлицами, брендами и контактами.

graph TD CP["Контрагент (юрлицо)
ИНН уникальный
ООО «Мэлон Фэшн Груп»"] CL1["Клиент (бренд)
Zarina"] CL2["Клиент (бренд)
Befree"] CL3["Клиент (бренд)
Sela"] PR["Партнёр
ТРЦ «Галерея»"] CT1["Контакт
Иванов И.И."] CT2["Контакт
Петрова П.П."] CP --> CL1 CP --> CL2 CP --> CL3 CP --> PR CP --> CT1 CP --> CT2 style CP fill:#1e293b,stroke:#64748b,color:#cbd5e1 style CL1 fill:#064e3b,stroke:#10b981,color:#a7f3d0 style CL2 fill:#064e3b,stroke:#10b981,color:#a7f3d0 style CL3 fill:#064e3b,stroke:#10b981,color:#a7f3d0 style PR fill:#831843,stroke:#ec4899,color:#fbcfe8 style CT1 fill:#1e3a8a,stroke:#3b82f6,color:#93c5fd style CT2 fill:#1e3a8a,stroke:#3b82f6,color:#93c5fd
Контакты — на уровне юрлица, не бренда. Контакт ООО «Мэлон» виден всем брендам (Zarina, Befree, Sela). Нельзя привязать контакт конкретно к Befree.
INN — главный идентификатор. При создании бренда из формы акции система ищет юрлицо по ИНН. Не найдено — создаёт новое.
09 / ДОСТУП

Кто что может

Три роли. Гендиректор наследует права директора.

👤 Менеджер

  • Создаёт и редактирует акции
  • Работает с задачами, счетами, расходами
  • Видит свои задачи на дашборде
  • Не может удалять
  • Не видит план-факт и цели
  • Не может управлять справочниками

👔 Директор

  • Всё, что может менеджер
  • Удаляет записи
  • Видит план-факт анализ
  • Управляет справочниками и статусами
  • Импортирует контакты
  • Не редактирует цели дохода/маржи

👑 Гендиректор

  • Всё, что может директор
  • Редактирует цели дохода по месяцам
  • Редактирует цели маржи по месяцам
  • Единственный, кто ставит фин. цели
10 / УВЕДОМЛЕНИЯ

Что триггерит уведомления

Все события идут в общий Telegram-чат. Ежедневный дайджест — отдельным сообщением.

События → Telegram

Задача создана/обновлена · Файл добавлен · Комментарий добавлен. Каждое — отдельное сообщение с ссылкой на акцию.

Дайджест → Telegram

Раз в день по расписанию. Сводка: просроченные задачи, предстоящие дедлайны, неоплаченные счета. horizon: 3 дня (5 в пятницу).

Нет email

Таблица называется email_logs, но уведомления идут в Telegram. Названия расходятся с реальностью.

11 / НАБЛЮДЕНИЯ

Что я заметил

Не предложения — наблюдения. Где система ведёт себя неожиданно или неоднозначно.

«Выручка» — два разных числа в одном отчёте

В план-факте: «Выручка (Доходы)» = сумма счетов. «Маржа» = карточная выручка (Продажа − Закупка). Пользователь видит рядом два числа под похожими названиями и не понимает, почему они разные.

Нет жёсткого жизненного цикла статусов

Любой пользователь может поставить любой статус в любой момент. Нет проверки «можно ли перейти из статуса A в B». «Согласована» — это статус с sort ≥ 20 (конвенция), а не правило.

«Партнёр» в базе = «Площадка» в интерфейсе

Поле формы «Площадка» берёт данные из справочника «Партнёры». Настоящего партнёра (поставщика купонов/призов) нет в системе.

Карточная маржа = 0, если нет счетов

Маржа распределяется по месяцам пропорционально счетам. Если у акции есть карточная выручка, но нет счетов — в план-факте она покажет 0. Это неожиданно для бизнеса.

Контакты не привязаны к бренду

Все контакты — на уровне юрлица. Если у ООО «Мэлон» 3 бренда, нельзя сказать «этот контакт — по Befree, а этот — по Zarina».

Удаление — жёсткое для транзакций, мягкое для справочников

Акции, счета, расходы — удаляются физически (может только директор). Статусы, бренды, контакты — помечаются is_active = false и исчезают из списков.

«Наценка» — два разных смысла

В карточке акции — это % надбавки к закупке. В план-факте — это ratio (Доход / Выручка). Одно слово, разная математика.

12 / ГИПОТЕЗЫ

Подтвердите или опровергните

Это гипотезы о том, как устроен бизнес. Нам нужно знать: верно ли система отражает реальность?

H1 «Клиент» в CRM — это бренд (заказчик акции)
Система хранит бренды в справочнике «Клиенты». Верно ли это отражает бизнес-смысл?
Да, «клиент» = бренд в нашей работе
Нет, «клиент» для нас — другое понятие
Частично, но не всегда
H2 В акции всегда один бренд и одна площадка
Система требует ровно одного клиента и одного партнёра. Бывает ли иначе?
Да, всегда один бренд и одна площадка
Бывает несколько брендов в одной акции
Бывает несколько площадок
Партнёр (поставщик) есть не всегда
H3 «Выручка» в план-факте — какая метрика для вас главная?
В системе две выручки. Какую вы смотрите в первую очередь?
Карточная (Продажа − Закупка) — маржа сделки
Операционная (Доходы − Расходы) — реальные деньги
Обе важны, но в разных ситуациях
Не знал(а), что это разные числа
H4 Статусы акций — какой порядок правильный?
Сейчас нет жёсткого порядка. Как акция должна проходить статусы в реальности?
Например: Новая → На согласовании → Согласована → В работе → Завершена
H5 Что должно происходить после завершения акции?
Финансовые данные замораживаются (нельзя менять)
Акция архивируется (но доступна для просмотра)
Автоматически формируется отчёт по итогам
Ничего особенного — просто меняется статус
H6 Контакты — к чему они относятся в вашей работе?
Сейчас все контакты привязаны к юрлицу. А в реальности?
К юрлицу — это правильно, контакт общий
К бренду — разные бренды, разные люди
К площадке — контакт менеджера ТРЦ
Зависит от типа контакта
H7 exclude_from_kpi — для каких расходов вы используете?
Эта галочка убирает расход из план-факта, но оставляет в карточке акции.
Разовые/неповторяющиеся затраты
Внутренние расходы (не для клиента)
Списания, штрафы, корректировки
Не использую / не знал(а) про эту функцию
H8 Что в системе отсутствует или работает не так, как вы ожидаете?
H9 Ваша роль
Руководство
Менеджер (работаю в CRM каждый день)
Финансы / аналитика
Отвечено: 0 из 9

Это не выбор решения — это сбор фактов. На основе ответов построим TO BE.