Документация

О системе

Назначение

Приложение «ИТ-Стратегия МБ» предназначено для управления реализацией ИТ-стратегии Группы Московская биржа. Система позволяет вести учёт сегментов инвестирования, программ, инициатив и задач, а также визуализировать их в виде интерактивного графа зависимостей и временной шкалы (роадмапа).

Ключевые возможности: автоматический расчёт здоровья по принципу светофора (GREEN / YELLOW / RED), ручная оценка статуса с контролем актуальности, управление рисками, развилками решений, обзорные отчёты, импорт/экспорт Excel, интеграция с Jira.

Иерархия объектов

ССегмент — верхний уровень иерархии. Сегмент инвестирования объединяет несколько программ.
ППрограмма — группа инициатив в рамках сегмента.
ИИнициатива — конкретная инициатива с задачами, вехами, развилками и рисками.
ЗЗадача — единица работы в рамках инициативы.

Статусы жизненного цикла

Черновик — начальный статус, объект ещё формируется
Запланировано — утверждено к выполнению, даты определены
В работе — активно выполняется
Приостановлено — временно остановлено
Завершено — успешно выполнено
Отменено — объект отменён

Метки объектов

ИТ-стратегия— объект является частью ИТ-стратегии
ИТ-инициатива— инициатива ИТ-подразделения
Бизнес-инициатива— инициатива бизнес-подразделения
Внешний фактор— внешнее требование или ограничение

Система здоровья

Каждый объект имеет два индикатора здоровья:

Автоматическое здоровье — рассчитывается системой на основе 26 проверок (сроки, задачи, вехи, зависимости, риски, развилки). Отображается круглым индикатором.
Ручной статус — устанавливается ответственным вручную. Отображается квадратным индикатором. Имеет приоритет над автоматическим.

Итоговый (эффективный) статус = ручной статус (если установлен) или автоматическое здоровье. Светофор: GREEN (всё в порядке), YELLOW (предупреждения), RED (проблемы).

Работа с системой

Дашборд

Главная страница (/) показывает сводную информацию по всему портфелю:

  • Общее количество сегментов, программ, инициатив, задач и связей
  • Диаграммы распределения по статусам, меткам и здоровью
  • Таблица здоровья сегментов с агрегированными показателями
  • Элементы, требующие внимания (просроченные, с проблемами)
  • Прогресс вех, открытые развилки, последние изменения
  • Кнопка «Рассчитать здоровье» для пересчёта всех объектов

Страницы объектов

Каждый тип объекта имеет страницу списка и страницу детальной информации:

  • Списки (/segments, /programs, /initiatives) — таблица с фильтрацией и кнопкой создания
  • Карточка объекта — редактирование полей, описание «as is», целевое состояние, ограничения, матрица влияния, атрибуты
  • Вкладки — связи, вопрос-ответ (Q&A), развилки, задачи/инициативы, вехи, риски, история изменений
  • Здоровье — автоматический и ручной индикаторы, описание проблем, кнопка пересчёта

Граф зависимостей

Страница /graph — интерактивная визуализация всех объектов и связей на основе @xyflow/react.

  • Фильтрация по типам объектов, статусам и сегментам
  • Переход из поиска — найденный объект автоматически выделяется на графе
  • Создание связей через кнопку «Связь» — выбор источника и цели
  • Контекстное меню для быстрых действий (открыть, создать связь)
  • Кнопка «Здоровье» — запуск расчёта, результат отображается цветом узла
  • Автоматическая раскладка (dagre): горизонтальная или вертикальная (настраивается)
  • Zoom, pan, легенда типов связей

Роадмап (таймлайн)

Страница /roadmap — временная шкала (Gantt chart) с квартальными и годовыми разделителями.

  • Иерархический вид: сегмент → программа → инициатива → задача
  • Стрелки зависимостей: красные сплошные — пререквизиты, зелёные пунктирные — влияния
  • Вехи отображаются ромбами: красные — ожидающие, зелёные — завершённые
  • Настройки: показ/скрытие дат, статуса, ответственного и связей
  • Фильтрация по типам, статусам и сегментам
  • Зум (Ctrl + колесо мыши) и горизонтальное панорамирование

Связи между объектами

Три типа связей между объектами любого уровня иерархии:

PART_OFСостоит из — композиция (задача входит в инициативу)
PREREQUISITEПререквизит — блокирующая зависимость
ENABLESВлияет — мягкая (поддерживающая) зависимость

Связи можно создавать/удалять на странице объекта (вкладка «Связи»), через граф и при создании развилок. Связи поддерживают якоря для корректного отображения стрелок на таймлайне (начало/конец).

Вехи

Вехи (Milestones) привязаны к инициативам. Каждая веха имеет описание, дату и статус завершения. Управление вехами доступно на странице инициативы.

  • Отображаются на роадмапе в виде ромбов — клик для переключения статуса
  • Учитываются при расчёте здоровья (просроченные вехи = RED, отсутствие вех = RED)
  • Влияют на расчёт прогресса инициативы (30% вес)

