Поиск

Generic selectors
Exact matches only
Search in title
Search in content

Критерии готовности и критерии приемки — объяснение на примере

Критерии готовности (Defenition of Done или DOD) и критерии приемки (Acceptance Criteria или AC). Поговорим об этих понятиях и разберемся в чем же принципиальная разница. А разница здесь есть, причем, разница эта существенная. В этой статье, а также видео материале, я привожу пример, не имеющий ничего общего с IT. Данный пример на мой взгляд будет максимально доступен для широкой аудитории, поэтому рекомендую прочитать как саму статью, так и посмотреть видео материал, или же ознакомиться хотя бы с одним из предложенных вариантов.

Поехали…

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

История

В один прекрасный день к вам в кондитерскую заглянул клиент, его зовут Дмитрий, и он заказал у вас два торта, один большой шоколадный и второй маленький банановый. Спустя некоторое время к вам в лавку заглянула Юлия. Она планирует навестить подругу и заказывает клубничный торт среднего размера. И ближе к концу дня Михаил, идя с работы домой, решил заказать большой фруктовый торт с орехами для своих домашних, так как завтра уже пятница и скоро выходные.

Список заказов:

  • Дмитрий: 1х большой шоколадный торт, 1 х маленький банановый торт
  • Юлия: 1х клубничный торт среднего размера
  • Михаил: 1х большой фруктовый торт с орехами

Ваши действия

Вы принялись за выполнение заказов. Рассмотрим для примера заказ, сделанный Дмитрием.

Вы, как шеф-повар, замесив тесто, взялись за выполнение первого заказа на два торта. Раскатав два коржа, — один большой для шоколадного торта и один маленький для бананового — вы плавно перешли к начинке и сделали соответственно шоколадную начинку и банановую. Аккуратно выложив соответствующие начинки на коржи и придав им нужную форму, вы передали торты своему помощнику Евгению. Евгений еще раз удостоверился, что торты в точности совпадают с тем, что было заказано (большой шоколадный  и маленький банановый) и поставил оба кондитерских изделия в холодильник на 2 часа, чтобы торты приобрели нужную консистенцию. Далее Евгений вытащил торты и упаковал каждый в подарочную упаковку, после чего подписал поздравительные открытки к каждому торту. И, наконец, на следующий день Дмитрий зашел в кондитерскую, и Евгений вручил ему два торта  (большой шоколадный и маленький банановый).

Критерии приемки (Acceptance Criteria или AC) — объяснение на примере

Итак, пока этого достаточно. Начнем мы с критериев приемки (Acceptance Criteria), но прежде, чем непосредственно начать разбираться, какими здесь могут быть критерии приемки, давайте согласуем их смысловое назначение. Основная задача критериев приемки — убедиться, что мы получим именно то, что было согласовано или заказано как в нашем случае.

Теперь давайте наложим это смысловое понимание на нашу ситуацию, когда у нас заказали разные торты. Вернемся к Дмитрию, клиенту, который заказал большой шоколадный торт и маленький банановый. Мы уже определили, что основное назначение критериев приемки — убедиться, что будет поставлено именно то, что и было заказано, а это значит, что критерии приемки для тортов, заказанных Дмитрием, могут выглядеть так:

Большой шоколадный торт должен отвечать следующим критериям приемки:

  • Диаметр торта не меньше чем *40см
  • Начинка темного цвета, напоминающая шоколад
  • По вкусу шоколадный
  • Пахнет шоколадом
  • Украшен шоколадной стружкой

Маленький банановый торт должен отвечать следующим критериям приемки:

  • Диаметр торта не меньше чем *20см
  • Начинка должна быть желтоватого оттенка
  • По вкусу банановый
  • Пахнет бананами
  • Украшен кусочками свежих бананов

* внутренняя размерная сетка 20, 30 и 40, позволяющая различать диаметр тортов от маленького до большого

Итог по критериям приемки (Acceptance Criteria):

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

Если этот вопрос вас интересует и вы делаете свои первые шаги в осознании и понимании критериев приемки, предлагаю вам, уважаемый читатель, самостоятельно составить критерии для заказов, сделанных двумя другими клиентами… 😀 Например можете сделать это в комментариях к статье.

Критерии приемки — пример из IT.

Теперь давайте перенесемся в IT. Итак, у нас есть простая задача: на странице товара создать кнопку «заказать», которая при нажатии будет выводить форму заказа со списком определенных полей.

Какие у нас здесь будут критерии приемки? Да, да этот вопрос к вам 😀 Хорошо, давайте пофантазируем вместе. Напомню, задача, которую мы решаем с помощью критериев приемки, состоит в том, чтобы убедиться, что мы получаем именно то, что заказали.

