Введение
Как формулировать истории?
Истории следует описывать вместе с критерием приемки (acceptance criteria):
- Как <роль пользователя> я хочу <сделать что-то>, чтобы получить <результат / выгода>. Описание истории, часть про результат - основная.
- В определенном <контексте> возникновение <события> приводит к <результату>. Критерии приёмки - конкретные шаги в конкретных условиях, которые приводят к конкретному результату. На одну историю может приходиться множество критериев приемки.
Свойства историй
- Independent / независимые
- Negotiable / обсуждаемые (возможен компромисс)
- Valuable / ценные, добавляющие ценность для пользователя
- Estimable / поддающиеся оценке
- Sized Appropriately / адекватного объема, например, на один спринт
- Testable / тестируемые
При переходе истории из бэклога продукта в бэклог спринта, ее можно разбить на отдельные инженерные задачи, которые не должны оцениваться в очках.
Хорошие истории следуют правилу “трёх C”: Card, Conversations, Confirmations.
- Card (карточка) означает, что истории должны быть мелкими / короткими, в идеале, помещаться на один стикер.
- Conversations (обсуждение) означает, что историю нужно обсудить, учитывая мнение как пользователей, так и разработчиков.
- Confirmation (подтверждение) означает, что результаты обсуждения зафиксированы в виде приемочных тестов для каждой истории (как минимум, один тест-кейс на историю).
Уровни историй:
Истории существуют на двух разных уровнях:
- Цели. Высокоуровневые истории, описывающие варианты использования системы “от и до”, что-то вроде покупки продукта в интернет-магазине. Такие истории однозначно добавляют ценность для пользователей, но не могут быть реализованы непосредственно. Их нужно разбивать на более мелкие истории. Обычно эти истории соответствуют критериям I, N, V.
- Шаги. Низкоуровневые истории - отдельные шаги большого процесса, отдельные варианты использования и т.п. По отдельности они не добавляют ценности для пользователя, но зато малы и могут быть реализованы непосредственно. Соответствуют критериям N, E, S, T.
Оценки:
- Poker Planning
- Колода карт: 0, 1/2, 1, 2, 3, 5, 8, 13, 20, 40, 100 (больше 20 = почти бесконечность)
- оценивается размер и сложность, а не время выполнения
- одновременное вскрытие оценок
- обсуждение экстремумов и переголосование
- Устранение конфликтов
- ждем схождения оценок после обсуждения
- усреднять оценки - плохая практика
- выбросить экстремальные оценки
- отправить workitem на уточнение
Готовность историй к спринту (Definition of Ready)
Готовность истории к спринту определяет команда. Голосование происходит во время предпланнинга (груминга). Готовность истории определяется по четырем критериям:
- Команда однозначно определила и согласовала критерий приемки истории
- Команда выявила согласованный размер истории в стори-пойнтах. Здесь важно удостовериться, что “за кадром” не осталось важных работ по этой истории
- Команда подтвердила, что все зависимости этой истории удовлетворены (как технические, так и организационные, правовые и любые другие)
- История достаточно мала, чтобы ее было комфортно брать в спринт с учетом любых сопутствующих процессов (деплой, еще что-то в этом же роде)
Далее
Источники
- https://www.agilelearninglabs.com/2013/04/introduction-user-stories/
- https://www.freecodecamp.org/news/a-radical-simple-approach-to-user-stories/