Проектирование сервиса для подготовки мероприятий: ролевая модель, статусная модель, матрица уведомлений.

Дата мероприятия — единственный срок, который я за годы работы ни разу не двигал. Его нельзя сдвинуть на спринт и нельзя закрыть хотфиксом на следующей неделе: площадка снята, гости приглашены, артисты в контракте, за срыв прописан штраф. К конкретному часу конкретного дня должно быть готово всё.

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

Несколько лет я работал в этой логике. Систему проектировал под процесс, который знаю изнутри, а не по описанию.

Задача

Спроектировать сервис, в котором команда готовит мероприятие: заводит проект, набирает участников, раздаёт задачи, отслеживает загрузку людей и статус подготовки.

Первый черновик дал 37 пользовательских историй сплошным списком. Без приоритетов, без группировки, с одним дублем. Оценить такой бэклог нельзя, разложить по релизам тоже.

Декомпозиция: четыре модуля вместо одного списка

Модуль Что закрывает
Event Management Создание, редактирование, просмотр списка, архивирование мероприятия
People Management Состав команды, добавление и удаление участников, смена исполнителей, ресурсная загрузка
Task Management Поля задачи, действия, исполнители, дедлайны, канбан, фильтры, история изменений
Notification Center Триггеры и адресаты уведомлений

Модули можно отдавать в работу независимо. Event и Task Management дают работающий минимум, People Management и уведомления наращиваются следом.

Ролевая модель

Роль Ключевые права
Менеджер проекта Полный доступ: мероприятие, состав, задачи, дедлайны, дашборды, загрузка всей команды
Стафф-менеджер Всё в пределах своей команды, кроме удаления мероприятия. Видит ресурсную загрузку подчинённых
Старший исполнитель Свои задачи плюс задачи младших коллег, смена их статусов
Исполнитель Свои задачи, смена статуса кроме финального, канбан, сигнал «не успеваю»
Стейкхолдер Только просмотр канбана и уведомления

Исполнитель не может закрыть задачу сам

Перевод в Done доступен только менеджеру проекта, стафф-менеджеру или старшему исполнителю.

Решение выросло из практики. Декораторы говорят: сделаем. Спрашиваешь — объём большой, может, подключить ещё людей? Отвечают, что справятся. В день монтажа на площадку приезжает женщина с сыном-подростком, и оба в шоке от масштаба.

То же самое бывает с прокатом света и звука. То же с площадками, чьё локальное руководство обещает то, чего выдать не может. Всё это идёт по договорам, где за срыв предусмотрены штрафы.

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

Право поднять руку

У исполнителя есть отдельная возможность заранее сказать «не успеваю до дедлайна».

В творческой сфере умолчание и игнор — обычное дело. Человек тянет до последнего, потому что признаться тяжело, а ощущение такое, будто это нужно только тебе, а остальные делают одолжение.