Планирование спринта часто напоминает стрельбу из лука с закрытыми глазами: мы надеемся попасть в цель, но попадаем себе в колено (конец приключениям). Срыв сроков крайне редко происходит из‑за лени или некомпетентности — чаще всего виноваты неучтённые риски.
Какие бывают риски? Этот список — не исчерпывающий, но дает определенное понимание:
-
Внешние: Задержки смежных команд, нестабильные API, изменения требований.
-
Внутренние: Технический долг, неожиданные баги, переоценка сил.
-
Организационные: Больничные, внезапные митинги, проблемы с инфраструктурой.
Риск‑ориентированный подход — это не только про тестирование, но и про предсказуемое планирование. Разберём, как:
-
Оценивать риски (не только баги).
-
Встраивать их в оценку задач.
-
Минимизировать влияние на спринт.
1. Какие риски учитывать (и как их считать).
Формула расчета очень проста:
Где критичность — это влияние риска на сроки, бюджет, качество продукта или репутацию компании.
1.1. Типы рисков
|
Категория |
Примеры |
Как оценить P и C |
|---|---|---|
|
Внешние |
Задержка API партнёра, срыв сроков смежной командой |
P: Частота инцидентов за последние 5 спринтов. C: Влияние на сроки релиза. |
|
Технические |
Падение CI/CD, проблемы с развёртыванием |
P: История сбоев. C: Время на починку + простой команды. |
|
Командные |
Внезапный уход разработчика, болезнь |
P: Текущая нагрузка. C: Время на замену + адаптацию. |
1.2. Формулы для расчёта
Для внешних рисков (например, зависимость от другой команды):
где:
-
Sd — количество случаев задержки за наблюдаемый период (например, 5 спринтов)
-
Tq — общее количество задач с зависимостями за тот же период
где:
-
Dt — среднее время задержки (включая все сопутствующие затраты: анализ, коммуникацию, ожидание реакции, решение со стороны коллег из support соответствующего сервиса / команды)
-
Bt — количество блокируемых текущей задачей других задач
Таблица градации рисков (пример - не ленитесь, составьте новую под свой проект):
|
Уровень риска |
Диапазон (R = P × C) |
Характеристика |
Рекомендуемые действия |
|---|---|---|---|
|
Низкий |
0 — 5.0 |
Минимальное влияние на проект. Незначительные задержки или последствия. |
Стандартное планирование. Можно не учитывать в буфере. |
|
Средний |
0.6 — 2.0 |
Среднее влияние. Может вызвать локальные задержки, но не сорвёт весь спринт. |
Добавить буфер 15–20%. Подготовить простой «план Б» (например, заглушки для API — если есть возможность). |
|
Высокий |
2.1 — 6.0 |
Серьёзное влияние. Блокирует несколько задач или критичные функции. |
Добавить буфер 30–50%. Разработать альтернативные сценарии. Усилить мониторинг. |
|
Критичный |
6.1+ |
Угрожает срывом сроков релиза или репутационными потерями. |
Выделить отдельные ресурсы. Запланировать митинг‑пойнты. Рассмотреть отказ от функции. |
Пример расчёта:
Данные:
-
За последние 5 спринтов было 15 задач с внешними зависимостями (Tq = 15)
-
Из них в 8 случаях были задержки (Sd = 8)
-
Среднее время задержки (Dt) = 2 дня
-
Текущая задача блокирует 2 другие задачи (Bt = 2)
Расчёт:
-
P = Sd / Tq = 8 / 15 = 0.53 (53% вероятность)
-
C = Dt × Bt = 2 × 2 = 4 «дня‑задачи»
-
R = P × C = 0.53 × 4 = 2.12 (Высокий)
2. Как учитывать риски при планировании
2.1. Добавляем "буферы" к оценкам задач
Правило:
-
Для критичного уровня (R = 6.1+): Выделить доп. ресурсы, рассмотреть альтернативы.
-
Для высокорисковых (R = 2.1 — 6.0): +30–50% времени.
-
Для средних (0.6 ≤ R < 2.0): +15–20%.
-
Для низких (R < 0.5): оставляем как есть.
Пример:
|
Задача |
Оценка (дни) |
Риск ® |
Итоговая оценка |
|---|---|---|---|
|
Интеграция с API X |
3 |
4.2 |
3 + 50% = 4.5 |
|
Рефакторинг модуля Y |
2 |
1.8 |
2 + 20% = 2.4 |
2.2. Альтернативные сценарии
Для каждого риска прописываем «план Б»:
-
Если API партнёра недоступен: Используем заглушки и тестируем логику.
-
Если смежная команда задерживает задачу: Переключаемся на технический долг.
3. Тестирование через призму рисков.
3.1. Приоритезация тестов
Что тестируем в первую очередь (этот список также приведен в качестве примера — может оказаться так, что вы тестируете не весь продукт, а какой‑то его отдельный модуль):
-
Функции с внешними зависимостями (например: платежи, подписи документов).
-
Модули, которые блокируют других (например, авторизация).
-
Код, который меняли «в спешке» (например, хотфиксы).
3.2. Автоматизация "зоны риска"
Чтобы минимизировать влияние высокорисковых факторов на проект, критически важные участки кода и интеграции нужно автоматизировать. Вот как это можно реализовать:
1. Мониторинг API партнёров
-
Регулярные health‑чеки (как правило, в средних и крупных компаниях уже реализован мониторинг доступности критически‑важных сервисов):
-
Проверка HTTP‑статусов (
200 OK,503 Service Unavailable). -
Замер времени ответа (если API отвечает дольше N мс → алерт).
-
-
Валидация контрактов (если API меняет формат ответа без предупреждения):
-
Автоматические тесты на соответствие Swagger/OpenAPI‑спецификации.
-
-
Исторический анализ (чтобы выявлять периодические сбои):
-
Логирование всех ошибок и построение графиков доступности (например, в Kibana, Grafana и везде, где только можете).
-
4. Как преподнести подход руководству.
Аргументы:
-
«Мы не просто угадываем сроки — мы их обосновываем»
-
Покажите матрицу рисков: «Вот почему интеграция с API X оценена в 2 спринта, а не в 1».
-
-
«Мы снижаем простои команды»
-
Пример: «Если API упадёт, мы можем переключиться на технический долг / можем использовать заглушки / (далее все, что выберете в рамках своего проекта) — разработка не остановится».
-
-
«Мы избегаем эффекта домино»
-
«Раньше задержка одной задачи срывала весь спринт. Теперь у нас есть буферы».
-
Как донести ценность данного подхода:
-
В деньгах: Посчитайте, сколько стоит день простоя команды (да, математика умноженная на бухгалтерию = боль).
-
В репутации: «Клиент X ушёл к конкурентам из‑за того, что не мог сделать перевод в течении 2-х дней», «Клиент Y перестал использовать наше приложение из‑за того, что не мог войти в личный кабинет в течении 5-ти часов».
Вывод
Риск‑ориентированное планирование — это приведение вероятностей возникновения рисковых ситуаций в математическую (а следовательно — предсказуемую) плоскость и грамотное планирование.
Что оно даёт:
-
Предсказуемость: Спринты перестают добавлять седых волос.
-
Гибкость: Команда готова к неожиданностям.
-
Доверие: Между бизнесом и командами разработки — все прозрачно: сроки, переносы и т. д.
Спасибо за внимание, надеюсь эта статья будет полезной для всех ищущих.
Автор: DmitriyKuzmi4ev