Развилки решений

Развилки (Decision Forks) — вопросы, требующие решения, привязанные к инициативам или задачам.

  • Каждая развилка содержит варианты решений с возможностью пометить утверждённый вариант
  • Статусы: Открыта, Решена, Отложена
  • Развилки могут быть привязаны к связям — нерешённая развилка на зависимости даёт RED
  • Открытые развилки дольше 14 дней подсвечиваются в системе внимания

Отчёты

Для сегментов, программ и инициатив доступны HTML-отчёты (кнопка «Отчёты»). Для сегментов и программ система поддерживает 5 типов отчётов, каждый из которых ориентирован на свою аудиторию:

Для руководства (~1 стр)

Ключевые KPI с трендом, требующие внимания вопросы (RED-инициативы, просроченные вехи, блокирующие развилки с зависимостями), стратегическая трансформация, упрощённая дорожная карта, матрица влияния.

Для менеджеров (~3-5 стр)

Резюме, изменения за 2 недели, проблемы и риски, открытые решения, зависимости, ближайшие вехи, дорожная карта, детальный расчёт здоровья.

Обзор (Overview)

Информация о сегменте/программе с целями (AS IS / Ограничения / Цель), связями, дорожной картой и вехами. Структура и матрица влияния.

Полный отчёт

Все доступные блоки отчёта.

Кастомный

Ручной выбор блоков для включения в отчёт.

Для инициатив доступны пресеты «План завершения», «Полный» и «Кастомный». Кнопку «План завершения» также можно найти в быстрой карточке объекта на графе (для сегментов, программ и инициатив).

План завершения

Блок, отвечающий на вопрос «что нужно сделать, чтобы завершить этот объект»:

  • Обзор — прогресс (задачи + вехи), незавершённые задачи по статусам, ожидающие вехи, открытые развилки, нереализованные пререквизиты, открытые риски
  • Процесс выполнения — вертикальный таймлайн с топологической сортировкой по зависимостям (PREREQUISITE/SEQUENCE), включая транзитивные вышестоящие зависимости (до 5 уровней), вехи и развилки из связанных объектов

Для каждого пресета (кроме «Полный» и «Кастомный») можно настроить состав блоков — нажмите «Настроить» рядом с выбранным пресетом в модалке, или настройте глобально на странице /settings.

Доступные блоки отчёта:

  • Ключевые KPI (с трендом здоровья за 2 недели)
  • Требует внимания руководства (RED-инициативы, просроченные вехи, блокеры, открытые развилки с зависимостями)
  • Резюме с KPI: статус, здоровье (авто + ручной), описание, актуальность
  • Стратегическая трансформация (компактный AS IS → Ограничения → Цель)
  • Стратегическое видение, дерево структуры, граф зависимостей
  • Встроенные Gantt-диаграммы (полная и упрощённая — только программы)
  • Детальный расчёт здоровья, матрица влияния
  • Проблемы и риски, открытые решения, зависимости и блокеры
  • Ближайшие вехи, изменения за 2 недели
  • План завершения (обзор + процесс выполнения с зависимостями)

Импорт / Экспорт

На странице /settings доступен обмен данными через Excel:

  • Экспорт — выгрузка всех данных в .xlsx (листы: сегменты, программы, инициативы, задачи, вехи, связи)
  • Импорт — загрузка из .xlsx с upsert-логикой (существующие записи обновляются, новые создаются)
  • После импорта отображается статистика (количество объектов по типам)

Jira-интеграция

Все основные сущности поддерживают поле Jira Key для привязки к задачам Jira. Подключение настраивается в /settings: URL, email, API-токен, включение/выключение.

Настройки

Страница /settings позволяет:

  • Переключать тёмную/светлую тему
  • Выбирать направление графа (горизонтальное / вертикальное)
  • Настраивать состав блоков для каждого пресета отчётов: «Для руководства», «Для менеджеров», «Обзор (Overview)»
  • Редактировать названия и описания типов связей
  • Настраивать подключение к Jira (URL, email, API-токен)
  • Экспортировать/импортировать данные (Excel)

Алгоритмы и особенности

Здоровье инициатив: автоматический расчёт

Система выполняет 26 проверок для каждой инициативы. Если хотя бы одна проверка уровня RED срабатывает — статус RED; если только YELLOW — YELLOW; иначе — GREEN.

Проверки RED (критические проблемы)

КодОписание
INVALID_DATESДата окончания раньше даты начала
OVERDUE_NOT_STARTEDДата начала прошла, но статус Черновик/Запланировано
OVERDUE_NOT_COMPLETEDСрок завершения прошёл, но инициатива не закрыта
NO_MILESTONESНе заведено ни одной вехи
MILESTONES_OVERDUEЕсть просроченные незавершённые вехи
PREREQUISITE_NOT_METПререквизитная зависимость не завершена
FORK_CONDITION_UNRESOLVEDСвязь зависит от нерешённой развилки (OPEN/DEFERRED)
FORK_OPTION_NOT_APPROVEDВариант развилки на связи не утверждён
TASKS_OVERDUEЕсть просроченные незавершённые задачи
TASKS_NOT_STARTEDЗадачи не начаты вовремя (дата старта прошла, статус Черновик/Запланировано)
HIGH_RISK_OPENОткрытый риск высокой критичности
RISK_NO_DATEОткрытый риск без срока митигации
RISK_OVERDUEПросрочен срок митигации риска
MANUAL_STATUS_STALEРучной статус не обновлялся более 21 дня