Итак, в качестве критериев приемки для этой задачи из IT я бы предложил следующие:

  • На странице товара доступна кнопка «заказать» (во всех браузерах, включая мобильную версию)
  • При нажатии на кнопку «заказать» в всплывающем окне показывается форма заказа (во всех браузерах, включая мобильную версию)
  • Форма заказа содержит следующие поля (перечислить поля…)
  • Форма оснащена валидацией данных (например, в поле «телефон» нельзя ввести текст…)
  • При заполнении всех обязательных полей заказа и нажатии кнопки «отправить заказ» клиенту приходит сообщение «об отправке заказа»
  • При заполнении всех обязательных полей заказа и нажатии кнопки «отправить заказ» администратор сайта получает уведомление и всю информацию о заказе, заполненную клиентом, по email.

Например, так! Вполне рабочий вариант, который позволит на входе убедиться, что это и есть необходимая производная, которую поставили отвечать ключевым критериям приемки. Здесь стоит сказать, что не нужно лениться и описывать ваши критерии приемки. И да, если вам показалось, что в предложенных выше критериях приемки много повторения и тавтологии, то это не так. Скорее всего вы еще не поняли сути, потому что именно детальное описание того, что ожидается на основании критериев приемки, позволит убедиться, что на вход мы получим именно то, что нам нужно! Да и сами мы лучше осознаем что нам действительно нужно.. а что нет.

Критерии готовности (Defenition of Done или DOD) — объяснение на примере

Теперь перейдем к критериям готовности (Defenition of Done). Если критерии приемки нужны для того, чтобы убедиться, что мы поставляем именно то, что было заказано, то для чего нам нужны критерии готовности!?

Вопрос открытый и давайте его тоже сразу же согласуем. Основная смысловая задача, которая возлагается на критерии готовности, это создание унифицированного или стандартизированного подхода, который был бы общим для всех производных (задач) и давал ответ на главный вопрос: все ли было сделано для того, чтобы считать задачу готовой в полном объеме согласно всем предписанным производственным практикам?

Вернемся к нашему примеру — заказу от Дмитрия на два торта. Итак, о каких практиках здесь может идти речь. Давайте подробнее рассмотрим роль Евгения в процессе изготовления тортов и выделим эти практики.

Как было видно из примера, получив торты от вас (шеф-повара), Евгений прежде всего убедился, что полученный торт соответствует тому, что был в заказе, как по размеру, так и по своей сути. Далее Евгений поставил торт в холодильник на 2+ часа, чтобы придать ему нужную консистентность, после чего, достав торт, упаковал его и подписал поздравительную открытку/сообщение. И в завершении вручил торт покупателю. Итак, извлекая из этих шагов ключевые моменты, можно прийти к следующим критериям готовности.

Критерии готовности — пример:

  • Торт соответствует заказанному
  • Торт прошел заморозку и приобрел твердую консистенцию
  • Торт имеет презентабельный вид
  • Торт был запакован в подарочную упаковку
  • Открытка/Пожелание было подписано для заказчика
  • Торт вручен заказчику

Давайте еще раз проанализируем вышеупомянутые критерии готовности. Шаги, которые совершает Евгений, не уникальные, а унифицированы для всех тортов. Неважно будет ли этот торт для Дмитрия, Юлии, Михаила или какого-либо другого заказчика, Евгений в точности выполнит все приписанные шаги. Эти шаги не менее важны, чем критерии приемки, поскольку позволяют минимизировать ошибки и добиться консистентного результата поставки для всех производных (все торты проверены согласно предмету заказа, приведены в нужное состояние путем заморозки, тщательно упакованы, подписано сообщение или поздравление, и, наконец, сам торт доставлен заказчику). По факту успешного прохождения всех критериев готовности мы перестаем сомневаться в качестве поставки и уже не задаем себе вопрос типа: а все ли мы сделали правильно и не упустили ли чего-то важного прежде чем считать такой заказ выполненным?

Критерии готовности — пример из IT.

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

Итак, в качестве критериев готовности для задачи из IT я бы предложил следующие:

  • Модульное тестирование выполнено
  • Код проинспектирован другим разработчиком
  • Функциональное тестирование выполнено
  • Документация обновлена
  • Код доставлен на промежуточный сервер разработки
  • Интеграционное тестирование выполнено

Такие или подобные практики помогут на консистентном уровне поставлять код в приемлемом состоянии и не терзать себя вопросами типа «все ли было сделано, чтобы считать задачу завершенной?» .

Итог:

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

Оставить комментарий

Alex Kostritsa

Об авторе
Опыт в менеджменте в IT организациях более 10 лет. Преподаю курсы по менеджменту Hillel. В свободное время пишу блог, и работаю над своими "pet" проектами.
Посмотреть все материалы (14)
  • Одесса, Украина