Превращаем пожелания заказчика в Acceptance Criteria: 3 практики

Статья написана в соавторстве с  Мэри Ротарь , CEO IAMPM.

Меня зовут Анна Лаврова, сейчас я Agile Coach, живу и работаю в Брюсселе. До этого больше девяти лет управляла проектами в Дубае и в Украине, занималась проектным и программным менеджментом.

В статье расскажу, как превратить пожелания заказчика в критерии приемки готового продукта. На конкретных примерах объясню, чем отличаются понятия Definition of Done и Acceptance Criteria, поделюсь техниками работы с требованиями для пользовательских историй.

Думаю, что статья будет полезной для РМ’ов, бизнес-аналитиков и других специалистов, которые работают с заказчиками и создают требования.

Критерии приемки и завершенности: как не перепутать

Поскольку критерии приемки и определение «завершенности» применяют к пользовательским историям, давайте договоримся, что понимать под каждым термином:

Acceptance Criteria прописываются отдельно для каждой User Story, а Definition of Done — общие требования для всех User Stories проекта

Definition of Done

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

Definition of Done — это договоренность о том, как команда будет работать в процессе. Один из элементов scrum set up — это командное соглашение (team working agreements) о критериях завершенности и создание estimation baselines.

Например, обычный критерий завершенности для команд разработки — у каждой конкретной задачи есть шаг code review. Может быть и такой критерий, что у изменения нет известных дефектов — все, что нашли, уже закрыли и починили. В такие договоренности включается и бизнес-сторона: заказчик или Product Owner. Definition of Done — это четкие критерии, по которым мы договариваемся работать и создавать качественный продукт каждую итерацию.

Посмотрим, как будут выглядеть критерии завершенности для трех work items:

  1. Сделать Scrum-презентацию.
  2. Сделать DevOps-презентацию.
  3. Сделать PMP-презентацию.

Критерии завершенности, общие для всех трех задач, могут быть такими:

Acceptance Criteria

Если пользовательскую историю создают как некую формулировку намерения, чтобы команда была свободна в поиске решения, то критерии приемки — это точные детали, уникальные для каждой User Story, набор условий, подтверждающий, что она реализована.

Критерии приемки всегда можно проверить по четкому параметру «да/нет». Нельзя выполнить какой-то критерий наполовину: он либо выполнен, либо нет. Благодаря Acceptance Criteria команда разработки знает, как должен выглядеть готовый результат конкретного требования.

В одном ряду с критериями приемки есть похожие, но не идентичные, термины от Хенрика Книберга «как продемонстрировать» (How to demo) или Майка Кона «условия удовлетворения ожиданий» (Conditions of Satisfaction).

В целом Acceptance Criteria должны соответствовать следующим характеристикам:

Примеры требований и Acceptance Criteria к ним:

1. Требование — разрешить пользователю загружать файл с картинкой. Критерии приемки:

2. Требование — разрешить пользователю менять пароль. Критерии приемки:

Перечисленные атрибуты должны быть выполнены для конкретных требований, они не описывают весь процесс.

Практика «три С»: Card, Conversation, Confirmation

Давайте вспомним полезную для хороших пользовательских историй практику «трех С», которая помогает:

Три компонента для работы с User Story: записать, обсудить, подтвердить

Методика состоит из трех компонентов:

  1. Card — любое требование фиксируется. Важно не только сказать о том, что нужно сделать, но и записать историю для выполнения. Традиционно история записывается (например, на стикере), используется для планирования и служит напоминанием.
  2. Conversation — требования нужно обсуждать. В Scrum их обсуждают во время refinement в каждом спринте. Если человек создал требования, записал их, презентовал команде и «ушел» — это не будет conversation, более того, это не тот самый Scrum. Для conversation нужно еще проговорить детали истории и создать критерии приемки.
  3. Confirmation — должны быть конкретные критерии приемки для требования, ответ на вопрос: как разработчики поймут, что история закончена и требование «завершено»?

Как выглядит работа с конкретной User Story: «Как пользователь мобильного телефона я хочу проверять прогноз для своего актуального местоположения, чтобы мне не приходилось искать его каждый раз, когда я еду в новое место».

Card : актуальное местоположение для прогноза погоды.

Conversation : команда обсуждает с PO или ВА, кто будет использовать продукт, зачем это нужно людям и какая в этом ценность для бизнеса. Создают примеры использования (техника Example Mapping).

Confirmation : прописываются критерии приемки и варианты non happy flow к этой истории, например:

Given-When-Then: переводим с языка заказчика на язык критериев приемки

Given-When-Then — это стиль представления тестов или, как сказали бы его сторонники, — определение поведения системы с помощью Specification By Example. Это подход, разработанный Дэниелом Терхорст-Нортом и Крисом Мэттсом в рамках программы Behavior-Driven Development (BDD).