Проверки YELLOW (предупреждения)

КодОписание
ON_HOLDИнициатива приостановлена
START_APPROACHINGДо старта менее 14 дней, статус — Запланировано
END_APPROACHINGДо дедлайна менее 14 дней
NO_OWNERНе назначен ответственный
NO_DATESНе указаны даты начала или окончания
NO_TASKSНет дочерних задач
ALL_TASKS_DONEВсе задачи завершены, но инициатива не закрыта
OPEN_FORKSЕсть открытые развилки
ENABLES_NOT_METВлияющая (ENABLES) зависимость не завершена
MEDIUM_RISK_OPENОткрытый риск средней критичности
RISK_APPROACHINGДо закрытия риска менее 14 дней
MANUAL_STATUS_AGINGРучной статус не обновлялся 14–21 день

Здоровье программ и сегментов

Для программ и сегментов используется агрегация по наихудшему статусу дочерних элементов плюс собственные проверки.

Приоритеты: RED (3) > YELLOW (2) > GREEN (1)

Агрегация: worst = max(child health priorities)

Если есть дочерний элемент с RED → родитель получает CHILDREN_RED (RED)

Если есть дочерний элемент с YELLOW → родитель получает CHILDREN_YELLOW (YELLOW)

Собственные проверки программ/сегментов:

  • INVALID_DATES — дата окончания раньше начала (RED)
  • OVERDUE_NOT_STARTED — не начата вовремя (RED)
  • OVERDUE_NOT_COMPLETED — просрочена (RED)
  • NO_OWNER — нет ответственного (YELLOW)
  • NO_DATES — нет дат (YELLOW)
  • ON_HOLD — приостановлена (YELLOW)
  • MANUAL_STATUS_STALE/AGING — устаревший ручной статус (RED/YELLOW)

Ручной статус и контроль актуальности

Ответственный может установить ручной статус (GREEN / YELLOW / RED) с описанием и списком проблем. Ручной статус имеет приоритет над автоматическим:

Эффективный статус = ручной статус || автоматическое здоровье

Система контролирует актуальность ручного статуса:

  • 14+ дней без обновления → предупреждение (YELLOW: MANUAL_STATUS_AGING)
  • 21+ дней без обновления → проблема (RED: MANUAL_STATUS_STALE)

Каскадный пересчёт здоровья

При изменении любого объекта здоровье автоматически пересчитывается вверх по иерархии (в фоновом режиме):

ЗадачаИнициативаПрограммаСегмент

При каждом пересчёте создаётся снимок здоровья (HealthSnapshot) с кулдауном 1 час, что позволяет отслеживать динамику через график тренда.

Расчёт прогресса

Прогресс инициативы

Взвешенная формула: 70% задачи + 30% вехи.

taskProgress = completedTasks / totalTasks

milestoneProgress = passedMilestones / totalMilestones

progress = round((taskProgress × 0.7 + milestoneProgress × 0.3) × 100)

// Если нет задач — 100% от вех; нет вех — 100% от задач; нет ничего — 0%

Прогресс программы

Процент завершённых инициатив (по статусу COMPLETED).

progress = round(completedInitiatives / totalInitiatives × 100)

Система внимания (Attention)

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

ТипУровеньУсловие
RED_HEALTHREDЭффективное здоровье = RED
OVERDUEREDПросрочен срок завершения
MANUAL_PROBLEMREDРучная проблема с severity=RED и resolved=false
HIGH_RISKREDОткрытый риск высокой критичности
OPEN_FORKYELLOWРазвилка открыта более 14 дней

Управление рисками

Каждая инициатива может содержать список рисков (хранятся в JSON). Каждый риск имеет:

  • Описание — текст риска
  • Критичность — Высокая, Средняя, Низкая
  • Срок митигации — дата, к которой риск должен быть обработан
  • Статус — Открыт, Митигация, Закрыт

Риски влияют на автоматическое здоровье: открытый HIGH-риск → RED, отсутствие/просрочка срока митигации → RED, открытый MEDIUM-риск → YELLOW, приближение срока → YELLOW.

Матрица влияния

Каждый объект может иметь матрицу влияния — таблица, оценивающая степень воздействия на различные направления:

НаправлениеСтолбцы
ИнфраструктураМБ, НКЦ, НРД
ПроцессыМБ, НКЦ, НРД
ИТ-платформыМБ, НКЦ, НРД

Уровни: нет влияния, незначительное, значительное, новое/критическое. Отображается в виде heatmap на карточке объекта и в обзорном отчёте.