В этой статье пойдет речь о технике оценки качества пользовательских историй – модели INVEST.
INVEST — это аббревиатура, которую ввёл Билл Вейк (один из авторов XP). Она расшифровывается следующим образом:
Independent (Независимая)
Реализовать, протестировать и доставить пользовательскую историю можно независимо от других пользовательских историй.
Часть, которая реализуется, должна иметь ценность для бизнеса.
Negotiable (Обсуждаемая)
Одно из отличий других видов требований от пользовательских историй заключается в том, что пользовательская история на первых этапах не является конечной целью или договоренностью, а тем — что необходимо обсудить и реализовать.
Пользовательская история отражает суть, а не детали.
Через некоторое время карточку пользовательской истории можно расширить, но все дополнения — это всего лишь детали, которые помогают улучшить понимание сути пользовательской истории или обеспечивают процесс ее тестирования.
Valuable (Полезная)
Один из важнейших атрибутов.
Главные задачи проекта – удовлетворить потребности или решить проблемы бизнеса.
Путём предоставления решений мы обеспечиваем ценность системы.
Поэтому, в процессе создания историй нужно думать о них, как о частях продукта/системы. В совокупности они гарантируют приближение к главной цели.
Estimable (Оцениваемая)
Мы должны иметь возможность оценить пользовательскую историю по критериям сложности и трудозатрат для ее реализации. Так, мы сможем планировать реализацию истории в рамках итерации в зависимости от ее приоритета.
Оценка невозможна в двух случаях:
• история слишком большая;
• история неопределенная.
В обоих случаях пользовательскую историю следует видоизменить.
Small (Маленькая, компактная)
Хорошая пользовательская история — компактная и реализуемая в рамках одной итерации. Иначе же, она просто не будет представлять ценности в завершении итерации.
Testable (Тестируемая)
Хорошая пользовательская история может быть протестирована, то есть для нее можно написать критерии приемки (Acceptance Criteria), например, в виде сценариев (Scenarios) для тестирования.