← Назад к вопросам

Сдвигал ли время задержки при каждом спринте

3.0 Senior🔥 252 комментариев
#Планирование и оценка#Управление рисками

Комментарии (2)

🐱
deepseek-v3.2PrepBro AI6 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

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

Короткий ответ: Обычно не сдвигаю, а пересматриваю и планирую заново на основе нового контекста. Позвольте объяснить мою философию и практику.

Почему механический «сдвиг» — это антипаттерн

Если просто взять незавершенные задачи (бэклог спринта) и автоматически перенести их на следующий спринт, мы совершаем несколько критических ошибок:

  • Игнорируем root cause: Мы не отвечаем на вопрос «Почему задачи не были завершены?». Это проблема оценки, технические долги, внешние блокеры или переоценка возможностей команды?
  • Нарушаем приоритизацию: Задачи, актуальные две недели назад, могут устареть. Новые, более важные, могли появиться в бэклоге продукта.
  • Демотивируем команду: Постоянно «тянущийся» бэклог создает ощущение неудачи и бессилия. Важно завершать итерации, даже если не все идеально, и начинать с чистого листа.
  • Искажаем метрики: Наша скорость команды (velocity) и прогнозируемость становятся нерелевантными, если мы не честно фиксируем факт невыполнения и его причины.

Мой алгоритм действий в конце спринта с незаверченными задачами

На ретроспективе и планировании следующего спринта я действую по четкому сценарию.

1. Анализ на ретроспективе

Вместе с командой анализируем, что помешало завершить задачи:

  • Были ли блокеры? Зависали ли задачи в ожидании ответа от других отделов?
  • Проблемы с декомпозицией? Задача оказалась значительно объемнее, чем казалась.
  • Технические долги? Пришлось решать незапланированные, но критичные технические проблемы.
  • Нереалистичное планирование? Команда взяла на себя слишком много.

Этот анализ дает нам эмпирические данные для улучшения, а не просто список задач для переноса.

2. Переоценка и перепланирование на планировании следующего спринта

Здесь я применяю ключевой принцип: «Невыполненная работа возвращается в бэклог продукта». Далее мы поступаем так:

  • Переоцениваем остаток работы: Незавершенная задача почти никогда не возвращается «как есть». Мы заново оцениваем оставшийся объем с учетом нового понимания. Часто одна незавершенная задача разбивается на несколько.
  • Заново определяем приоритет: Продукт-оунер/менеджер решает, актуальна ли эта задача сейчас в сравнении с другими. Ее приоритет мог упасть.
  • Включаем в план только при необходимости: Если задача по-прежнему имеет высший приоритет и оценка реалистична, мы заново (а не автоматически) включаем ее в бэклог следующего спринта. Но это именно новое решение, а не механический перенос.

Практический пример в Jira

Вот как это выглядит на практике в инструментарии. Допустим, в спринте «Sprint-10» у нас осталась незавершенная задача PROJ-123.

НЕПРАВИЛЬНЫЙ ПОДХОД (Сдвиг): Просто изменить спринт у задачи PROJ-123 с Sprint-10 на Sprint-11. Это действие займет 10 секунд, но это ошибка.

ПРАВИЛЬНЫЙ ПОДХОД (Перепланирование):

  1. На ретроспективе Sprint-10 фиксируем, что PROJ-123 не завершена из-за сложной интеграции.
  2. Возвращаем задачу в бэклог продукта (Status: Backlog). В Jira это означает удаление ее из спринта.
  3. Создаем подзадачу к PROJ-123 или новую задачу PROJ-124 — «Исследование API интеграции для PROJ-123» и оцениваем ее.
  4. На планировании Sprint-11 PO решает, что PROJ-123 все еще критична. Мы добавляем в спринт сначала исследовательскую задачу PROJ-124, а затем, если позволяет емкость, часть функциональности из PROJ-123 в виде новой, более мелкой задачи PROJ-125.
-- Условное отображение логики в БД задач
-- Плохо: Простое обновление поля sprint_id
UPDATE issues SET sprint_id = 11 WHERE id = 'PROJ-123' AND sprint_id = 10;

-- Хорошо: Возврат в бэклог, переоценка, создание новых сущностей
-- 1. Возврат в бэклог
UPDATE issues SET sprint_id = NULL, status = 'BACKLOG' WHERE id = 'PROJ-123';
-- 2. Создание новой, исследовательской задачи
INSERT INTO issues (id, title, story_points, type, parent_id)
VALUES ('PROJ-124', 'Исследование API для PROJ-123', 3, 'Spike', 'PROJ-123');
-- 3. Планирование на новый спринт (после приоритизации)
INSERT INTO sprint_issues (sprint_id, issue_id) VALUES (11, 'PROJ-124');

Исключения из правила

Существуют ситуации, где «мягкий сдвиг» допустим:

  • Крайний срок релиза (Release Sprint): Если мы в финальном спринте перед выпуском и не завершили критичный для выпуска баг или фичу, мы можем перенести только эту конкретную задачу, так как приоритет не изменился — это все еще условие выпуска.
  • Короткие задачи на грани завершения: Если задача на 99% готова (например, ждет код-ревью) и будет закончена в первый же день нового спринта, иногда логичнее «дотянуть» ее. Но это должно быть исключением, подтвержденным командой.

Заключение

Таким образом, мой принцип: Не сдвигать, а переосмысливать. Каждый спринт — это новый цикл, начинающийся с чистого состояния и основанный на актуальных приоритетах и извлеченных уроках. Такой подход сохраняет здоровый ритм команды, обеспечивает честность планирования и позволяет гибко реагировать на изменения, что и является основной ценностью Agile. Механический перенос задач убивает эту гибкость и создает иллюзию прогресса там, где его нет.

Сдвигал ли время задержки при каждом спринте | PrepBro