Симулятор решений: анализ сценариев
Все методы этого раздела отвечают на вопрос «успеем ли мы?». Симулятор отвечает на следующий — и главный — вопрос менеджера: «а что мне сделать, чтобы успеть?»
Идея простая: прежде чем принять решение в реальном спринте — выкинуть задачу из скоупа, переоценить срок, разорвать блокировку, передоговориться о дедлайне — вы проигрываете его на модели и видите эффект числом. Диагноз превращается в рецепт.
Теория: анализ чувствительности на сети
Спринт в Такте — это сеть зависимостей: задачи-узлы, блокировки-рёбра, длительности из истории команды. Сценарий — это вектор модификаций такой сети:
- убрать узел (исключить задачу из спринта) — вместе с его рёбрами;
- заменить оценку узла (переоценить задачу);
- убрать или добавить ребро (изменить зависимости);
- сдвинуть горизонт (передоговориться о дедлайне) — сеть не меняется, меняется только точка, к которой считается вероятность.
По модифицированной сети заново прогоняется весь конвейер: CPM находит новый критический путь, PERT даёт аналитическую оценку, Монте-Карло — распределение сроков. Разница между базовым прогнозом и сценарным — эффект решения. В исследовании операций это называется анализом чувствительности (sensitivity analysis): как меняется выход модели при изменении входов.
Почему дельте можно верить: общие случайные числа
Монте-Карло — случайный процесс: два прогона одной и той же сети дают чуть разные цифры. Если сравнивать базовый и сценарный прогоны «в лоб», часть разницы будет просто шумом симуляции.
Такт использует классический приём снижения дисперсии — метод общих случайных чисел (common random numbers, CRN): оба прогона получают один и тот же зерновой генератор случайных чисел. Каждая итерация симуляции разыгрывает одни и те же случайности для обеих сетей, поэтому при вычитании шум сокращается:
При общих случайных числах ковариация положительна и велика — дисперсия разности резко падает. На практике это значит: дельта на экране отражает ваше решение, а не лотерею генератора. Повторный пересчёт того же сценария даёт ту же дельту до последней цифры.
Как это реализовано в Такте
- Сценарий — именованный набор изменений (реальное решение почти всегда комбинация: «режем задачу X и просим +2 дня»).
- При каждом изменении прогноз пересчитывается вживую: базовый и сценарный прогоны — по 5000 итераций на общих случайных числах.
- Сценарии сохраняются: к ним можно вернуться, показать команде на планёрке; вместе со сценарием сохраняются снимки обоих прогнозов на момент расчёта.
- Понравившийся сценарий применяется одним действием: система атомарно выполняет все изменения — убирает задачи из спринта, правит зависимости (с проверкой циклов), записывает оценки, сдвигает дедлайн. Если спринт успел измениться и сценарий устарел — применение честно откажет, а не выполнится наполовину.
- Роли: симулировать и сохранять сценарии может любой участник команды; применять — Scrum Master и выше, потому что применение меняет реальный состав спринта.
Оценки длительностей наследуются от ядра прогнозирования: перцентили истории за 90 дней, минимум 5 закрытых задач (подробнее о порогах). Если истории мало — симулятор скажет об этом прямо, а не нарисует цифры из воздуха.
При переоценке задачи вручную указанное значение становится наиболее вероятной оценкой (M), а оптимистичная и пессимистичная масштабируются пропорционально историческому разбросу — неопределённость сохраняется, задача не превращается в «ровно N дней».
Где увидеть
- Пункт «Симулятор» в боковом меню — выбор спринта по всем доскам workspace.
- Кнопка «Симулятор решений» на странице спринтов, рядом с сетевым прогнозом активного спринта; у запланированных спринтов — кнопка на карточке.
Ограничения
- Качество дельты упирается в качество оценок: если истории мало или она нерепрезентативна, сценарии сравниваются честно между собой, но обе цифры условны.
- Симулятор моделирует структуру работы (состав, зависимости, оценки, дедлайн), но не людей: занятость конкретных исполнителей в модели не учитывается — это осознанная граница текущей версии.
- Сохранённый сценарий — снимок на момент расчёта. Спринт живёт дальше, поэтому перед применением стоит пересчитать сценарий (кнопка «Пересчитать»), а устаревшие применения система отклонит сама.