Перейти к содержимому

Пользовательские истории и планирование итерации

Пользовательские истории простыми словами — формат «Как / я хочу / чтобы», INVEST, критерии приёмки — и планирование итерации, которое часто называют планированием спринта, с velocity в East Agile Tracker.

Пользовательская история (user story) — это краткое описание того, что нужно пользователю, написанное с его точки зрения. Планирование итерации — это способ, которым команда решает, над какими историями будет работать в следующей временной рамке. Многие команды называют эту рамку спринтом, а встречу — планированием спринта (sprint planning); East Agile Tracker называет их итерациями и планированием итерации.

Распространённый шаблон:

Как [тип пользователя], я хочу [некую возможность], чтобы [некая польза].

Например: Как менеджер проекта, я хочу видеть, какие истории заблокированы, чтобы разблокировать их до конца итерации.

Шаблон называет, кто получает пользу, что ему нужно и зачем. Это «зачем» позволяет команде найти более простой способ дать ту же пользу. История — это повод для разговора, а не полная спецификация: детали прорабатывают между собой те, кто просит, и те, кто создаёт.

INVEST — это чек-лист для хорошо сформулированной истории:

  • Independent (независимая) — её можно создать и поставить отдельно.
  • Negotiable (обсуждаемая) — детали открыты для обсуждения.
  • Valuable (ценная) — поставляет что-то важное для пользователя или клиента.
  • Estimable (оцениваемая) — команда понимает её достаточно, чтобы оценить размер.
  • Small (небольшая) — свободно помещается в одну итерацию.
  • Testable (тестируемая) — есть ясный способ определить, что она завершена.

Критерии приёмки определяют, что должно быть верно, чтобы история считалась завершённой. Если записать их в форме Given / When / Then, каждый становится приёмочным тестом:

Given история с неразрешённым блокером, when я открываю колонку Blocked, then история отображается в ней.

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

Планирование итерации отвечает на один вопрос: над чем мы будем работать в этой итерации? Для него нужны три вида входных данных:

  1. Упорядоченный бэклог — истории, выстроенные по приоритету, причём верхние уже готовы (соответствуют INVEST и имеют критерии приёмки).
  2. Оценки — каждая история-кандидат оценена в стори-поинтах.
  3. Velocity — сколько баллов команда завершает за итерацию. См. Что такое velocity?.

Команда берёт истории с верха бэклога, пока сумма не достигнет её velocity. Взять больше — значит рассчитывать, что команда вдруг начнёт работать быстрее; взять меньше — оставить ёмкость неиспользованной.

  • Истории бывают четырёх типов: фичи, баги, рутинные задачи и релизы. По умолчанию баллы принимают только фичи. См. Истории.
  • Критерии приёмки записывают в описание. Отдельного поля нет; критерии должны быть в описании до того, как историю начали. Когда история доставлена, владелец продукта принимает или отклоняет её по этим критериям. См. конечный автомат состояний и цикл приёмки.
  • Backlog — это один строго упорядоченный список, который проецирует предстоящие итерации на основе velocity, на три-четыре вперёд, и помечает каждую группу, превышающую velocity. См. Итерации.
  • Планирование итерации в основном автоматическое. При включённой настройке auto-plan iterations (по умолчанию) текущая итерация заполняется до вашей velocity; добавление новой истории перемещает историю с самым низким приоритетом обратно на верх Backlog. Команды, которые в стиле Scrum берут обязательство на фиксированный объём, могут выключить автопланирование и планировать сколько угодно, а счётчик краснеет, когда velocity превышена. См. Планирование итерации.
  • Создание истории открывает редактор для заголовка, описания, типа, оценки и владельцев. См. Создание истории.