Если работу выполняют два и более человека необходимо проговорить и согласовать ожидания до начала. Scrum понимает важность этого принципа и предлагает нам важную конструкцию: определение «Готово» (definition of done).

Через определение «Готово (Done)» выражается качество и критерии, которым должен соответствовать инкремент продукта. Инкремент продукта должен быть потенциально готовым к поставке, чтобы иметь возможность выпустить его без дополнительной работы. «Готово» является качеством инкремента и, следовательно, является частью артефактов Scrum.

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

Важность «Готово (Done)» в ScrumПрефикс «потенциально» добавляется к инкременту (Increment). Это решение относится к ответственности владельца продукта. Вся работа, необходимая для достижения уровня «Готово», выполняется перед обзором спринта.

Эмпиризм Scrum хорошо работает только при прозрачности. Прозрачность требует общих стандартов для работы и проверки. Определение «Готово» устанавливает стандарт и должно быть известно всем участникам, создающим продукт. Прозрачность означает не только быть видимым, но и понятным.

Различные уровни определения "Готово"

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

Определение готово на уровне задач

Элементы уровня задач DoD включают в себя следующее:

  • Код был unit протестирован.
  • Коллеги проверили написанный код, чтобы обеспечить соблюдение стандартов.
  • Код был проверен в системе контроля версий с четкими check-in комментариями для отслеживания.
  • Внесенный код не ломает сборку.
  • Панель задач (бэклог спринта) был обновлен и оставшееся время для задачи равно 0.

Определение готово на уровне пользовательской истории.

Оно состоит из двух частей. Первая часть включает приведение пользовательской истории в готовое состояние. То есть убедиться, что история готова для внесения в бэклог спринта (определение готовности [definition of ready]). Вторая часть – DoD для определения, когда история готова к релизу.

Пользовательская история готова для спринтаОпределение готово (Definition of ready)

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

Определение готово (Definition of done)

  • Автоматическое функциональное тестирование подтвердило, что новая функция работает, как и ожидалось, от начала до конца.
  • Все регрессионные тесты подтверждают успешную интеграцию с другими функциями.
  • Все соответствующие build/deploy скрипты были изменены и протестированы.
  • Владелец продукта принял окончательный рабочий функционал.
  • Вся соответствующая документация для конечного пользователя была написана.
  • Scrum-команда продемонстрировала пользовательскую историю всем заинтересованным сторонам на мероприятии по обзору спринта.

Определение готово на уровне релиза.

Элементы уровня релиза могут быть следующими:

  • Весь код, связанный с релизом, успешно развернут на рабочих серверах.
  • Релиз проходит все smoke тесты (как автоматические, так и ручные) с фактическими пользовательскими данными.
  • Отдел обслуживания клиентов и маркетологи были обучены новым возможностям.
  • Владелец продукта принял финальную версию.