Развенчиваем мифы о Definition of Done: обязательный элемент для Agile-команд
- Masha Ostroumova, Enterprise Agile Coach
- 25 мая 2023 г.
- 4 мин. чтения

Вы когда-нибудь сталкивались с термином "Definition of Done" (Определение готовности) в своём Agile-пути? Многие Agile-команды знакомы с этой концепцией, но далеко не все её применяют.
Причин может быть несколько: от непонимания её цели до путаницы с Acceptance Criteria (Критерии приёмки) или просто нехватки времени на внедрение. В этом блоге я постараюсь развеять мифы о Definition of Done, объяснив, что это такое и почему вашей команде оно необходимо для успеха. Приготовьтесь погрузиться в мир DoD и открыть для себя его потенциал!
Что такое Definition of Done?
Проще говоря, Definition of Done — это список критериев, которым должен соответствовать элемент работы, чтобы считаться "полностью готовым," исключая любую неопределённость вроде "почти готово" или "я думаю, что завершено." Конкретные детали Definition of Done зависят от характера работы, но обычно они более-менее стандартны для схожих типов задач. Например, команда разработки программного обеспечения может определить, что вся работа, связанная с кодированием, должна соответствовать следующему Definition of Done:
код в продакшене;
покрытие юнит-тестами выше 95%;
завершено ручное тестирование;
одобрено Product Owner.
Или, если у команды совсем иной подход к юнит-тестам, их Definition of Done может сосредоточиться на других аспектах работы, которые для них важнее. Единого универсального решения здесь нет.
Представьте Definition of Done как контрольный список, который, с одной стороны, помогает убедиться, что ничего не упущено, а с другой — не позволяет закрывать частично завершённые элементы работы.
Что происходит, если команды не используют Definition of Done?
Когда команда не использует Definition of Done, часто возникают невысказанные предположения о том, что считается завершённой задачей. Один человек может считать, что достаточно просто написать код, другой — что задача завершена только после прохождения всех тестов (но не обязательно размещения в продакшене), а третий — что работа завершена, когда она находится в продакшене. Эти расхождения зачастую остаются невыясненными, что приводит к проблемам и конфликтам внутри команды. Definition of Done помогает гарантировать, что все понимают, что значит "готово."
Развеем несколько мифов о Definition of Done
Оно должно писаться для каждой задачи и занимает слишком много времени.
Неверно. Definition of Done — это общий контрольный список, созданный один раз и применяемый к большинству задач. Вы можете иметь разные Definition of Done для различных типов работы, но лучше стремиться к максимальной простоте.
Оно вводит много бюрократии.
Неверно. Не рассматривайте Definition of Done как формальный "входной барьер." Воспринимайте его как полезный инструмент самопроверки. Это не жёсткий документ, а гибкое руководство, которое помогает вам. Если что-то из списка не относится к вашей задаче, просто пропустите этот пункт.
Оно такое же, как Acceptance Criteria.
Неверно. Acceptance Criteria уникальны для каждой задачи и уточняют, что ожидается от конкретного элемента работы: предварительные условия, триггеры и различные сценарии. Вы можете выполнить Acceptance Criteria (создать именно то, что ожидалось), но не соответствовать Definition of Done (например, забыть получить одобрение Product Owner).
Definition of Done подходит только для софтверных команд.
Неверно. Любая команда может извлечь пользу из Definition of Done. Даже если у вас больше вариативности в типах задач, вы сможете разработать критерии, которым должна соответствовать работа, чтобы считаться завершённой. Подумайте о документации, коммуникации, проверке коллегами или обновлениях в системах.
Преимущества использования Definition of Done
Помогает всем быть на одной волне относительно объёма работы
Вот как я это вижу: мне нравится обсуждать такие темы, как политика, религия, философия и Agile-фреймворки, особенно если у меня есть интересный собеседник, который может исследовать разные точки зрения и делиться новыми идеями. Но я терпеть не могу споров на темы вроде "Должны ли мы включать автоматизацию тестирования в объём этой задачи, да или нет?" — особенно если такие споры происходят ежедневно.
Definition of Done позволяет вашей команде один раз принять решение, экономя ваше время и энергию за счёт заранее определённого объёма работы. Очевидно, это также улучшает атмосферу внутри команды.
Позволяет понять, когда работу можно считать завершённой
Некоторые команды не обсуждают заранее объём работы, что может случаться, если вы не оцениваете задачи или в вашем процессе планирования продукта есть проблемы. В результате они могут вступать в жаркие споры о том, можно ли уже "закрыть эту Jira-задачу."
Когда большая часть работы выполнена, возникает соблазн перейти к следующей, более интересной задаче, оставляя незавершённые элементы позади. Definition of Done не позволит этого сделать, так как устанавливает чёткие критерии завершённости задачи.
Позволяет более точно планировать
При оценке задач важно понимать полный объём работы, будь то простое исправление ошибки или ещё и коммуникация с другими командами, выпуск пресс-релиза для клиентов, обновление документации. То, что на первый взгляд кажется двухчасовой задачей, может оказаться лишь вершиной айсберга.
Definition of Done стимулирует нас заранее учитывать все аспекты задачи и, как результат, давать более точные оценки её объёма. В Agile мы не поощряем создание детализированных проектных планов и структур разбиения работы, но иногда нужно знать, сколько недель заложить на конкретный проект. Без Definition of Done ваши оценки, скорее всего, будут непоследовательными и ненадёжными.
Предотвращает нежелательные сюрпризы
Хотя некоторые задачи нестандартны и могут требовать другого подхода, Definition of Done не может охватить абсолютно все уникальные обстоятельства. Тем не менее, наличие Definition of Done прививает команде ценную привычку: заранее продумывать, что нужно для завершения задачи, и декларировать её "готовой" до начала работы.
Даже если есть аспекты задачи, которые не покрыты Definition of Done, ваша команда с большей вероятностью выявит их заранее и лучше спланирует своё время и нагрузку. Такая предусмотрительность помогает избежать неожиданных задержек или других "сюрпризов," которые могли бы сорвать ваш прогресс.
Гарантирует доставку ценности
И, наконец, Definition of Done играет ключевую роль в обеспечении доставки ценности. Каждый элемент работы, который завершает ваша команда, должен приносить ценность клиенту, бизнесу или обоим. Если этого не происходит, потраченное время оказывается впустую.
Возьмём, к примеру, команду разработчиков. Код, который просто написан и сохранён в репозитории, не приносит ценности. Даже код, который прошёл проверку и тестирование, но остаётся в репозитории, не приносит ценности. Но когда этот код развернут в продакшене и добавляет или изменяет функциональность, от которой могут выиграть клиенты, именно тогда доставляется ценность.
Definition of Done побуждает команды доводить каждый элемент работы до конца, гарантируя, что они достигают точки доставки ценности. В идеале команды также должны уметь измерять эту ценность, хотя включать этот аспект в Definition of Done или нет — решать самой команде.
Definition of Done — это незаменимый инструмент, который приносит множество преимуществ Agile-командам. Он помогает согласовать членов команды по объёму работы, снижает вероятность недоразумений и предотвращает нежелательные сюрпризы. Внедрив чёткое Definition of Done, команды смогут улучшить точность планирования и оценок, обеспечивая доставку ценности клиентам и бизнесу.
Definition of Done способствует формированию проактивного подхода, стимулируя команды учитывать все аспекты задачи и доводить её до конца. В конечном итоге, принятие и соблюдение чётко определённого Definition of Done может улучшить взаимодействие в команде, упростить процессы и внести значительный вклад в успешность вашей Agile-трансформации.
Comments