Given-When-Then выглядит как структурный подход для многих сред тестирования, таких как Cucumber (чтобы быть точным, он использует Gherkin, что является названием DSL от Cucumber). Шаблон Given-When-Then позволяет автоматизировать тест для определения, разработано требование или нет.

Можно описывать Acceptance Criteria пунктами или сразу в формате Given-When-Then:

Как формулируется критерий приемки по этому шаблону:

Дано: у меня есть деньги на счету в банке.

Когда я пытаюсь снять деньги со счета, и сумма не превышает лимит.

Тогда система позволяет мне это сделать и не показывает никаких сообщений об ошибке.

Обратите внимание, формат Given-When-Then тоже бинарный: либо «да», либо «нет». В примере выше система должна позволить снять деньги без сообщений об ошибке. Если деньги сняты, но система показала сообщение об ошибке, это не значит, что требование выполнено на 90%. Это значит, что оно не выполнено.

Вот еще пример.

Функционал: пользователь торгует акциями.

Сценарий: пользователь запрашивает продажу до закрытия торгов.

Дано:

Когда я прошу продать 20 акций MSFT.

Тогда:

Как выглядит создание критериев приемки для отдельной User Story:

User Story: как пользователь веб-сайта я хочу оставлять отзывы, чтобы владельцы могли учитывать моё мнение или озабоченность в ходе будущих обновлений платформы.

Сценарий: пользователь отправляет форму обратной связи с действительными данными (prerequisite). Учитывать, в какой роли находится человек: авторизованного или гостевого пользователя.

Дано : я открываю страницу обратной связи, и система показывает мне форму отправки отзыва с обязательными полями: Email, Name и Comment.

Когда я вписываю в поле Email действительный адрес электронной почты и заполняю Name своим именем, а в поле Comment пишу комментарий и нажимаю кнопку «Отправить отзыв».

Тогда система отправляет мой отзыв, показывает флэш-сообщение: «Вы успешно отправили свой отзыв», и очищает поля формы «Отправить отзыв».

Шаблон Given-When-Then не создается в одиночестве PM’ом или Product Owner’ом. Этот формат прописывается на командной встрече, которая называется «Три амигос».

Работа с требованиями на встрече «Три амигос»

Agile-практика «Три амигос» помогает донести голос команды до клиента и прийти к общему пониманию требований .

Цели встречи:

Результат встречи — это договоренность о том, что будем разрабатывать, и написанные критерии приемки, которые можно автоматизировать, те самые Given-When-Then.

На встречу собираются представители трех ролей:

Три участника представляют голос всей команды, потому что могут рассмотреть каждое требование с разных сторон и убедиться, что все вопросы и пограничные случаи будут обработаны.

Обмениваясь различными точками зрения на проект, участники встречи могут обсудить требования в режиме реального времени:

На встрече «Три амигос» специалисты обсуждают требования, которые еще недостаточно детализированы и не имеют критериев приемки. Требования, уже прошедшие валидацию и верификацию, не обговариваются.

Как проходит встреча «Три амигос»

Встреча длится от 30 минут до часа. Участники собираются за 1-2 спринта до того, как функция должна быть в разработке, и рассматривают требования на будущее.

На встречу приглашают людей, которые будут разрабатывать и тестировать обсуждаемую функцию: один разработчик и один QA.Человек, написавший требование (BA или Product Owner), начинает собрание с представления того, что должно быть сделано: отвечает на вопрос, зачем нужна функция, как будет выглядеть, кто ею будет пользоваться. Есть высокоуровневый requirement, а дальше вы его детализируете: задаете вопросы и формируете критерии приемки, актуальные для этого конкретного требования. Бизнес-аналитик представляет требования, подготовленные заранее, а другие участники дают обратную связь. Требования обновляются на сессии до тех пор, пока не будут признаны «готовыми к разработке». Затем БА представляет тестовые сценарии, подготовленные до собрания, и они также рассматриваются другими «амигос».

Что может пойти не так:

Технику можно использовать и вне Agile-процесса. Практика обсуждений в формате трех ролей будет полезна в любом проекте, потому что везде есть разработчики и тестировщики, которые дальше будут внедрять и проверять созданные требования.

Что еще почитать

Все техники, о которых шла речь в статье, необходимы, чтобы составить качественные требования к пользовательским историям:

Четко прописанные критерии приемки и завершенности помогают создавать качественный продукт, подтверждают для команды и заказчика, что конкретная история реализована.

Опубліковано: 28/09/20 @ 10:00
Розділ Різне

Рекомендуємо:

Exploratory Testing: три истории применения тест-дизайна
5 советов начинающим программистам: как выбрать специализацию
DevOps’ный C++ и «кухонные войны», или Как я начал писать игры во время еды
5 книг, которые влияют на мировоззрение, от Senior Project Manager Тараса Федорука
Продвижение в топ 1 интернет-магазина в высококонкурентной нише — кондиционеры